Mike Spencer
Front End Engineer
About me
I'm a front end engineer with experience developing complex, high profile web applications collaborating with both small and large teams. I specialise in JavaScript, thriving in an agile environment leveraging modern technologies such as React and Redux. I pride myself in writing scalable, elegant code — creating simple solutions to complex problems.
Skills
- JavaScript
- Node.js
- TypeScript
- HTML
- CSS / SCSS / LESS
- React
- Redux
- Webpack
- Jest
- Backbone
- Responsive Design
- TDD
- Agile
- Python
- Java/JSP
Experience
Squarespace - New York, NY
Team Lead, Interface Architecture (Aug 2019 - July 2020)
Senior Software Engineer (Jan 2019 - July 2020)
Software Engineer (Feb 2018 - Jan 2019)
- Led a team of 5 engineers practicing agile methodoligies to iteratively release quality products.
- Architected and orchestrated the development of a modularised suite of tools for setting up the front end infrastructure for web applications and libraries, including build, i18n, linting and testing setups.
- Mentored and provided feedback to engineers through code reviews and pair programming.
- Pioneered and led a project to convert the CMS's custom JavaScript router to TypeScript, add sufficient unit, integration and e2e test coverage and to refactor the router to be more effective.
- Supported and streamlined the CMS's front end CI pipeline and development workflows by building custom integrations into tools such as Webpack, Babel, Jest and ESLint.
- Maintained the overarching front end architecture of the CMS, including a custom JavaScript router and the front end automated testing infrastructure.
Meetup - New York, NY
UI Engineer (Feb 2014 - Dec 2017)
- Architectural lead for replatforming Meetup Pro from a legacy monolithic codebase to a microservice backed Hapi + React + Redux isomorphic/universal SPA, leveraging the latest tools such as Flow, Jest and Reselect.
- Squad lead for replatforming the Members and Chapters network admin features for Meetup Pro organizers — two of the most powerful features offered by Meetup Pro. Responsible for breaking down/organising/estimating tasks, keeping the team in sync, writing documentation and implementing features.
- Led the development of a React UI component library for use throughout Meetup Pro. Some technologies used: Storybook for UI development and documentation/cataloging, CSS modules, Flow and Rollup among others.
- Developed a multi-step signup flow for Meetup Pro, allowing members to upgrade their Meetup accounts to Pro accounts.
- Mentored an intern and junior engineers by participating in regular pair programming, training sessions and code reviews.
- Spearheaded the transition to the new Meetup web platform and provided feedback to shape the architecture of it.
- Evaluated and introduced tools such as Enzyme, Recompose and Redux Form into Meetup Pro's SPA.
- Migrated the JavaScript build in the legacy Meetup codebase from RequireJS to Webpack — introducing tools such as Babel, empowering engineers to write better code by taking advantage of ES6 features.
- Introduced unit testing into the legacy Meetup codebase using Karma and Jasmine.
- Hosted workshops on topics such as TDD, writing good unit tests and latest ES6 features.
The Washington Post - Washington, DC
Manager and Lead Commercial Web Developer (Nov 2011 – Feb 2014)
Commercial Web Developer (Oct 2009 – Nov 2011)
- Built and implemented custom ad executions while coordinating with departments such as editorial and infrastructure to ensure flawless delivery.
- Deployed GPT ad scripts throughout washingtonpost.com, slate.com and theroot.com to enhance website performance with fully asynchronous ad loading.
- Developed and implemented viewable impressions for ads so that they will only render when they are actually seen to improve page performance and ad performance metrics.
- Built custom client websites using the MovableType CMS, such as China Daily's ChinaWatch.
- Maintained and enhanced the JavaScript that renders all of the ads on washingtonpost.com, slate.com and theroot.com.
- Built a scalable, lightweight, dynamic Flash video player that became the standard video player in custom ad units built in-house.
- Developed a tool to quickly and easily generate code for ad placements.
Education
B.S. Interactive Media, School of Media Arts & Design
James Madison University - Harrisonburg, VA (Aug 2005 – May 2009)
- Focused on front end web development such as HTML, CSS and JavaScript.
- Completed Computer Science classes covering OOP and Java.
- Studied Adobe CS including Flash and ActionScript programming.