Mike Spencer
Front End Engineer
[email protected] github.com/mikespencer
linkedin.com/in/mikeaspencer
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 React Responsive Design
Node.js Redux TDD
TypeScript Webpack Agile
HTML Jest Python
CSS / SCSS / LESS Backbone 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.