I have 20 years of development experience, and an intuitive creativity that is hard to come by in engineers. Combining my creativity with an uncanny knack for abstraction leads me to ingenious technical solutions. Mixing in my natural aversion to inefficiency brings us to truly elegant designs.
Go, Kafka, PostgreSQL, Google Cloud Platform
Implementing features in back-end microservices
Java microservices built with Spring Boot, Spring MVC, and PostgreSQL (deployed to AWS).
I was the “Squad Lead” for a full-stack team: me and 2 back-end developers, 2 front-end developers, a UX designer, and a product owner.
The project was to port an internal, employee-facing application to be part of ReliaQuest’s main customer application, “GreyMatter”.
We coordinated with ReliaQuest’s Data Engineering team to set up jobs to transfer the data from the active internal app into a PostgreSQL database. We also worked with the DevOps team to spin up a brand-new microservice (developed by the other back-end developers and me) to serve that data to the front end.
The front-end developers on the team built reusable components to display the information to the users of the GreyMatter web app. (Building one of these components for temporary use is my only REACT experience.)
We were coordinating beta testing when I left the company.
Python, Django, Flask, Microservices, JSON Web Tokens (JWT) I was the Tech Lead on a team with four fellow developers, an engineering manager who coded, and a test engineer.
We built a Django microservice from scratch and inherited two Flask microservices.
From scratch, we built a REST Microservice in Django to recommend helpful links (such as knowledge-base articles) to customers at various page locations in Bluehost’s web apps.
The service was so helpful, easy to use, and robust, that the marketing team decided to use it to show Black-Friday Offers to new and existing customers (in both the U.S. and an international market that represented a lot of growth potential for the company).
One of the Flask microservice that we inherited signed JSON Web Tokens (JWT) to authorize users of Bluehost’s new Website Builder for WordPress sites. The service was already running in beta and production; we continued implementing and enhancing it.
We also inherited another Flask microservice that routed calls from the new builder back to Bluehost’s monolithic Hosting Platform.
See MAGiE below
Java 8, JAX-RS, REST, Microservices, Spring Dependency Injection, Maven
The whole department was working on replacing a suite of monolithic .NET services with Java “miniservices”. Aiming to build microservices, the team ended up building services that were a little larger than intended.
So, while the larger team worked on implementing new features and breaking up the monolith, a smaller team (including me) also worked on breaking the miniservices into microservices. The department also spent the last year “lifting and shifting” all of these services (micro, mini, and monolithic) to the AWS cloud.
All this while implementing new features and helping the team raise their standards for software excellence. I have written up some case studies about some of this work - ask me for details!
Audited Ancestry’s services catalog and assisted teams to integrate their services with the proprietary Application Performance Monitoring (APM) solution.
Converted a .NET Microservice to Java 8
Non-Profit Healthcare Provider, regional hospital network.
One of two back-end developers on the web team implementing the company’s main user-facing web site.
See REST endpoint… in Mobile Projects below.
Sitecore Content Management System (CMS)
Added new features to an existing web application for a real-estate services company
ASP.NET Web Forms, Microsoft SQL Server, Stored Procedures
IT Consulting joint venture from Accenture and Microsoft
I worked with a national retail pharmacy to integrate what they thought was an abandoned scheduling tool into their new consumer web application. The developers who had built the appointment-scheduling application had all left the company, and the appointment-scheduling in the new app wasn’t ready.
I was able to assess the old appointment tool and modify it so it could be shown as an iframe in the new web app.
I spent many years working with many airline clients with Navitaire’s Professional Services group.
Most of the work was advising web developers at the various airlines how to implement custom features in Navitaire’s ASP.NET web application.
See: Mobile Web Application for booking flights and US Patent 8942991B2 below.
Home-automation startup, paid internship
I was the first to run Control4’s main dashboard application, “Media Controller”, on Control4 hardware. We had been running the controller on commodity PC’s when the first batch of prototype hardware arrived. I saw that stack of machines and said, “might as well give it a go!”
So I grabbed one of the machines off the pallet and installed the OS and applications.
I also built an application to help a subject-matter-expert test our database of remote-control codes.
Custom web applications using the Lean Development methodology
I immensely enjoyed an on-site visit to one of our customers: a furniture-manufacturing company. Visiting with the people at the company taught us so much about their business and their needs. We really gave them the best features within the project schedule.
I released a mobile game, built using the Unity game engine with C# scripting. While implementing it, I built a small library for the underlying bit manipulation and used NuGet to manage that dependency in the Unity project. Working on my Mac, I learned about dotnet core and the JetBrains Rider IDE to make life easier.
While managing beta tests and releases, I earned a new respect for continuous delivery and release management!
The game is called MAGiE, short for MAGnetic Interactive Explorer. The premise is that you have this device that reads binary data from a mag-stripe like on a credit card. The game then presents you with puzzles where you have to decode the bits to read a message, or encode bits to answer a puzzle.
It’s lots of fun, you should try it!
While staffing a project to convert the main website from SharePoint 2010 to the Sitecore content management system (CMS), a new feature was being developed in the company’s native mobile apps. I quickly exposed content from the CMS as JSON output so the mobile developers could deliver their feature on time.
I had built a prototype Mobile Web Application for making airline reservations using Navitaire’s New Skies reservation system. One of Navitaire’s major European customers needed a mobile booking flow yesterday. I proposed polishing the prototype web app and the customer agreed.
I led a revolving team of developers to polish the web app for production use at a major airline. As the project was ramping up, the CEO of the airline insisted that the mobile booking flow be accessible from Android and iOS apps in the app stores.
As we continued developing the mobile web app, I worked with developers at the airline who built native apps with web controls to wrap the mobile web app.
This patent illustrates my ability to reduce complexity. Here, the steps of finding a bus route, selecting a destination, booking a ticket, and collecting payment are reduced to a single swipe of a credit card.
My buddy filled the game-designer role, and I developed and released a puzzle game to the Windows Phone marketplace. I found many exciting technical challenges including programming animations and subtle interactions in the Windows Phone flavor of Silverlight.
Releasing the minimum viable product taught us a lot about project management and prioritization. While we had hoped for greater success for the game, the lessons learned were well worth the effort.