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 11 years of full time remote work. Please, ask me about some of my previous projects!
Adobe
Sr UI Software Engineer, 2022 - 2024
Sr. Software Development Engineer, 2024 - Present
Fully Remote
React & TypeScript with Web Components. Worked on a team responsible for creating reusable components that allow users to interact with projects in various Adobe products, including Adobe Express. Acitvely participated as a contributor to innersourced libraries and components. Analyzed problems and proposed solutions by documenting and socializing ideas, and soliciting feedback.
Vitally
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.
Abstract
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.
Arivale
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
Semi-remote
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 nbcnews.com 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 nbcnews.com. Instrumented services to measure our ability to render updated results in under 15 seconds.
DVSport
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
- Gogithub.com/goabstract/go-git, fetch progress and misc
- Lispgithub.com/johncoder/cantrip, Emacs package
- Gogithub.com/johncoder/thrash, load testing
- C#github.com/johncoder/mimeo, templating library
- C#MvcContrib Portable Areas (defunct), ASP.NET MVC
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.