Front-end architect and developer. I build enterprise JavaScript applications, specializing in Angular.


Senior Front-End Engineer

Mosaic Finance • San Diego, CA (Remote)
  • Front-end lead for the Data Management team, overseeing the ingestion and transformation of all incoming data. Develop features catering to customers and internal support staff, focusing on optimizing the flow and schema of the data to ensure seamless consumption by the rest of the platform.
  • Led migration of the Angular application to an Nx monorepo structure, resulting in significant enhancements to local and pipeline execution times for build, test, and lint tasks. Implemented the use of lazy-loaded modules, improving the run-time performance of the application.
  • Architected and implemented the transition to NgRx for state management, scoping data to the application, module, or component level. This minimized redundancy and API calls, improving performance.
  • Responsible for Angular and npm dependency upgrades and management, dedicating approximately 80% of time to feature deliverables and 20% to architecture tasks.
Apr 2021 - Present

Front-End Architect

Vertafore (Sircon) • East Lansing, MI
  • Completed initial build of company's internal UI framework and style guide, provided ongoing support by adding new features and enhancing existing functionality
  • Led Angular migration project which spanned 4 products and 15 development teams by rewriting our internal UI framework and training teams in the new stack
  • Architected the company's first single-page app in AngularJS, the first built with RESTful APIs
  • Integrated UI apps into our CI/CD pipeline, initially with Grunt and later with webpack & Angular CLI
  • Implemented best practices for code quality such as unit testing (Jasmine/Karma) and static code analysis (ESLint)
  • Trained and supported developers by running workshops in a bi-weekly UI forum. Example topics include modularization, web components, and Chrome Dev Tools
  • Served as technical expert for long-term strategy planning, working with UX and product management to migrate legacy products into new platform, while still delivering new features
Oct 2011 - Mar 2021

Sr. Software Engineer

Auto-Owners Insurance • Lansing, MI
  • Began career as a full-stack Java developer working on a quoting web application for insurance agents
  • Shifted to primarily front-end when creating company's first web app for the general public, focusing heavily on jQuery UI and AJAX
Jan 2007 - Oct 2011


University of Michigan

Bachelor of Science • Dearborn, MI

Major: Computer Science
Activites: College Bowl Team (2004 - 2006)

Dec 2006


Intro to Web Components

Vertafore Internal Conference • East Lansing, MI
Jul 2020

Intro to Webpack

Vertafore Internal Conference • East Lansing, MI
Jul 2020

From Mockup to Markup

Vertafore Internal Conference • East Lansing, MI
Jun 2019

Building Your Personal Website

Vertafore Internal Conference • East Lansing, MI • Info
Jun 2018

Creating a Styleguide

Lansing JS Meetup • Lansing, MI • Info
Mar 2018

Ionic and Firebase

Vertafore Internal Conference • East Lansing, MI • Info
Jun 2017

Legend of Canvas

Fluent Conf • San Francisco, CA • WatchInfo
Mar 2016

Ionic and AngularJS

Lansing JS Meetup • East Lansing, MI • Info
Nov 2015

JavaScript Lightweight Applications

Vertafore Internal Conference • East Lansing, MI • Info
Jul 2015


Legend of Canvas

AirPair • Read

Best Front-End Post • AirPair 2015 Writing Competition

Published in Frontend Focus #233

Getting Started with Chrome DevTools

AirPair • Read

Tips for Dealing with Developer Stress

AirPair • Read



Xbox • Store
Opposwitch is a logic-based puzzle game. Clear each game board by toggling off all the tiles. Toggling a tile will also affect tiles next to it. The different colors have different patterns, and the challenge ramps up as new colors and patterns are introduced and mixed!

Available on Xbox Series X|S and Xbox One

Legend of Zelda

HTML5 Canvas • Play
The classic action RPG game from the Nintendo Entertainment System. Works on mobile devices. Supports Nintendo USB gamepad. Far from complete but more than functional.

↑↓←→ Move Link
[ C ] B-Button Item
[ Space ] A-Button Item
[ Enter ] Menu


HTML5 Canvas • Play
A recreation of the Atari classic arcade game Breakout. A type of single-player tennis. Use your paddle to bounce the ball at the bricks to destroy them! Works on mobile devices.

←→ Move Paddle
[ Space ] Serve


HTML5 Canvas • Play
A recreation of the Atari classic arcade game Asteroids. Fly a spaceship and shoot asteroids before they destroy your ship!

↑ Thrusters
←→ Turn Ship
[ Space ] Shoot


I'm an avid runner. I enjoy running wherever I go, my favorite place has been the Mackinac Bridge.

I love music and play guitar in a band. Pearl Jam, Stone Temple Pilots, and the Beatles are always in heavy rotation.

Like many developers, I love video games. If I'm holding a controller, there's a good chance I'm playing a Legend of Zelda game.