Senior Software EngineerNetflixAug 2018 - Present
Senior Software EngineerNetflix
- Currently leading building out IDE integrations and tooling for Netflix engineering, targeting Microsoft's VSCode and the JetBrains IDEs.
- Lead UI development of a brand new web application named Creative Review, using React, TypeScript, Redux, CSS-in-JS and a NodeJS server for the UI layer. Used Kotlin for the API layer, with MySQL and Redis for the data layers. Application is used for reviewing artworks before they can be used for promotional purposes. Built a reusable UI library, named Freeformer, for panning, zooming and annotating images, as well as a UI library named Conversation Pit for handling threaded conversations.
- Led UI development of another new web application, named Iris. This application is responsible for checking the status of all the artwork that flows into the Netflix streaming service, and ensures a title is not missing any artwork at any point in its lifecycle. Built a reusable, sensible-default introspection tool to automatically generate React data fetching hooks and TypeScript typings. The introspection tool leveraged GraphQL Code Generator, as 100% of all of Iris' data needs are met by our federated GraphQL service.
- Led a working group to align on Monorepo tooling, and created an easy-to-use command line tool to manage UI monorepos across Netflix. Tool is now open-sourced! Checkout Turbo Tools.
- Lead the creation and development of the Hawkins Community, a repository with build, testing and publishing mechanisms to make it easy to contribute community components and libraries that are built on top of the Hawkins UI libraries. Hawkins Community has over 40 published libraries, in use across hundreds of applications, with over 2 million installs.
Software EngineerNASA Jet Propulsion LaboratoryFeb 2016 - Aug 2018
Software EngineerNASA Jet Propulsion Laboratory
- Created a platform-agnostic, real-time state synchronization service called Neuralyzer, built on the Web Socket protocol. Neuralyzer uses Redis to synchronize server "rooms" between multiple instances of the Neuralyzer server that may be executing. Uses Redis to store server state, as well as a pub / sub channel for sending private messages between server instances.
- Led web UI development of a hybrid 2D / 3D web application called OnSight, which enables scientists to explore a 3D reconstruction of the Martian terrain. Terrain visualization assist scientists in gaining spatial context for where the Rover has been at each of its drive locations. Users can join realtime, multiuser discussions to share POIs with each other and discuss various terrain features.
- Created a reusable web application "widget" library, built on the Web Components specification, with the intention of reducing duplicative efforts that result from having to constantly implement custom buttons, inputs, datepickers, and data visualizers. Using the library provides a consistent UI aesthetic across different applications.
- Rewrote Raven, a multi-mission data visualization tool, into a stateful, single-page-application used for sequencing and planning of missions. Tool supports restoring UI state from historicals persisted in a DB, as well as customizing data visualizations. Rewrote this application using React, Redux, and Stylus CSS, while using Webpack and custom NPM scripts for building.
Senior Software EngineerPure ChatJan 2014 - Feb 2016
Senior Software EngineerPure Chat
- Developed the majority of all front-end and UI features, using Marionette.js and Backbone.js as the MVC framework. Worked with Socket.io to build scaleable, real-time communications Node.js servers for live-chat. Wrote a substantial number of REST API endpoints with ASP.NET's WebAPI framework for usage in maintaining the Pure Chat application. Used Entity Framework's Code-First Migrations to build and maintain the databases used for the Pure Chat system.
- Developed a real-time visitor tracking and analytics system, using Node.js with Express.js, Socket.io, and MongoDB as the data store. React.js with Reflux were used for the UI.
Software Engineer IIIU-Haul InternationalDec 2011 - Jan 2014
Software Engineer IIIU-Haul International
- Developed a jQuery version of the Payment Control server control, which is responsible for collecting, removing, and modifying any payments applied within a sales or reservation transaction, and uses a WCF service via JSONP for any required server-side functionality.
- Worked on the THS (Terminal Host Service) Windows service, which handles all of the credit / debit card device interactions, as well as popping of cash drawers from within any web browser.
- Developed and maintained all internal jQuery plugins currently being used in the Point of Sale system.
- Worked within the ESL (Equipment Scheduling Log) and HSL (Hitch Scheduling Log), which are responsible for creating / modifying / deleting all equipment rental and hitch transactions made across all of U-Haul's locations.
- Information available upon request