Hello,

profile picture

My name is Phil and I enjoy developing for the web

This site is an informal supplement to my resume emphasizing personal projects.

About Me

I'm , live in Milwaukee Wisconsin and am currently employed at Baylor Scott and White as a front-end developer. I try very hard to keep busy with personal projects as a means to learn new tools and become a better programmer. Outside of that I enjoy foosball, a good beer and skiing.

What I'm looking for in a position

I'm looking both for technical freedom and the opportunity to contribute to a product I can be proud of. I hold a high standard for the products I work on, from how the website is hosted and deployed down to the end user experience. Solving the gamut of issues presented by a product is something I really enjoy and so I hope to take on that responsibility in my next position.

My Stack

Front end

react, next.js, vue, angular, webpack, babel, sass, postcss, lodash, ramda, axios, velocity, prettier, terser and plenty others

Backed by

the most recent version of node via nvm, next.js, vue ssr, koa, any flavor of sql, redis, mongodb and couchdb

Testing

mocha, chai, jest

My experience with testing is unit and backend integration tests - I haven't spent the time to learn e2e and only briefly worked with jest for the frontend. I would enjoy the opportunity to learn more of these tools.

Preferred OS

Any flavor of linux.  osx is linux'y enough to rate a distant second.

Hosting

mostly digital ocean

Side Projects

The following are personal projects I've worked on in my own time

Legend

  • application

  • tool

  • library

Projects

  • passthequill.com

    See it in action Github source
    What is it?

    A simple word game that I initially created for pen and paper a few years ago.

    Why create it?

    I've had this idea in the back of my mind for a while and wanted to finish it. My focus here was learning a few new technologies as well as creating a friendly user experience. I probably learned the most about vue, ssr, how to configure an email server, couchdb and how to organize the frontend to more easily coordinate animations.

    I could go on for a while about this site - it is easily the most fun and rewarding project I've spent time on.

  • beerkb

    See it in action Github source
    What is it?

    An interactive website allowing you to modify beer data stored in a sqlite to rest instance.

    Why create it?

    To showcase sqlite-to-rest, present some front-end code, and learn a full-featured templating engine that can be used on both the front and back ends (nunjucks).

  • nch

    Github source
    What is it?

    nch stands for NSS Certutil Helpers and is a friendly, narrow-focused command line wrapper to certutil. Its goal is to allow for easy creation of mutual ssl authentication.

    Why create it?

    The command line experience for both openssl and certutil are abysmal. Granted, my CLI is extremely limited in scope, but its use is intuitive. The repo doubles as a tutorial since existing documentation on the subject of mutual ssl authentication lacks clear examples.

  • sqlite to rest

    Github source
    What is it?

    A library allowing you to easily create a RESTful API from an existing sqlite database.

    Why create it?

    I wanted to learn how to build a proper web API using node and CRUD boilerplate is not fun to write. I chose sqlite because I'm not sold by the NoSql hype and it is the simplest mature relational database.

  • structured cli

    Github source
    What is it?

    A library allowing you to easily create a very friendly CLI.

    Why create it?

    The popular CLI libraries out there like commander and yargs are great and general-purpose. However they also provide functionality that shouldn't be a part of any CLI and they don't handle errors or formatting in a way that I prefer. structured-cli is more limiting but enforces a clean, reliable CLI experience and is simple to configure.

  • madonna fp

    Github source
    What is it?

    A javascript object validator using functions as building blocks.

    Why create it?

    I was sick of writing validation boilerplate and needed a way to validate javascript objects. After looking around, I wasn't satisfied with other approaches. By using lodash/fp, I think my approach is very flexible in comparison and allowed me to more easily build structured cli and sqlite to rest.

  • lilyvm

    Github source
    What is it?

    A lilypond version manager similar to nvm , pyenv , rvm , etc.

    Why create it?

    Originally I set out to add functionality to lilybin but was taken back by their lilypond version restrictions. I am confident in bash and wanted to more fully understand how version management works.