mirror of https://github.com/mitchell/mjfs.us.git
Componentized experience and projects containers into job and project;
used them in the aforementioned containers; version bump
This commit is contained in:
parent
ab5f6fb062
commit
f38e67281b
|
@ -1,6 +1,6 @@
|
||||||
{
|
{
|
||||||
"name": "react-website",
|
"name": "react-website",
|
||||||
"version": "0.2.19",
|
"version": "0.2.20",
|
||||||
"private": true,
|
"private": true,
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@fortawesome/fontawesome": "^1.1.8",
|
"@fortawesome/fontawesome": "^1.1.8",
|
||||||
|
|
|
@ -0,0 +1,31 @@
|
||||||
|
.job-container {
|
||||||
|
border-bottom: 2px solid rgb(139, 191, 209);
|
||||||
|
flex: 1 0 90%;
|
||||||
|
font-size: 0.9rem;
|
||||||
|
margin: auto 5%;
|
||||||
|
text-align: left;
|
||||||
|
}
|
||||||
|
|
||||||
|
.job-company {
|
||||||
|
color: rgb(216, 221, 234);
|
||||||
|
}
|
||||||
|
|
||||||
|
.job-title {
|
||||||
|
font-size: 1.2rem;
|
||||||
|
margin-top: 2%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.small-text {
|
||||||
|
margin-bottom: 1%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.job-container ul {
|
||||||
|
margin-top: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
@media screen and (max-width: 500px) {
|
||||||
|
.job-container {
|
||||||
|
flex: 1 0 100%;
|
||||||
|
margin: auto;
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,36 @@
|
||||||
|
// @flow
|
||||||
|
import * as React from "react"
|
||||||
|
|
||||||
|
import SmallText from "../../components/SmallText"
|
||||||
|
import "./index.css"
|
||||||
|
|
||||||
|
type Props = {
|
||||||
|
title: string,
|
||||||
|
company: string,
|
||||||
|
timeSpan: string,
|
||||||
|
bullets: Array<string>
|
||||||
|
}
|
||||||
|
|
||||||
|
class Experience extends React.PureComponent<Props> {
|
||||||
|
listedBullets: Array<React.Element<string>>
|
||||||
|
|
||||||
|
constructor(props: Props) {
|
||||||
|
super(props)
|
||||||
|
this.listedBullets = this.props.bullets.map((bullet, index) => (
|
||||||
|
<li key={index}>{bullet}</li>
|
||||||
|
))
|
||||||
|
}
|
||||||
|
|
||||||
|
render() {
|
||||||
|
return (
|
||||||
|
<div className="job-container">
|
||||||
|
<div className="job-title">{this.props.title}</div>
|
||||||
|
<div className="job-company">{this.props.company}</div>
|
||||||
|
<SmallText>{this.props.timeSpan}</SmallText>
|
||||||
|
<ul>{this.listedBullets}</ul>
|
||||||
|
</div>
|
||||||
|
)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
export default Experience
|
|
@ -0,0 +1,21 @@
|
||||||
|
.project-container {
|
||||||
|
border-bottom: 2px solid rgb(139, 191, 209);
|
||||||
|
flex: 1 0 45%;
|
||||||
|
margin: 2.5%;
|
||||||
|
padding-bottom: 20px;
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
.project-container h4 {
|
||||||
|
margin-bottom: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.project-container p {
|
||||||
|
margin-top: 3%;
|
||||||
|
}
|
||||||
|
|
||||||
|
@media screen and (max-width: 500px) {
|
||||||
|
.project-container {
|
||||||
|
flex: 1 0 95%;
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,26 @@
|
||||||
|
// @flow
|
||||||
|
import React from "react"
|
||||||
|
|
||||||
|
import ClearButton from "../../components/ClearButton"
|
||||||
|
|
||||||
|
import "./index.css"
|
||||||
|
|
||||||
|
type Props = {
|
||||||
|
title: string,
|
||||||
|
children: string,
|
||||||
|
repoUrl: string
|
||||||
|
}
|
||||||
|
|
||||||
|
class Project extends React.PureComponent<Props> {
|
||||||
|
render() {
|
||||||
|
return (
|
||||||
|
<div className="project-container">
|
||||||
|
<h4>{this.props.title}</h4>
|
||||||
|
<p>{this.props.children}</p>
|
||||||
|
<ClearButton href={this.props.repoUrl}>Repository</ClearButton>
|
||||||
|
</div>
|
||||||
|
)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
export default Project
|
|
@ -3,35 +3,3 @@
|
||||||
flex-flow: column nowrap;
|
flex-flow: column nowrap;
|
||||||
margin: 2% 0;
|
margin: 2% 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
.experience-container > div {
|
|
||||||
border-bottom: 2px solid rgb(139, 191, 209);
|
|
||||||
flex: 1 0 90%;
|
|
||||||
font-size: 0.9rem;
|
|
||||||
margin: auto 5%;
|
|
||||||
text-align: left;
|
|
||||||
}
|
|
||||||
|
|
||||||
.experience-company {
|
|
||||||
color: rgb(216, 221, 234);
|
|
||||||
}
|
|
||||||
|
|
||||||
.experience-title {
|
|
||||||
font-size: 1.2rem;
|
|
||||||
margin-top: 2%;
|
|
||||||
}
|
|
||||||
|
|
||||||
.small-text {
|
|
||||||
margin-bottom: 1%;
|
|
||||||
}
|
|
||||||
|
|
||||||
.experience-container ul {
|
|
||||||
margin-top: 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
@media screen and (max-width: 500px) {
|
|
||||||
.experience-container > div {
|
|
||||||
flex: 1 0 100%;
|
|
||||||
margin: auto;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
|
@ -1,8 +1,8 @@
|
||||||
// @flow
|
// @flow
|
||||||
import React from "react"
|
import React from "react"
|
||||||
|
|
||||||
import SmallText from "../../components/SmallText"
|
|
||||||
import "./index.css"
|
import "./index.css"
|
||||||
|
import Job from "../../components/Job"
|
||||||
|
|
||||||
type Props = {}
|
type Props = {}
|
||||||
|
|
||||||
|
@ -10,95 +10,56 @@ class Experience extends React.PureComponent<Props> {
|
||||||
render() {
|
render() {
|
||||||
return (
|
return (
|
||||||
<div className="experience-container">
|
<div className="experience-container">
|
||||||
<div>
|
<Job
|
||||||
<div className="experience-title">Lead Backend Engineer</div>
|
title="Lead Backend Engineer"
|
||||||
<div className="experience-company">Hypremium.</div>
|
company="Hypremium."
|
||||||
<SmallText className="experience-smalltext">
|
timeSpan="May 2018 - Present"
|
||||||
May 2018 - Present
|
bullets={[
|
||||||
</SmallText>
|
"Architect all new backend microservices using Serverless, AWS API Gateway/Lambda/more, and Golang.",
|
||||||
<ul>
|
"Lead backend development team in an Agile (scrumban) environment.",
|
||||||
<li>
|
"Monitor and maintain all stages of hosted microservices."
|
||||||
Architect all new backend microservices using Serverless, AWS API
|
]}
|
||||||
Gateway/Lambda/more, and Golang.
|
/>
|
||||||
</li>
|
<Job
|
||||||
<li>
|
title="DevOps Engineer"
|
||||||
Lead backend development team in an Agile (scrumban) environment.
|
company="Hypremium."
|
||||||
</li>
|
timeSpan="January 2018 - May 2018, 5 Months"
|
||||||
<li>Monitor and maintain all stages of hosted microservices.</li>
|
bullets={[
|
||||||
</ul>
|
"Maintain & migrate Ruby on Rails API and backend application.",
|
||||||
</div>
|
"Oversee and assist with continuous integration for backend development."
|
||||||
<div>
|
]}
|
||||||
<div className="experience-title">DevOps Engineer</div>
|
/>
|
||||||
<div className="experience-company">Hypremium.</div>
|
<Job
|
||||||
<SmallText className="experience-smalltext">
|
title="Sales Associate"
|
||||||
January 2018 - May 2018, 5 Months
|
company="J. Crew"
|
||||||
</SmallText>
|
timeSpan="October 2015 - January 2017, 1 Year 5 Months"
|
||||||
<ul>
|
bullets={[
|
||||||
<li>
|
"Knowing the products and what products best suit the customers' needs.",
|
||||||
Maintain & migrate Ruby on Rails API and backend application.
|
"Helping the customer with any manner of purchase, exchange, or return."
|
||||||
</li>
|
]}
|
||||||
<li>
|
/>
|
||||||
Oversee and assist with continuous integration for backend
|
<Job
|
||||||
development.
|
title="Intern"
|
||||||
</li>
|
company="Zumasys"
|
||||||
</ul>
|
timeSpan="June 2015 - August 2015, 3 Months"
|
||||||
</div>
|
bullets={[
|
||||||
<div>
|
"Main goal was to learn as much about the business and their technology as possible.",
|
||||||
<div className="experience-title">Sales Associate</div>
|
"Management and organization of customer correspondence.",
|
||||||
<div className="experience-company">J. Crew</div>
|
"Auditing of server space.",
|
||||||
<SmallText className="experience-smalltext">
|
"Dispatching and filtering ticketing system and office computer assistance."
|
||||||
October 2015 - January 2017, 1 Year 5 Months
|
]}
|
||||||
</SmallText>
|
/>
|
||||||
<ul>
|
<Job
|
||||||
<li>
|
title="User Support Technician"
|
||||||
Knowing the products and what products best suit the customers’
|
company="Point Loma Nazarene University, ITS Department"
|
||||||
needs.
|
timeSpan="January 2015 - May 2015, 5 Months"
|
||||||
</li>
|
bullets={[
|
||||||
<li>
|
"First in contact for email hotline, second in contact for phones.",
|
||||||
Helping the customer with any manner of purchase, exchange, or
|
"Work with customers via email, phone, remote control, and in person.",
|
||||||
return.
|
"Computer diagnosis, repair, and preparation for customer.",
|
||||||
</li>
|
"Special projects."
|
||||||
</ul>
|
]}
|
||||||
</div>
|
/>
|
||||||
<div>
|
|
||||||
<div className="experience-title">Intern</div>
|
|
||||||
<div className="experience-company">Zumasys</div>
|
|
||||||
<SmallText className="experience-smalltext">
|
|
||||||
June 2015 - August 2015, 3 Months
|
|
||||||
</SmallText>
|
|
||||||
<ul>
|
|
||||||
<li>
|
|
||||||
Main goal was to learn as much about the business and their
|
|
||||||
technology as possible
|
|
||||||
</li>
|
|
||||||
<li>Management and organization of customer correspondence.</li>
|
|
||||||
<li>Auditing of server space.</li>
|
|
||||||
<li>
|
|
||||||
Dispatching and filtering ticketing system and office computer
|
|
||||||
assistance.
|
|
||||||
</li>
|
|
||||||
</ul>
|
|
||||||
</div>
|
|
||||||
<div>
|
|
||||||
<div className="experience-title">User Support Technician</div>
|
|
||||||
<div className="experience-company">
|
|
||||||
Point Loma Nazarene University, ITS Deptarment
|
|
||||||
</div>
|
|
||||||
<SmallText className="experience-smalltext">
|
|
||||||
Jan 2015 - May 2015, 5 Months
|
|
||||||
</SmallText>
|
|
||||||
<ul>
|
|
||||||
<li>
|
|
||||||
First in contact for email hotline, second in contact for phones.
|
|
||||||
</li>
|
|
||||||
<li>
|
|
||||||
Work with customers via email, phone, remote control, and in
|
|
||||||
person.
|
|
||||||
</li>
|
|
||||||
<li>Computer diagnosis, repair, and preparation for customer.</li>
|
|
||||||
<li>Special projects.</li>
|
|
||||||
</ul>
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
|
@ -2,25 +2,3 @@
|
||||||
display: flex;
|
display: flex;
|
||||||
flex-flow: row wrap;
|
flex-flow: row wrap;
|
||||||
}
|
}
|
||||||
|
|
||||||
.projects-container div {
|
|
||||||
border-bottom: 2px solid rgb(139, 191, 209);
|
|
||||||
flex: 1 0 45%;
|
|
||||||
margin: 2.5%;
|
|
||||||
padding-bottom: 20px;
|
|
||||||
text-align: center;
|
|
||||||
}
|
|
||||||
|
|
||||||
.projects-container h4 {
|
|
||||||
margin-bottom: 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
.projects-container p {
|
|
||||||
margin-top: 3%;
|
|
||||||
}
|
|
||||||
|
|
||||||
@media screen and (max-width: 500px) {
|
|
||||||
.projects-container div {
|
|
||||||
flex: 1 0 95%;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
// @flow
|
// @flow
|
||||||
import React from "react"
|
import React from "react"
|
||||||
|
|
||||||
import ClearButton from "../../components/ClearButton"
|
import Project from "../../components/Project"
|
||||||
|
|
||||||
import "./index.css"
|
import "./index.css"
|
||||||
|
|
||||||
|
@ -11,58 +11,49 @@ class Projects extends React.PureComponent<Props> {
|
||||||
render() {
|
render() {
|
||||||
return (
|
return (
|
||||||
<div className="projects-container">
|
<div className="projects-container">
|
||||||
<div>
|
<Project
|
||||||
<h4>mjfs.us</h4>
|
title="mjfs.us"
|
||||||
<p>
|
repoUrl="https://github.com/mitchelljfs/react-website"
|
||||||
|
>
|
||||||
This website has taken many forms over the years, as my frontend and
|
This website has taken many forms over the years, as my frontend and
|
||||||
design skills increase. It has been simple HTML, CSS, and JS, and a
|
design skills increase. It has been simple HTML, CSS, and JS, and a
|
||||||
Ruby Sinatra web app. Currently it takes the form of a React.js app.
|
Ruby Sinatra web app. Currently it takes the form of a React.js app. I
|
||||||
I enjoy React.js (and similar frontend frameworks) as they can be
|
enjoy React.js (and similar frontend frameworks) as they can be used
|
||||||
used to make even the simplest projects modular and extensible.
|
to make even the simplest projects modular and extensible.
|
||||||
</p>
|
</Project>
|
||||||
<ClearButton href="https://github.com/mitchelljfs/react-website">
|
|
||||||
Repository
|
<Project
|
||||||
</ClearButton>
|
title="lambdarouter"
|
||||||
</div>
|
repoUrl="https://github.com/mitchelljfs/lambdarouter"
|
||||||
<div>
|
>
|
||||||
<h4>lambdarouter</h4>
|
This package will become a fully featured AWS Lambda function router,
|
||||||
<p>
|
able to respond to HTTP, Schedule, Cognito, and SNS events. It will
|
||||||
This package will become a fully featured AWS Lambda function
|
also support middleware interfacing. So far it includes functionality
|
||||||
router, able to respond to HTTP, Schedule, Cognito, and SNS events.
|
for API Gateway. Check out the GoDoc Reference to see how to
|
||||||
It will also support middleware interfacing. So far it includes
|
instantiate a router and create endpoints.
|
||||||
functionality for API Gateway. Check out the GoDoc Reference to see
|
</Project>
|
||||||
how to instantiate a router and create endpoints.
|
|
||||||
</p>
|
<Project
|
||||||
<ClearButton href="https://github.com/mitchelljfs/lambdarouter">
|
title="destinate"
|
||||||
Repository
|
repoUrl="https://github.com/mitchelljfs/destinate"
|
||||||
</ClearButton>
|
>
|
||||||
</div>
|
destinate is a react-native, iOS (and Android) app. Its main objective
|
||||||
<div>
|
is to suggest places or activities to the user based on their past
|
||||||
<h4>destinate</h4>
|
choices. It utilizes a serverless backend, written in Go and hosted on
|
||||||
<p>
|
AWS API Gateway/Lambda. It is still under development, as a side
|
||||||
destinate is a react-native, iOS (and Android) app. Its main
|
project of Arash Lari and I.
|
||||||
objective is to suggest places or activities to the user based on
|
</Project>
|
||||||
their past choices. It utilizes a serverless backend, written in Go
|
|
||||||
and hosted on AWS API Gateway/Lambda. It is still under development,
|
<Project
|
||||||
as a side project of Arash Lari and I.
|
title="sys-mgmt"
|
||||||
</p>
|
repoUrl="https://github.com/mitchelljfs/sys-mgmt"
|
||||||
<ClearButton href="https://github.com/mitchelljfs/destinate">
|
>
|
||||||
Repository
|
|
||||||
</ClearButton>
|
|
||||||
</div>
|
|
||||||
<div>
|
|
||||||
<h4>sys-mgmt</h4>
|
|
||||||
<p>
|
|
||||||
A minimal, cross-platform, unix-like-system management program. This
|
A minimal, cross-platform, unix-like-system management program. This
|
||||||
program is designed to detect which programs are affiliated with the
|
program is designed to detect which programs are affiliated with the
|
||||||
unix-like system, whether it be Debian or macOS. There are various
|
unix-like system, whether it be Debian or macOS. There are various
|
||||||
shortcuts to common unix-like commands, such as update and upgrade
|
shortcuts to common unix-like commands, such as update and upgrade
|
||||||
(for package managers), another is poweroff or reboot.
|
(for package managers), another is poweroff or reboot.
|
||||||
</p>
|
</Project>
|
||||||
<ClearButton href="https://github.com/mitchelljfs/sys-mgmt">
|
|
||||||
Repository
|
|
||||||
</ClearButton>
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue