John Nelson

Dad / Husband / Developer

General Experience

Nearly every position I've held included many of the same duties: write code responsibly, efficiently, and accurately. Write testable, performant, maintainable code. Fix bugs, and build features. Communicate early, often, and effectively. Document. Everything.

Work History

More than 8 years of full time remote work. Please, ask me about some of my previous projects!


Sr UI Software Engineer, 2022 - Present

Fully Remote

React & TypeScript, working on a spaces component used across various Adobe products in Creative Cloud.


Senior Software Engineer, 2021 - 2022

Fully Remote

Full stack TypeScript on a growing team. Enhanced and supported integrations for the product. Worked with complex database triggers, and versioning with migrations. Dockerized some depenencies for local setup. Improved developer tooling. Helped refine and improve development team processes.


Staff Software Engineer, 2019 - 2021

Fully Remote

Established a biweekly performance meeting that resulted in numerous initiatives improving performance across the product. Ran a weekly on-call meeting with engineers and ops. Designed and proposed implementations for the platform. Volunteered to help onboard new team members. Mentored individuals that were interested in the track to becoming a Software Engineer.

Designed and built a scalable backend for collaborative document editing based on Yjs and Redis. On this project, I got to deep dive in TypeScript and CRDT implementations. Built a new pipeline for uploading images using pre-signed URLs. Prior to working on design process tools, I worked on features for our Ruby API, and supporting Go services, and PostgreSQL database migrations. Used monitoring and tracing tools to support services in production. Some Terraform and AWS contributions. Built an automated backup strategy with a gradual, probablistic rollout.

On the client side, I used knowledge of the git protocol to optimize fetch operations in a client side Go application. Also worked on opening untracked files, fetching branches, and experimented with shallow repositories and deepening. Troubleshooting git repositories. Implemented progress reporting for fetch operations in a fork of go-git. JavaScript SDK contributions.


Senior Software Engineer, 2017 - 2019

Fully Remote

Designed and proposed engineering projects. Mentored several engineers through frequent pairing sessions. Represented engineering among cross functional working groups, translating non-technical problems into actionable engineering efforts.

Built integrations and server side features for a real-time chat mobile app. Supported and enhanced internal productivity tools for coach caseload management. Reverse engineered and implemented a blood draw appointment scheduling application. Became the owner of internal fulfillment services for shipping and tracking orders.

Added Event Sourcing to internal services. Developed on a full AWS and Docker stack. Worked on extensive third party software integrations. Rapidly prototyped new consumer services. Built cross service communication using pub/sub via SNS and SQS in AWS.

Libera, Inc

Manager, Software Engineering, 2017


Lead an engineering department distributed across the country. Prioritized and advised enhancement and bug fixes in a legacy system. Mentored engineers expanding their skillsets. Created a summer internship program. Worked with other department managers on responding to RFPs. Worked with product managers to groom backlogs and do sprint planning.

Made individual contributions to pave the way for a more modern tech stack. Designed/implemented a REST API with a custom hypermedia format. Incorporated event sourcing, and polyglot persistence. Built productivity tools to improve team capacity for doing concurrent work. Built a service for extracting fillable PDF fields and generating filled PDFs.

NBC News Digital

Senior Software Engineer, 2012 - 2017

Fully Remote

Started out as a member of the platform team maintaining and enhancing a .NET ecosystem. Identified and resolved issues with RavenDB replication. Increased operational transparency related to replication state. Coordinated a major upgrade to RavenDB. Supported ops initiatives, and optimized deployment tooling for continuous delivery.

Built and optimized a node.js rendering service for using Redis, including productivity tooling. Achieved a sub-second TTFB on server rendered content. Later migrated from one internal API to a broader organizational content hypermedia API. Built deployment tooling based on Windows Server, and later migrated it all to Linux in AWS.

Assumed responsibility for a number of supporting services, including a video processing pipeline, and ad system integrations. Built a prototype for sending AMP content to Google for fast indexing.

Worked on elections coverage for 2014 and 2016. Consumed Decision Desk data in real-time for rendering on Instrumented services to measure our ability to render updated results in under 15 seconds.


Web Developer, 2011 - 2012


Worked as one of two full-stack engineers responsible for building a web platform for sharing and viewing sports team footage. Designed and implemented the API endpoints, UI/UX, SDK, CI/CD pipeline, database management, and more. Researched and implemented Event Sourcing and CQRS to power activity streams, monitoring, and deploying retroactive features. Accomplished two full redesigns.

Built prototype for a collaborative still shot viewing application with telestration. Also built a prototype for a coaching application that utilized a live streamed feed.

DynaVox-Mayer Johnson

ASP.NET Developer, 2010 - 2011


Worked on an internal order management system. Built features for internal end users. Implemented full-text search indexing. Participated in extensive relational database modeling.

Gateway Ticketing Systems

Web Programmer, 2009 - 2010


Worked on a web-based e-commerce platform for ticketing in amusement parks and transportation. Integrated with third party services and payment providers.

Spent time discovering industry best practices, such as Test-Driven Development, and utilizing design patterns. Learned advanced techniques in .NET and brought them to the team to improve performance and maintainability.

Libera, Inc

Application Developer, 2007 - 2008


This was my internship, diving deep into rapid application development and learning to build line of business applications using relational databases such as Microsoft SQL Server and Oracle. Built a log viewing tool to improve the quality of life in development for myself and my peers.

Open Source

Professional Objective

Solve interesting and meaningful problems while establishing myself as an influential contributor on a team of exceptional developers. Continue mentoring and teaching others with interest in Software Engineering.

Jamestown, NY


Clarion University of PA
Fall 2005 - Fall 2008

Programming Languages

Go C# JavaScript TypeScript Node.js Ruby Python HTML CSS SQL Lisp C

Primary Skills

TDD FP OOP RavenDB MongoDB Redis Docker Automation AWS REST API Hypermedia HATEOAS Event Sourcing CQRS

Secondary Skills

React Design UX


Scalability UX Speaking Writing

Speaking Engagements

Philadelphia Code Camp
Philadelphia Code Camp
Pittsburgh Code Camp
Pittsburgh Code Camp

Notable Writing

Musings of Performance Past

On Empowerment Through Declarative Programming

designed by me
github linkedin twitter