AJ Michels
Oakdale, MN 55128
Professional Summary
I have been working as a software developer for two decades, progressing from individual contributor to Software Architect. I consider myself a polyglot — over my career I have worked extensively with many languages and platforms, most notably JavaScript and PHP. More than anything I am a problem solver. For me there is a right tool for every job, and if I don't have it, I learn or build it. Today my focus is on driving technical direction, designing secure and scalable systems, and mentoring the engineers around me. I am always looking for opportunities to work with companies that are serious about building great software.
Technical Skills
Software/Tools
Vim, Git, Sublime Text, Eclipse, Chrome, Safari, Firefox, IE, Photoshop, macOS, Linux, Docker, Kubernetes, AWS, Elasticsearch, React
Languages/Scripting
JavaScript, PHP, Java, Bash, CSS, SASS, HTML5, XML
Databases
MySQL, MariaDB, SQL Server, SQLite, CouchDB, MongoDB
Methodologies
OOP, AOP, SOA, MVC, TDD, BDD, Design Patterns, DevOps, Agile, Scrum
Professional Experience
BI Worldwide
Oct 2022 — PresentSoftware Architect — Edina, MN
At BI Worldwide I work in Corporate Product Development (CPD), a division building a multi-tenant SaaS platform that consolidates the company's employee engagement, recognition, and incentive product offerings. I joined as a Lead Software Engineer and was promoted to Software Architect, where I collaborate across six development teams, key stakeholders, and the principal architect to drive platform direction and uphold security and engineering best practices.
- Promoted from Lead Software Engineer to Software Architect within three years based on technical leadership and cross-team impact
- Rescued a mission-critical in-house OIDC/OAuth identity provider after its primary developer left the organization; became the company's subject-matter expert, stabilized the system, and is leading efforts to replace it with a modern, standards-compliant implementation
- Took over leadership of a struggling data analytics and data lake initiative, resolved significant performance and cost problems, and guided the team to rebuild the system from the ground up using managed cloud services
- Mentored engineers across multiple teams spanning associate through senior levels
- Collaborated with the principal architect and business stakeholders to define architectural direction, establish platform standards, and ensure the delivery of secure, scalable software
Technical Environment
- AWS, Kubernetes, NodeJS, PostgreSQL, Kafka, Redis
- ExpressJS, React, Sequelize, Git, GitLab
Gartner Digital
Oct 2019 — Sep 2022Senior Software Engineer — Stillwater, MN
I joined Gartner Digital (a wholly owned subsidiary of Gartner Studios) to lead a team of developers working to maintain a system providing product personalization capabilities, primarily focused on stationary products such as wedding invitations and RSVPs.
- Architected and implemented a serverless event-driven personalization order fulfillment pipeline with multiple third-party integrations
- Maintained legacy SaaS personalization platform through end-of-life
- Facilitated the fulfillment of personalization orders with print vendors
- Stood up and maintained a private MediaWiki instance for internal documentation and communication
Technical Environment
- AWS, PHP, NodeJS, CouchDB, MySQL
- Restana, Yargs, Jest, Magento, Git
- Serverless, React
Vivial, Inc.
Oct 2017 — Oct 2019Senior Software Engineer, Marketing Platform Lead — Bloomington, MN
At Vivial I led a team responsible for maintaining acquired assets which comprise the Vivial Marketing Platform. The platform was designed for helping small to medium sized local businesses market themselves on the web.
- Implemented text message communication system to allow clients to communicate with customers via text messages
- Maintained and enhanced Facebook advertising integration which provides easy advertising capabilities to clients
- Maintained and enhanced integrations with social media APIs such as Facebook, Twitter, LinkedIn, and Google
- Maintained and added numerous third-party integrations
- Collaborated on re-architecture of the entire marketing platform
Technical Environment
- AWS, Docker, Ubuntu, Nginx, PHP, Node, MariaDB, MongoDB
- Drupal, PHPUnit, Ansible, Git
- jQuery, Ractive, Serverless
CaringBridge
Sep 2015 — Oct 2017Lead Software Engineer — Eagan, MN
At CaringBridge I worked on enhancing and maintaining the CaringBridge.org website and its supporting services and software. I worked with a large scale Zend Framework based web application, wrote Java based micro-services, and built a custom WordPress theme from the ground up. I also continuously worked with our team to improve upon our coding practices and development life cycle processes.
- Used Test Driven Development to update and maintain legacy PHP software
- Created a Java based micro-service for managing site map XML data
- Collaborated on Software Development Life Cycle implementation and refinement (Agile)
- Implemented and updated Ansible managed server environments (DevOps)
- Worked with team on large application UI refresh
- Implemented SAML SSO with third party partner
- Converted legacy search functionality to Elasticsearch implementation
- Mentored team members on PHP and general development best practices
Technical Environment
- CentOS Servers, Apache 2, PHP, Java, Node, MongoDB
- Zend Framework, PHPUnit, SpringMVC, JUnit, Ant, Ansible, Grunt, Gradle, Jenkins, Git
- jQuery, Backbone, Underscore, Jasmine, Bootstrap
WolfNet Technologies, LLC
Apr 2012 — Aug 2015Senior Web Developer/Team Lead — Minneapolis, MN
At WolfNet I took on a leader and mentor role even amongst the more senior developers. I led development of a ground-up rebuild of their primary product and was heavily involved with the development of a new API.
- Created full featured real estate search user interface with responsive design which is backed by the same API as the WP plugin
- Collaborated on a RESTful web API which delivers real estate data for over 450 MLS markets in the US and Canada
- Created a build and deployment process which utilized Grunt and Git to deploy code to multiple load-balanced server clusters (DevOps)
- Created multiple internal tools to assist with development and project management
- Implemented team wide code review workflow and Git best practices as well as Semantic Versioning format
- Implemented new company website on a major CMS platform
- Established development processes and flows
Technical Environment
- Ubuntu Server, Apache 2, PHP, MySQL 5, Lucee/Railo, ColdFusion, SQL Server 2014
- Git Source Control
- WordPress, ColdBox, ColdSpring, Taffy, Grunt
- jQuery, Chosen, TinyMCE
Minnesota Nurses Association
Jul 2013 — Aug 2014Freelance Developer — Remote
I was brought on under a temporary contract to perform general maintenance while they were transitioning between developers. The contract lasted much longer than initially expected and I also created an entirely new web application for them.
- General maintenance of Drupal based website
- Developed specialized web application for collecting information from membership
- Investigated possible updates to Appcelerator Titanium based mobile application for Android and iOS
Technical Environment
- CentOS, Apache 2, PHP, MySQL 5
- Git Source Control through GitHub.com
- Drupal, SlimMVC, Doctrine ORM, Symfony Dependency Injection, Composer, Grunt
- Bootstrap, jQuery
The American Academy of Neurology
Jan 2006 — Apr 2012Senior Web Developer — Saint Paul, MN
I began at the American Academy of Neurology as an intern and was hired into a full-time position six months later. My primary focus was developing, maintaining, and improving web applications across multiple domains, primarily using ColdFusion and OOP principles.
- Developed and co-designed patient centric website (patients.aan.com)
- Re-designed and produced functional mock-up of publication website (Neurology.org)
- Developed applications to capture, manage and report on event registrations
- Developed application to capture and report on cross departmental meeting notes
- Co-developed and maintained homegrown multi-domain CMS
- Designed & developed multiple micro sites for state neurological societies
- Developed application to capture and display neurological disorder information provided by NINDS (National Institute of Neurological Disorders and Stroke)
- Supervised two part-time interns
Technical Environment
- Windows Server 2008, Apache 2.2, ColdFusion 9, SQL Server 2008
- SVN and CVS Code Repositories
- Mach-II 1/1.5/1.8, Reactor, ColdSpring, Fusebox Frameworks
- jQuery, qForms, and TinyMCE JavaScript libraries
Education
The Art Institutes International Minneapolis
2007Bachelor of Science, Interactive Media Design