Keith McKnight

Software Engineer and Manager

I’m an Software Engineering leader with a passion for developing sensible systems with healthy bones and building products that delight. I especially enjoy the space between design and engineering where the vision is made real.


Skills

I primarily use various JavaScript-related frontend technologies and Node.js, because it’s nice being part of the user experience. However, I’m comfortable enough just about anywhere in the stack. I also know my way around a design suite.

My belief is that it’s worthwhile to take the time to discuss software architecture and get the design right. Building good interfaces is crucial to ending up with a product that is more stable and scalable. It’s also great way to practice cross-functional empathy, align goals, and strengthen a team.


Technologies

It feels kind of hokey to include a laundry list of every language, technology, and tool that I’ve ever used, but here are a few things that I’ve enjoyed lately.


Work Experience

Tinder

Engineering Manager II, UI Platform

March 2022 to present

I lead a team of engineers across platforms (iOS, Android, and Web) that is responsible for maintaining the systems and best practices for building consistent UI across Tinder. As the engineering arm of Tinder’s Obsidian design system, we build everything from components to tooling to make ideas translate more easily from design to implementation. Our goal is to consolidate the boilerplate of building UI and making design decisions to allow feature teams to focus on the aspects that are actually unique to their projects.

Notable projects

Staff Software Engineer, Web Platform

August 2017 to March 2022

I was a member of the Web team doing everything from user-facing feature development, architecture and internal tooling work, and mentorship with junior developers. I acted as a strong proponent of best practices for the long-term health of the web platform. I joined as the web team was preparing for the global launch of the Tinder Progressive Web App, rapidly implementing product features to reach parity with the native iOS and Android apps.

I introduced a method of managing Redux state in the web app by applying data schemas at API request/response boundary. This allowed us to clarify business logic by extracting and consolidating various data transformations, insulating those parts of the app from the server and eliminating the need for costly rewrites as a result of future API changes. I also led the charge on improving our standard React UI components with more stable and composable interfaces, providing better consistency with the style guide at their core and ultimately increasing our velocity when using them to develop larger features.

In addition to my work on the Web Platform team, I was also “borrowed” for projects that lacked dedicated web resources to help with various new features in tandem with engineers on other platforms and to work on the UI of internal tools. Some of those tools include the first versions of both our CRM team’s campaign manager and the Experimentation team’s test management and results UI.

Splash

Senior Software Engineer

August 2016 to August 2017

Splash provides the tools to build beautiful event pages, gather information about guests and customers, and manage and analyze that data. My role on our small engineering team is a mix of product feature development and frontend infrastructure maintenance and leadership. I have the privilege of working on a collaborative and curious team where I can both build features and explore new technologies.

I joined to help productionize the codebase that allowed provde the viability of the product vision and initial feature set, applying my experience and knowledge to make it more sustainable, understandable, and future-proof. To this end, I drove a refactor of our build process that introduced the industry-standard tools and practices and migrated multiple legacy systems into just one legacy system and a clear path forward. This reduced build and rebuild times significantly, shaving hours off the process of developing product features and making the build and testing pipelines both more modular and transparent.

I also built the frontend for our integrations platform, simultaneously architecting and implementing a build process, React/Redux-based framework and UI component library, and the application itself, working closely with another engineer who build the backend API. The components and patterns that were built as a part of this project are providing the foundation for new feature work and being cleverly integrated into our existing Backbone codebase.

Tumblr

Staff Engineer

April 2015 to August 2015

Tumblr has a codebase forged over years of product innovation. As the Web Client Staff Engineer, it was my job to make sure that things in the frontend world didn’t get too hairy. I made sure that we were up-to-date on the best tools for the job, aware of what was next, and managing our technical debt. I helped keep our developers happy and on the same page about our best practices, acting as the advocate for the user’s browser in architecture reviews.

As a member of the Core Web team, I was as much an individual contributor as an evangelist: largely responsible for maintaining and improving our frontend framework (an in-house framework built on Backbone), build scripts (Webpack), and unit testing, as well as leading the charge on new initiatives and presenting information to the rest of the engineering organization in Lunch and Learns. I encouraged more active participation by Tumblr in the Open Source community, upgrading the official JavaScript Tumblr API client and writing a web implementation of Apple’s Live Photo technology.

Perhaps my biggest impact on the Tumblr frontend infrastructure was wrangling other tech debt to create sustainable patterns for the future. I migrated our build scripts from Browserify to Webpack, which cut build times by about 80% (building was a tremendous timesink in our workflow). I also refactored and documented a great deal of our framework code, which put us in a better place to understand what we had and how to proceed.

Product Engineer

October 2012 to April 2015

Assembling neat user experiences on the Tumblr dashboard. I’ve worked on everything from theme and post authoring to API integrations with third party services, primarily in JavaScript and PHP, but using whatever gets the desired results (but mostly Backbone). Some projects are big, some are small. Some require a full team, some are just me. They’re all cool; we try to keep the kids happy.

Some of my favorite things to work on have been the theme editor, post creation tools, and an interactive animated anthropomorphic photocopier assistant (it was introduced on April 1st, but sadly died within 24 hours).

Moda Operandi

Frontend Developer

February 2012 to October 2012

I was go-to for all things frontend. Our goal was to give the best presentation for our products, including collections and details views, and a painless and understandable checkout experience. I worked with our in-house creative team as well as outside agencies to implement designs for the site and ensure a seamless integration between the backend and the storefront.

Heavy, Inc.

Developer

July 2010 to January 2012

I was hired here to do “rich-media takeovers,” which is a nice way of saying intrusive “Flash ads.” A lot of them still looked pretty neat, given what they were. Pretty soon I also took over responsibility of developing the user-facing site, implementing maintaining a WordPress theme and plugins for our editors, troubleshooting and neutralizing renegade ads, and opening up Photoshop when a project comes up and it’s due yesterday. Oh, the fast-paced world of DoubleClick ads!

Splintertek, LLC

Simulation Developer

January 2009 to August 2010

I worked for a few different subcontractors at Lockheed Martin, but Splintertek was the last one before I moved to New York. They had a few non-Lockheed simulations that I worked on.

Lockheed Martin

Programmer Analyst (subcontractor)

August 2008 to August 2010

In my first job out of college, I worked on the TSA version of the game Myst. This “Courseware” was a hybrid of Flash and JavaScript, used for web-based training for employees of several government agencies. Working with 3D modelers and animators, we created interactive point-and-click simulations of machine operations and repair prodedures, as well as interpersonal communication and protocols.

Some interesting things I got to implement were a framework for seamlessly switching between interactive still-image-based states using full-motion video transitions, a tool for coordinating animations to lip sync an avatar to an audio track, and figuring out what exactly SCORM was and why I needed to care about it. Please note that the last one wasn’t actually very interesting.


Other Points of Interest

Open Source Contributions

I’m always overjoyed to find that many of the problems I have run into are shared by other developers, who have graciously shared their solutions on the internet through npm and Github. I contribute to these projects when I can, especially when I come across a utility that doesn’t seem to exist or a feature that is missing or broken.

Take a look at my Github page to see some of the things I’ve worked on.

Hipster City Cycle

Once upon a time, I worked with a few folks I knew from college on an iPhone game about a bicycle-riding hipster cruising the streets of Philadelphia, PA trying to blow through his trust fund by throwing parties. This seems like a quaint and very dated concept now, but it was really cool at the time.

I helped design many of levels and gameplay elements and drew all the artwork myself in a pixelated Maniac Mansion-inspired style.


Education

I have been educated!

University of Pennsylvania

BSE in Digital Media Design

Penn’s DMD program is a like a typical Computer Science program, but with an interdisciplinary spin that focuses on the application of technology to the creative and interactive. In other words, there was a lot of math and programming, but also plenty of fine arts and design. Physics is plenty interesting on its own, but it starts really getting fun when you’re using it to govern the laws of a virtual world.

Some things I built while in school include a website for the student radio station WQHS (with an insane PHP intranet so that we could have live playlists and archive them), a 3D clone of the arcade game Joust, and a Nintendo Wiimote hack to recognize and respond to distinct arm gestures.


Contacting Me

If you’d like to contact me in some professional capacity, please send an email or a LinkedIn message.

https://mcknig.ht

keith@mcknig.ht