Summary
I am a software engineer and architect of web products and tools using JavaScript / NodeJS / TypeScript, focusing on front-end development but with full-stack experience as well.
I have extensive experience as an individual contributor, and have served as Tech Lead and Scrum Master, in both a formal XP development process and in various blends of the components of Agile project management, with teams ranging from fully-remote to entirely in-office.
I enjoy getting feedback, testing code, and shipping products.
I am looking for an endeavor which impacts people's lives in a meaningful way!
Skills
-
Programming languages, frameworks, databases
- Very experienced in JavaScript (ES9+, React, Redux, WebSockets, CORS), CSS (media queries, animations, custom properties/variables, Sass, SCSS), and HTML5 (SVG, Canvas); comfortable with TypeScript, Svelte, Gatsby; familiar with NextJS.
- Experienced debugging and maintaining back-ends using NodeJS (including server-side rendering), Ruby on Rails, and Elixir/Phoenix. Comfortable with Python, Perl, PHP, Lua, and more.
- Experienced architecting and using GraphQL and REST APIs, and designing schemas for both relational databases (PostgreSQL, MySQL, SQLite) and NoSQL / document databases (DynamoDB, Redis, MongoDB).
- Experienced with test-driven development, at both the integration level (Cypress, Playwright) and unit level (Jest, Vitest, React Testing Library, Jasmine, RSpec, ExUnit).
- Adept at shell scripting in Bash and ZSH; experienced with Docker / container-based architecture.
-
General web development
- Proficient in JavaScript, HTML5, CSS3, Web Components, Web Workers, WebSockets
- Strong attention to W3C standards, browser/device compatibility, user accessibility/experience, and resource efficiency
- Experienced with web delivery best practices for high-traffic websites (CDN, caching strategies, Fastly)
- Familiar with accessibility best practices and SEO fundamentals (and very wary of tricks)
-
Project management:
- Familiar with formal Agile development (I have worked with Pivotal Labs and completed Scrum Alliance training)
- Very experienced collaborating with UX designers and product stakeholders to explore customer requirements and draft specifications
- Comfortable leading a team to implement features in feedback-informed development cycles
- Proud to have successfully established a regular cadence of maintenance and dependency updates to counter the deleterious effects of "feature-and-firefighting" development
Experience
-
Staff Software Engineer, Sports Architecture team (2022–2024)
@ Warner Brothers Discovery (entertainment & sports)
Software architecture and specification of a multi-system event-driven software stack, comprising several independent systems communicating via events/messages, powering a variety of internal tools as well as public-facing apps and websites.
- Collaborated on planning and coding a green-field rebuild of an existing service, using an event-driven architecture, built in TypeScript using Apache Kafka and AWS DynamoDB.
- Authored architectural documentation capturing tradeoffs and decisions around integration with third-party SaaS platform
- Planned and successfully executed a multi-year project to retire and replace the 15-year-old 'monolith' tech stack powering all features and content of Bleacher Report.
- Other tools used: Git; Slack; Jira/Confluence; UML & sequence diagrams; GitHub Actions; Docker; Miro; Zoom.
-
Lead Front-End Engineer (2015–2022)
Senior Front-End Engineer (2014–2015)
Front-End Engineer (2013–2014)@ WarnerMedia / Bleacher Report (entertainment & sports)
Agile-influenced web software planning, specification, team-leading, code development, and automated testing; across several projects; using modern JavaScript, Elixir, and Ruby on Rails; in a continuous-integration/deployment environment with multiple production releases per week.
- Individual Contributor and Tech Lead of a team of full-time employees and contractors, rebuilding a key internal CMS with a fully-custom realtime web app using React and NodeJS including a full integration test suite using Cypress.
- Built MVP of a JavaScript-based CMS web application using WebSockets, React, and NodeJS, and onboarded other developers to continue development through launch.
- Collaborated with product owners and UX/UI designers to define features and architecture of new projects, tools, and systems.
- Conducted technical interviews of job applicants with co-workers, both in person and via phone/video, and collaborated with department leaders to reform the interviewing and onboarding processes.
- Mentored new employees and junior engineers.
- Debugged errors in an Elixir/Phoenix service-oriented back-end.
- Built dramatic improvements in user-facing features, and improved internal structure and organization of legacy custom framework.
- Other tools used: Git; Slack; Jira; Travis CI, CircleCI, GitHub Actions; Docker; Balsamiq; Google Hangouts.
-
Front-End Developer (2011–2013)
@ Current TV (entertainment & politics)Agile test-driven development using Ruby on Rails, JavaScript, RSpec, Jasmine, Backbone.js, and jQuery. (Note: Current TV was sold in 2013 and the site has since been shut down; view an archived version here)
- Collaborated on TV-ready custom D3.js-based visualizations of data on interactive maps and graphs in SVG.
- Maintenance of and custom feature development on WordPress-based sites.
- Major code contributions to a test-driven responsive-design rebuild of the main site in Ruby on Rails.
- Other tools used: Git, Subversion; FogBugz, Pivotal Tracker; Travis, Jenkins.
-
Developer (2007–2011)
@ Wolfgang's Vault (e-commerce & music)Lead developer for several WordPress and MediaWiki sites, as well as a custom legacy site built in Perl and Python.
- Implemented complete redesigns and new features based on low-fidelity mockups.
- Migrated a brand presence from a proprietary CMS to a customized WordPress installation.
- Operations support for a production Linux web server.
- Constructed all consumer-facing email and implemented several design changes to email templates.
- Served as technical liaison to contracted email delivery service.
- Other tools used: Subversion, XSLTs.
Education / Certification
-
Certified ScrumMaster®
2016Scrum Alliance® (#000530544) -
Bachelor of Arts, East Asian Studies
2007: Oberlin College (Oberlin, Ohio)Concentrated in Mandarin Chinese language and literature.
Fun Facts
- I study languages for fun! In school I took classes in Mandarin Chinese, French, Italian, and Russian; lately I've been learning some Spanish and bits of Lojban and Toki Pona in my spare time.
- I'm an avid photographer, both film and digital, and particularly fond of long (multi-hour) exposures and piecing together wide panoramas in a real darkroom.
- I enjoy etymology, eagerly-hyphenated compound modifiers, and the serial comma.
- I write (code, this resume, etc.) with NeoVim, and have been using a Dvorak keyboard layout (e.g. non-QWERTY) since 2003.
- I listen to lots of music!