I’m an experienced polyglot software developer who’s worked across the entire stack in a variety of languages. I’ve been in the industry for over two decades now, with a track record of consistently delivering projects with substantial business value to my employers and to our clients.
As an experienced senior developer, I take a pragmatic, learning-oriented approach to software development. I believe strongly that:
- Outstanding developers, including seniors and team leads, are interested in good engineering, not solely their engineering.
- Outstanding developers always check their egos at the door.
- No matter what level you are, there is always more to learn and you are always best served by bringing a growth mindset to your work.
I’m happiest when I’m working on interesting, challenging technical problems with a major business impact, and which push me to explore new things - whether that’s a new business domain, a new framework, or a new programming language. Even better is when I get to do those things while maintaining a fast release cadence; seeing your code in production quickly is extremely satisfying, and code that’s finished but not deployed to production is waste. I am very much an advocate of the view that code should be deployed as frequently as possible in as small of a changeset as possible; ideally within minutes of merging it into your main branch.
Outside the office, I make an effort to get involved with the technical community in Cleveland, where I frequently attend the Cleveland .NET User Group’s meetings, as well as a few other local groups. I’m also frequently found in the Cleveland Tech Slack community as well as the Deaf Professionals community. On a personal level, I make an effort to spend time with my family (as do we all :)) and maintain an occasional interest in photography.
Some things I’ve built in my career:
- Corporate intranet site designed to make information more widely available within the company.
- Material Safety Data Sheet intranet application designed to make information on various industrial chemicals quickly accessible to chemists, engineers, and technicians.
- B2B customer self-service portal for checking inventory, submitting orders, and checking on order shipment status, using XMLHttprequest and XSLT to build client side applications before ‘AJAX’ was a thing.
- Multiple online ordering systems for multiple telecom clients allowing customers to assemble a bundle of cable services.
- Multiple sweepstakes and marketing campaign applications, including many with a lot of interactivity and user engagement. Several were also client-side, backed by an API.
- In-house scripts for creating and uploading delta deployments of ASP.NET applications rather than the entire application, due to a client requirement to only upload changed files.
- Command-line applications for scheduled parsing of XML files from clients to import into our system via API.
- Re-implementation of existing .NET JSON API using Java and vert.x to allow clients to consume the new API without needing to re-architect their code.
- Built out data processing pipelines using Java and Spring Cloud Data Flow.
- Automated system for exporting reports from Google’s DoubleClick Campaign Manager on a daily schedule.
- CI/CD pipelines in Azure DevOps for a variety of application types, including Azure Durable Functions applications.
Other things I’ve done:
- Advocating better engineering practices, such as database migrations for faster and more reliable deployments.
- Pushed migration to tools that better fit how we worked with clients, such as moving to git from TFS to better handle multiple simultaneous streams of in-flight work.
- Collaborated closely with our project managers and account executives to deliver value to our clients as rapidly as possible.
- Assisted our project managers and account executives in drafting proposals for our clients.
- Worked with clients directly to better understand their problems, or when standing in for project managers while that position was vacant or they were unavailable.
- Acted as lead developer on a project to revitalize a complex legacy application where the original team was no longer available and stabilize it to the point that the organization is able to continue to maintain it while deciding how to move forward with it.
Languages and Platforms I’ve worked with:
- C# - ASP.NET Web Forms, ASP.NET MVC, ASP.NET Web API, command-line applications, CQRS-pattern applications
- Java - Vert.x for web APIs, reactive programming with RxJava, data processing pipelines using Spring Cloud Data Flow
- SQL - Primarily Microsoft SQL Server and PostgreSQL
- Ruby - primarily for command-line scripting
- Docker/Kubernetes - proficient at dockerizing existing applications to allow them to run in containers, have worked with the process of deploying and managing them on a Kubernetes cluster
- Azure Functions/Durable Functions
Conferences I’ve Attended (Say hi if you were there!)
- CodeMash - 2009-11
- Steel City Ruby - 2013-14
- Erie Day of Code - 2015
- Kalamazoo X - 2014-17
- Microsoft Build (online) - 2020