I'm a professional software engineer with experience in a number of technologies and application patterns. I enjoy working with people just as much as working with code and I try to learn something new every day.

A brief history

My introduction to writing code was taking AP Computer Science in high school, but from there I took a roundabout path to my current profession. I entered college to study business & economics and after graduating worked on the client-facing side of enterprise investment management technology (or if you prefer, "fintech"). After six years of toiling on the business side of software in 2014 I decided to change direction and learn how to build the stuff. I entered App Academy's immersive web development program, in which I was (re-)introduced to object-oriented programming, application frameworks, and web engineering -- but most importantly learned how to learn more code.

Since then I've worked on a lot of exciting engineering efforts and gained experience in a number of languages, technologies, and concerns. In addition to my technical capacities I've embraced opportunities to lead and have achieved success as a team leader.

Experience and challenges

JavaScript; Node.js; React.js; Ruby & Rails; Browsers; SQL; AWS.

Countering systemic complexity with sensible, sane and extensible application design; delivering performant, secure and high-availability digital experiences; building accessible and device-responsive interfaces; leading engineering projects to business success; empowering individuals to take ownership; building consensus.

See my resume for my experience in detail.

Philosophies of code

If you ain't shippin, you slippin

Code is a means to an end. It must accomplish something greater than itself. It's important to create lucid, elegant code, especially when it's owned by a team, but don't lose sight of the end goal. You must ship!

Code should speak for itself

The intent of code should be lucid and self-evident. Sometimes, it's necessarily not, and that's okay -- that's what comments are for :)

Document it NOW

Documentation is crucial but it's easy to let it slip. Do it now, before you forget how everything works (or is supposed to work). Write it down somewhere, anywhere -- it can be cleaned up later.

When all else fails, draw a picture

I'm a visual person and I grasp broad, complex systems better when I draw pictures of them. Sometimes those pictures turn out to be helpful for others too!