Career Summary
I am a passionate engineer and exceptional problem solver, doing what I love for a living.
I have an intimate understanding of the SDLC, with strong leadership skills that enable me to be effective. I have led and scaled large teams for mission-critical systems, establishing architecture, processes, and best practices to ensure quality and reliability.
With a strong emphasis on simplicity, low ceremony, and an understanding of team capabilities, I ensure that my solutions are built-to-last and move fast based on changing requirements; while also ensuring that even junior engineers can contribute and be effective.
From an individual contributor perspective, my expertise includes a deep understanding of the full stack, encompassing infrastructure provisioning, security/networking, application development, testing, deployment and observability. I'm always learning and keeping up-to-date with the latest technologies and best practices.
I manage a few open-source projects in different languages, including JavaScript, C# and Go.
Skills & Tools
General
- Architecture/Design
- Networking
- Security
- Mentoring/Speaking
- Agile/Scrum
Languages
- C#
- HTML/CSS
- TypeScript/JavaScript/Node
- Go
- C++/C
- Unix Shell Scripts
- SQL
- Python
Client-side
- React
- Redux/MobX
- MobX
- webpack/vite
- Jest
- Sass/LESS
- Bootstrap
- jQuery
Mobile
- iOS/Android (Xamarin)
- xCode
- UIKit
- Objective-C
Operating systems
- Unix/Linux
- OSX
- Windows
Cloud
- Terraform
- Microsoft Azure
- Google Cloud
- Kubernetes
- Containers (docker/lxc)
- Azure Pipelines/GitHub Actions/Jenkins
Databases
- Postgres
- MongoDB
- SQL Server
- SQLite
- Cassandra
- Lucene/ElasticSearch
Work Experience
Lead Engineer
- Led several teams/initiatives.
- Established an ecosystem of libraries, frameworks and pipeline templates to enable rapid development/deployment of various workloads (microservices, Azure resources, terraform, etc).
- Rollout of kubernetes clusters, established the process for teams to deploy/mantain/monitor their workloads.
- Design/implementation/rollout of a micro-frontend client-side architecture, enabling teams to develop modules locally and deploy them into a single integrated client-side application.
- Design/implementation/rollout of Temporal for orchestrating workflows, combining new/legacy systems, creating new use-cases.
- Design/implementation/rollout of CQRS pattern, addressed upper performance limits of our current architecture, resulting in dramatic performance improvements, and significant savings through database SKU optimization.
- Regular presentations to the company on new technologies, best practices, and architecture.
Technologies used:
- Architecture
- .NET Core
- Microservices
- Dapper/OrmLite
- Kubernetes
- React/TypeScript
- Micro-frontends
- Temporal
- Azure DevOps
- Azure
- Terraform
- ElasticSearch
- Postgres
- Redis
Technical Lead
Managing a team of people on a wide-array of projects across different languages/platforms.
Some key points:
- Overseen design/implementation of next-generation perscriptive architecture/platform for medical imaging software.
- Protobuf/gRPC microservice architecture with a focus on performance and stability, emphasis on golang.
- Cooridination with firmware team to ensure driver/software development feature parity.
- ASP.NET (and .NET Core) React application/MVC APIs, multi-tenancy, on-site deployments with automated updates.
- Established usage of IDesign's "The Method", an approach for system and project design.
Technologies used:
- Architecture
- .NET
- ASP.NET MVC
- Microservices
- Protobuf/gRPC
- Docker
- SQLite/MongoDB/Postgres
- C/C++
- Golang
- JavaScript/TypeScript
- Cloud (Microsoft Azure)
- CI/CD (Pipelines)
- Unit Testing
Senior Software Engineer
Thought leader for a small team of developers in the embedded and web space.
Some key points:
- Manage IT infrastructure for software (build agents, on-prem GitLab, etc) and project management.
- Embedded .NET Core runtime in native executable, integration interop with V8.
- iOS/Android application development using the Xamarin platform.
- ASP.NET WebAPIs for consumption in mobile platform.
- DirectShow and gstreamer for encoding/decoding with various video formats, including H264/MP4.
- WPF and Qt/QtQuick implementations of digital recording software on embedded devices.
- C++/C for internal libraries used to connect to record video and connect to hospital networks (DICOM/HL7).
- Custom Embedded Linux distros for embedded devices (Yocto).
- Brickless update design.
- Read-only boot with
tmpfs
overlay for stability and resilience.
- Compilation and cross-compilation (vc++, gcc, MAKE, CMAKE, meson, autotools, etc).
Technologies used:
- .NET
- ASP.NET MVC
- WPF
- Qt
- Docker
- SQLite/Postgres
- C/C++
- Golang
- JavaScript/TypeScript
- DICOM/HL7
- Linux (Embedded, Sys Admin)
- Cloud (Google Cloud Platform)
- CI/CD (Pipelines)
- Unit/integration testing
Software Engineer
- Managed/maintained production instances of IIS/SQL Server for many high-volume sites (coleman.com, rawlings.com).
- Managed a prescriptive framework written in C# .NET 4.0 used to accelerate and model application development according to industry best practices.
- Managed an internal automated NuGet feed (using TFS Build) for delivering updates.
- Database design and development. Managing indexes/performance. Troubleshooting with SQL Profiler.
- Created a process to managing SQL Server Database Projects (SSDT) so that framework libraries can be distributed with matching .dacpac files for client schema updating/generating. The process also included automated deployments of database schema and projects from TFS builds for Continuous Integration and validation of the build.
- Wrote and managed C# TFS Build Activity that creates and deploys multiple NuGet packages.
- Implemented an enterprise WCF Service Host Factory that uses IoC (Dependency Injection) to resolve contracts for runtime composability.
- Created WCF Services using REST/JSON for use on client side widgets.
- Created an MVC3/jQuery eCommerce UI foundation for eCommerce websites. Delivered to projects in a .zip file delivered by a VirtualPathProvider for easy updating and ensuring stability. Added support for overriding at every level (css/js/view) for client specific adjustments using a MVC ViewEngine and a client-side dependency management framework (Cassette).
- Implemented/created a jQuery plugin in ASP.NET MVC3 to enable extensible keyboard navigation with 100% client-side interaction from the point of entry.
- Designed enterprise N-tier framework to be reused by multiple enterprise clients (Coleman, Nuk, Rawlings).
- Designed/developed software for medical equipment for capturing and recording pictures and videos using MSMQ/NServiceBus/SignalR to send messages between the website and hardware.
Technologies used:
- .NET
- ASP.NET MVC
- SQL Server
- TFS
- Microsoft Test Manager
- Microsoft Commerce Server
- Windows Server 2008/2012
- Microsoft BizTalk
Freelance Software Engineer
- Re-wrote nopCommerce from WebForms to ASP.NET MVC. Contributed it back to nopCommerce for the V3+ release.
- Design and develop custom solutions from cms to e-commerce using the appropriate technologies.
- Created a Lucene.NET implementation for faceted searching in eCommerce solutions (nopCommerce).
- Wrote and sold plugins and themes for nopCommerce.
- Wrote a CMS integration for nopCommerce to bring advanced CMS technologies to an eCommerce driven website.
Software Developer
- Managing catalog and orders (25,000 products) using MSMQ to handle product/inventory updates.
- Integration into 3rd party websites for price comparison and analytics.
- Managing web server (Windows Server 2008 R2) and database for high-uptime and high-load.
Projects
-
Qml.Net github.com/qmlnet/qmlnet
An integration of .NET and QML for cross platform and high-performance desktop applications. I built a thin C layer with C++ shared pointers to integrate the two garbage collectors (.NET and QML-JavaScript). AppVeyor and Travis CI are configured to ensure a suite of tests pass for each commit on every major platform (Linux/OSX/Windows).
Technologies used:
- C/C++
- .NET Core
- QT
- Continuous Integration
-
Darch github.com/godarch/darch
Think "Dockerfiles", but for immutable, stateless, graphical (or not) environments, booted bare-metal. I use this tool as my daily driver for Linux. Each distribution contains a custom initramfs that overlays a temporary file system over your read-only Darch images. This allows each boot to be a clean boot. Any change made to the runtime (
apt-get install
, etc) are discarded on each boot. Any change you want persisted has to be scripted and baked into your recipes (which is a good thing!).Technologies used:
- Go
- Docker
- containerd
- Continuous Integration
Education
-
MCPD/MCTS .NET Web DeveloperMCP ID: 8482776
-
Associates of Liberal Arts and ScienceState College of Florida.GPA 3.6 2008-2010