diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..a56a7ef --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +node_modules + diff --git a/css/700.css b/css/700.css index bf6cf30..861f6ba 100644 --- a/css/700.css +++ b/css/700.css @@ -4,8 +4,8 @@ position: relative; justify-content: space-between; flex-wrap: wrap; - max-width: unset; - width: 90vw; + width: unset; + max-width: unset; margin-left: -0.5rem; margin-right: -0.5rem; margin-top: 0.8rem; @@ -21,8 +21,7 @@ img {} .project-image > img { - max-width: 90%; - margin: 0.5rem; + margin: 0 0.5rem; } .social-links img { diff --git a/css/main.css b/css/main.css index b171f2c..b96ac4e 100644 --- a/css/main.css +++ b/css/main.css @@ -64,7 +64,7 @@ h4 { } .project-image > img { - max-width: 100%; + width: 100%; margin-bottom: 3rem; -webkit-box-shadow: 2px 2px 8px 1px rgba(0,0,0,0.17); -moz-box-shadow: 2px 2px 8px 1px rgba(0,0,0,0.17); diff --git a/images/curricular-skills-api.png b/images/curricular-skills-api.png new file mode 100644 index 0000000..2ed0af6 Binary files /dev/null and b/images/curricular-skills-api.png differ diff --git a/images/skillabi-1-login.png b/images/skillabi-1-login.png new file mode 100644 index 0000000..d3a4616 Binary files /dev/null and b/images/skillabi-1-login.png differ diff --git a/images/skillabi-2.gif b/images/skillabi-2.gif new file mode 100644 index 0000000..e32f15e Binary files /dev/null and b/images/skillabi-2.gif differ diff --git a/images/skillabi-3.webp b/images/skillabi-3.webp new file mode 100644 index 0000000..48c82d0 Binary files /dev/null and b/images/skillabi-3.webp differ diff --git a/images/skills-match-2.png b/images/skills-match-2.png new file mode 100644 index 0000000..6db7969 Binary files /dev/null and b/images/skills-match-2.png differ diff --git a/images/skills-match-img-1.webp b/images/skills-match-img-1.webp new file mode 100644 index 0000000..27f8a5e Binary files /dev/null and b/images/skills-match-img-1.webp differ diff --git a/images/skills-match-img-3.webp b/images/skills-match-img-3.webp new file mode 100644 index 0000000..e572001 Binary files /dev/null and b/images/skills-match-img-3.webp differ diff --git a/index.html b/index.html index eb4a254..05c1211 100644 --- a/index.html +++ b/index.html @@ -3,7 +3,7 @@ - Javascipt Developer - Portfolio + Fullstack Developer - Portfolio
@@ -33,24 +33,100 @@

About Me

I'm a full-stack engineer with experience building - and deploying web based applications from the ground up as well as - debugging and maintaining legacy systems. I am looking for a remote - full-stack/frontend position with a team that embraces remote work.

+ and deploying web based applications from the ground up as well as + debugging and maintaining legacy applications. I am looking for a remote + position building web based software with a team that embraces remote + work.

I have been working with websites and code since I was a kid and then - worked 7 years in technical support where I gained a solid - understanding of the web and how it works under the hood. I have spent - the last 4 years designing, building, deploying and maintaining - javascript applications. I've worked with iOS, PHP, NodeJS, and - React/Redux. I enjoy learning better ways to do things, solving - difficult problems and building software that assists my clients/users - in achieving success. I live in Hayden Idaho and my hobbies include - Devops, listening to podcasts, playing ukulele and, especially, - spending time with my wife and 3 kids.

+ worked 7 years in technical support where I gained a solid understanding + of the web and how it works under the hood. I have spent the last 8 years + designing, building, deploying and maintaining javascript and typescript + applications. I've worked with PHP, NodeJS, React, and Serverless.js. I + enjoy learning better ways to do things, solving difficult problems and + building software that helps people. I live in Moscow Idaho and my + hobbies include Devops, listening to podcasts, playing ukulele and, + especially, spending time with my wife and 4 kids.

Recent Software Projects

-

Dashdrop

+

Skillabi

+
+
+ + + + +
+
+

Project Goals

+

Skillabi is a tool to help Higher Education institutionsand to + find skills that are in-demand in the market place so they can + adjust they're curriculum to teach those skills. Skills are parsed + from course data and then compared with skills job postings data + for relevant occupations.

+

My Contributions

+ +

I worked on a 2-3 man team to build a prototype using netlify. We then + itterated on it in 3 phases. The prototype was successful enough + that customers requested to pay to use it (although it chock full + of technical debt on the inside.) When it came time to build a + production version, I took over as the technical lead on the + project. This included designing a new version of the backend APIs + and leading the reimplementation the frontend.

+ +

The new APIs for storing curricular data and user profiles + needed to be secure, easy to use, well tested, well documented, + scalable and reliable. We ensured that security was implemeted in + the back end first. We used cognito tokens and JWT claims to scope + user access at the API level on a per user basis. We adopted a + search query language for searching a curricular data that ensured + the API could be easily expanded and would be consistant across + endpoints. We implemented the API on AWS serverless lambdas for + scalability and reliability and used typescript on serverless.js + for ease of development.

+ +

The new frontend was developed with react, written in typescript + and served via cloudfront and s3 for scalabilty, reliability and + simplicity. I developed the solutions to the most complicated + problems, including realtime highlighting of skills within a text + area as users type (The parsing of the skills was handled by an + external API), and identifying boilerplate text accross many + courses in a curriculum for parsing.

+

Technologies Used

+

Typescript, Terraform, Gitlab CI, Fugue, OpenId/OAuth, React, Serverless.js, react-query, JWT, KONG

+
+
+

Skillsmatch

+
+
+ + + +
+
+

Project Goals

+

Skillsmtch is an web based app that schools can provide to their + students and potential student who are coming back to school after + some time in the workplace. Skillsmatch helps these adult learners + catalogue the skills they already have so they can see what skills + they could then learn to make help with either making themselves + more marketable or shifting careers. It then helps them identify + courses or degrees that could help them to learn and demonstrate + those skills to potential employers.

+

My Contributions

+

I worked with my team as a newly hired developer at the company + to quickly rebuild the already developed prototype. We build out + out necessary APIs using serverless.js/Mongodb and frontend in + Javascript with React/Redux. I wrote code for, reviewed and QA'd + tickets. I particularly enjoyed teaching new developers and interns + as they were hired, implementing API tests on our new APIs and + building out dev ops systems to automatically deploy to AWS.

+

Technologies Used

+

React, Cypress, AWS Elastic Beanstalk, Serverless.js, Redux, Docker, Codeship CI

+
+
+

Dash Drop

@@ -184,7 +260,7 @@ built to wrap the current web interface and allow reusing the existing web based code as much as possible.

-

My Contrinbutions

+

My Contributions

Initially I helped write many of the api calls for the js library the web app used to communicate through the webFrame to the native code. Later I helped out diff --git a/scripts/process-images.sh b/scripts/process-images.sh new file mode 100755 index 0000000..31849a6 --- /dev/null +++ b/scripts/process-images.sh @@ -0,0 +1,27 @@ +#!/bin/bash + +IMAGES_DIR="./images" + +WIDTH= + +for f in ./images/* +do + echo "Processing $f" + case "$f" in + *.jpeg|*.jpg) + convert $f [320] ./images/thumbnails/`basename $f`; + ;; + *.png) + echo "PNG $f" + ;; + *.webp) + echo "WEBP $f" + ;; + *.gif) + echo "GIF $f" + ;; + *) + echo "OTHER ${f}" + ;; + esac +done