AJ Michels
Oakdale, MN 55128
Professional Summary
I have been working as a software developer for almost two decades. During my career I have worked extensively with many languages, most notably JavaScript and PHP, but I consider myself a polyglot. More than anything I am a problem solver. For me there is a right tool for every job. If I don't have the tools I need, I learn or build them. Programming is a creative profession and no matter what the language or platform, I strive to produce fast, functional, and secure software with excellent user experiences. I am always looking for opportunities to work with companies that are interested in creating great software.
Technical Skills
Software/Tools
Vim, Git, Sublime Text, Eclipse, Chrome, Safari, Firefox, IE, Photoshop, macOS, Linux, Windows, Ansible, Docker, Vagrant, 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 — PresentLead Engineer — Edina, MN
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 started working with the American Academy of Neurology as an intern doing “web updates” and other tasks. Six months later I applied for an open position and was hired. My duties there grew and changed quite a bit. My primary duties were always to work on developing, maintaining, and improving their many web applications across multiple domains. The majority of the work was done using ColdFusion, OOP principals and best practices, often utilizing development frameworks.
- 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