Baldwin, New York, United States
Decided to capitalize on my extensive background building out reusable tooling for our frontend by joining the Frontend Platform team. Took on a project to completely remove Backbone routers from the codebase, first using an adapter class to allow routers written for Backbone to still work under a React Router root, and then after a period of teams migrating various routers took on the rest of them manually, ultimately rewriting 15k lines of code reviewed by 12 different teams, with minimal bugs resulting from the migration and a much stronger foundation to build off of. During the migration process I also built out a suite of utilities to not only make async requests but compose those requests in order to intelligently re-fetch only the requests that depend on values that changed and make requests in parallel when possible. Also did extensive work laying the foundation for standalone frontend services using NextJS and Bazel, wrote custom eslint rules to help guide people to use internally built tooling as intended, and helped build out automated alerting using Sentry's API. Most recently (as of this writing), I switched the build tooling from Webpack to Rspack, taking a build that took multiple minutes and bringing it under 10 seconds in most cases.
I switched over to be a founding member of the "Growth 2" feature team, working on implementing A/B tests as someone who already had a good idea of the foundations of the frontend codebase. Led a project to take code for a new payment page and make it suitable for a production rollout, able to handle multiple purchase types and disconnected from being tied directly to the cluster builder page. I also expanded my role mentoring more junior members of the team in React best practices, and was frequently a prominent voice in cross-team collaboration for the regular Web Chapter meetings.
After promotion to Senior I continued work on various Automation-owned UIs, API endpoints to back those UIs, and E2E testing, often creating abstractions and utilities as I went. Some examples I'm proud of include a `usePromise` hook to help avoid continually reinventing the wheel when making async requests in React, and tooling to allow us to better integrate legacy Backbone views with newer React components (making React context available to elements that were rendered inside a React to Backbone to React nesting).
Developed the TodayTix website for displaying show information and purchasing tickets. The site used Node server-side rendering with React and Redux in Hapijs, and heavily leveraged utility libraries like Lodash and Reselect. Was the primary developer for the Insider sections of the site, which used our Node framework to render pages, hitting a Wordpress API to retrieve content. Implemented the My List feature for the website, which allowed users to bookmark individual shows/institutions and rearrange them in a drag/drop interface. Open sourced multiple tools developed for use in the website, including a Webpack loader for SVG icons, a calendar component written in React intended to leave styling decisions up to the developer, and a utility function for efficiently updating state using immutable objects. Was involved in many discussions between the product and engineering teams, and helped to instruct the web team in how to use good functional programming patterns.
Developing and maintaining web applications, using Javascript, CSS, and HTML. Had influence in design decisions and front end architecture, using multiple libraries including Angular, React, Knockout, Durandal, jQuery, SASS, Less, and others. Eventually transitioned into more of a full-stack role, using Ruby on Rails and Haskell to develop back-end services.
Lead front end developer. Built the front end application for watching video playback with synchronized content, converting static designs into a fluid, interactive application. Also wrote a Node.js server for use with real-time server push technologies (allowing for authenticated subscription to specific channels, as well as notifications to individual users using my own custom code on top of the Socket.IO library), and produced many reusable modular components that were used in both desktop and mobile versions of the playback page.
Tutored freshman computer science students in Python, C++, and MATLAB. Wrote and administered mock exams.