Hi, my name is Phil Gresham.
I'm a software engineer, geographer, and woodworker.

Learn more about me

Check out my projects

My tech skills

Contact me

About Me

I'm a software engineer in the Bay Area with broad experience working with JavaScript/React frontends and several backend setups, including Ruby on Rails, Node/ExpressJS, Google Firebase, and AWS AppSync. I love working on all aspects of an app, but I'm especially drawn to creating new components/pages on the frontend and working with business logic on the backend.

Before I got into software development, I was a project manager in the electric utility industry, where I coordinated 3 full crews' activities. I've always built my own tools to solve specific problems (usually Excel calculators), and I took that a step further when I founded my own productivity app aimed at people working in the same position. In addition to honing my technical skills, this experience has taught me about making significant UI/UX decisions, locking down information security, and making apps accessible to everyone.

Outside of work, I enjoy traveling in the off-season, cycling along the Bay Trail, and tinkering with projects at ACE Makerspace in Oakland. I'm proudest of some of my woodworking projects, including a set of maple wood bookshelf speakers and my dining room table.




This fullstack clone of DocuSign allows users to digitally sign documents, send those documents to others for signature, and track who has not yet signed. A user can create a digital representation of their signature by either using a selection of fonts or by using a trackpad/mouse. To prepare a document for signatures, users can upload a PDF or Word file and then drag and drop different types of fields onto the document for their signatories to fill out. They can then route the signed file directly to their signatories' email and track completion.

Tech stack: React, Redux, Ruby on Rails, PostgreSQL, AWS S3, react-pdf, react-signature-canvas

See LiveSource Code


AcrossWords is a variation on the classic Crosswords game. Players are provided with a clue and a limited amount of time to fill out as many words as possible. The next word is always generated such that it overlaps with one to three letters of the beginning or end of the previous word

Tech stack: React, Redux, ExpressJS, NodeJS, MongoDB

See LiveSource Code

CSS Challenges

Every week, I send out a new animation to a Slack group for folks to try to replicate in CSS. I use Storybook to compile the animations and allow for changing some properties on the fly.

Tech stack: React, Storybook, JavaScript, SASS

See LiveSource Code
CSS Challenges

Space Junk Eliminator

This JavaScript game takes inspiration from an article I read discussing propositions to clear the nearby space of debris from launches and dead satellites.

Fully JavaScript with a few helper libraries: JQuery, PaperJS, Webpack

See LiveSource Code



Want to work together?

Send me a note