I thoroughly enjoy working with computers and programming them; while I only have 14 years of professional experience, I have been writing software at least since I the late 90’s. I’ll go wherever I find something interesting, even if it means taking a step down professionally to get it; you’ll see this regularly in my resume, though you’ll also see a step back up shortly thereafter.

I have experience in all aspects of software development and a masters degree in software engineering, and am capable of learning and applying new technologies in a very short period of time; a true “full-stack” engineer that can design and develop not only the backend and frontend of an application, but also administer the environment in which the application is deployed in.


Meta Platforms (Facebook)

Dates: March 2022 - Present

Senior Software Engineer (IC-5)

Dates: March 2022 - Present
  • Collaborate with teams across the company to implement features in a manner beneficial to everyone.
  • Proactively identify areas of improvement, write RFCs, and get feedback from a larger audience.
  • Take charge of major initiatives, plan and track their progress, and see them through to completion.
  • Worked on internal framework (Bloks) that allows server-side definition of client application logic to enable developers to write client-agnostic interfaces that are updateable in real-time.
  • Added internal framework used for client-side experimentation to Bloks enabling developers to use the same framework for experimentation within Bloks as they would for native application development.
  • Handled Bloks-related infrastructure issues including build/migration scripts, schema changes/migrations, etc.
  • Technologies used regularly: Hack/PHP, React (+HTML/CSS), Python, Markdown, along with several Meta internal technologies.

NCR Corporation

Dates: July 2018 - March 2022

Software Architect - SRE

Dates: July 2019 - March 2022
  • Review, research, evaluate, and implement new and existing technologies, frameworks, principals, and standards.
  • Design, review, and implement foundation of new projects to ensure maintainability, reliability, and scalability.
  • Proactively identify problems, gaps, and opportunities for improvement and automation.
  • Document applications and infrastructure to support future maintenance and expansion activities.
  • Collaborate with internal team members, management, and vendors.
  • Provide multi-tiered solutions to complex problems under tight schedules to mitigate issues that occur in production.
  • Provide technical guidance during backlog grooming and planning.
  • Implement Infrastructure-as-Code using tools such as Terraform to ensure environments are setup consistently and reliably.
  • Perform code reviews and give team members feedback for fixing issues and increasing code quality.
  • Work regularly with .NET (5.0+), Python, Bash, PostgreSQL, Git, Kubernetes, Docker, Helm, Redis, and ElasticSearch.
  • Work with Linux distributions, both bare-metal and in Docker containers, including Debian, Ubuntu, and RHEL/CentOS.
  • Regularly use Google Cloud technologies such as Google Kubernetes Engine (GKE), Google Compute Engine (GCE), Cloud SQL, Cloud DNS, Cloud Functions, VPCs, and IAM.
  • Occasionally use Amazon Web Services (AWS) technologies such as Elastic Compute Cloud (EC2), Relational Database Service (RDS), Elastic Beanstalk, Elastic Load Balancers (ELB), VPCs, and IAM.

Lead Software Engineer

Dates: July 2018 - July 2019
  • Perform code reviews to ensure code quality, best practices, security, and performance of new code.
  • Provide technical guidance to team members on how to implement new features or fix bugs.
  • Make technical notes on more complex or risky work items to address security, performance, or other architectural concerns.
  • Function as a subject matter expert on all parts of the application and infrastructure.
  • Mentor other software engineers to help their growth and to teach new ideas and concepts.
  • Participate in normal Agile activities such as daily stand-ups, grooming sessions, commitments, and end-of-sprint demos.
  • Track down difficult to find or reproduce problems via local debugging and/or logical analysis of application source code.
  • Utilize ASP.NET Core MVC to create REST APIs. Frontend (Angular) is completely separate from backend (.NET Core) and
  • APIs are used for all communication between the two.
  • Utilize Atlassian products such as BitBucket (Stash), Jira, and Confluence to manage code, tickets, and information within our team and the company as a whole.
  • Work daily with .NET Core (2.0-2.2), Angular (5-7), TypeScript, CSS (SASS), HTML, PostgreSQL, xUnit, and Git. Also
  • work with Kubernetes, Docker, Helm, Bash, and Python on a regular basis. Occasionally work with Redis and ElasticSearch.

Tin Roof Software / NCR

Dates: December 2017 - June 2018

Senior Software Engineer

Dates: December 2017 - June 2018
  • Develop the Marketplace and Developer Experience for the Omni-channel Decision Support Platform.
  • Participate in daily standups, grooming sessions, and quarterly planning.
  • Perform code reviews to ensure standards and best practices are followed.
  • Researched and implemented migration of applications to Docker containers.


Dates: February 2015 - December 2017

Application Architect

Dates: February 2017 - December 2017
  • Create and implement technical design process to be used with major new features.
    • Allows all developers, QA, and stakeholders to be on the same page about what is to be developed.
    • Helped ensure that security, performance, and reusability concerns are addressed.
    • Also serves as documentation of the new feature to reference in the future.
  • Led production support team consisting of two developers and one QA.
    • Ensure that the support needs of clients are met in a timely fashion.
    • Ensure that high-priority bugs are addressed in a timely manner as well as continuously working through the bug backlog.
  • Oversee six additional development teams, two in the office and four offshore.
  • Discuss requirements with stakeholders to ensure that the requirements are thoroughly understood as well as to clarify requirements.
  • Design and document new features based on requirements, as well as give estimates based on the requirements and design.
  • Diagnose and fix (or recommend potential fixes) for performance issues occurring in production.
  • Introduced Angular 4 into application and led ongoing migration from Angular 1.x to Angular 4.
  • Migrated TFS version control to Git, including migration of history and training the development team.

Technical Lead

Dates: February 2016 - February 2017
  • Led user interface redesign project. First phase included upgrading the shell of the application (including menus, page titles, breadcrumbs, user information, etc.) in Angular in a manner that allowed toggling between the old and new shell; this allowed the new shell to be developed and tested while still showing the old interface to normal users. Second phase included re-writing individual pages in Angular.
  • Discuss requirements with stakeholders to ensure that the requirements are thoroughly understood as well as to clarify requirements.
  • Design and document new features based on requirements, as well as give estimates based on the requirements and design.
  • Led development team consisting of 5 developers and 2 QA.
  • Ensured on-time delivery of scheduled work items.

Senior Software Engineer

Dates: February 2015 - February 2016
  • Rewrite backend of compensation appraisal calculations to allow a greater number of appraisals to be processed daily.
  • Optimize various parts of the user interface to increase site responsiveness.
  • Discuss requirements with stakeholders to ensure that the requirements are thoroughly understood as well as to clarify requirements.
  • Design and document new features based on requirements, as well as give estimates based on the requirements and design.
  • Introduced Angular 1.x and WebAPI into existing application to create a fast and responsive user interface.
  • Developed frameworks to aid in integration between WebAPI and Angular as well as to define and manage Angular dependencies.

Overgroup Consulting (now

Dates: May 2009 - February 2015

Implementation Team Lead

Dates: January 2014 - February 2015
  • Led development team consisting of two developers and two client success personnel.
  • Ensure development is completed on schedule while also allowing last-minute or emergency work items to be addressed quickly.
  • Create solutions based on client requirements that meet the needs of the client in addition to being reusable with the rest of our client base.
  • Document solutions in a manner that both developers and the client can understand, including separate technical documentation if necessary.
  • Estimate amount of time required for implementation of contracted features and provide an estimated release date to the client.
  • Aided others in expanding their technical knowledge in general and with technologies and concepts used in our environment that they may not have known about.

Senior Software Engineer

Dates: August 2011 - February 2015
  • Solve problems in a high transaction volume environment that processes massive amounts of data daily, including but not limited to processing of call detail records, payment processing, commission calculations, tiered billing discounts, etc.
  • Integrate with third-party systems such as carriers (Verizon, AT&T, etc.) and payment gateways (Authorize.Net, Stripe, etc.).
  • Provide and consume APIs via SOAP or via REST using JSON.
  • Debug code locally and remotely using Visual Studio’s built-in debugger.
  • Understanding and configuring SPF, DKIM, and DMARC records in our DNS to improve email delivery.
  • Subject matter expert for our internal applications as well as provisioning with third-party carriers and payment gateways.
  • Working directly with other departments to solve problems in a collaborative and efficient manner.
  • Write unit tests for new and existing code using NUnit and xUnit.
  • Accurately estimating time required for development, testing, and QA of development items.
  • Utilization of agile development methods to allow new features and other development items to be released early and often.
  • Administration of third-party systems hosted in-house, such as Switchvox, Jira, Confluence, and Stash.
  • Administration of Unix services such as MySQL, SSH, ISC DHCP Server, and TFTPD.
  • Administration of Windows Server 2012 r2 as well as various Linux operating systems such as Ubuntu, Debian, and CentOS.

Software Engineer

Dates: August 2009 - August 2011

Software Development Intern

Dates: May 2009 - August 2009

United States Air Force

Dates: October 2003 - October 2007

Aerospace Ground Equipment Technician

Dates: October 2003 - October 2007


M.S. Computer Science / Software Engineering

Graduated: December 2015
Major GPA: 3.97

B.S. Computer Science / Computer Information Systems

Graduated: May 2010
Major GPA: 3.97
Cumulative GPA: 3.66
  • President’s Honor Roll earned every semester attended.
  • 1st place winner of the 2009 Association of Information Technology Professionals National Collegiate Conference Java Programming Competition.


I don't like to focus on the specific languages/technologies I have worked with in the past as a good developer should be able to pick up anything in a short period of time, especially when dealing with existing codebases. Regardless, this is here for those interested.

If I don't have a particular skill on this list that you're looking for, and is something I genuinely don't have experience in vs. neglecting to list it, please note that I've been "throw into the deep end" many times in my career and have always come out victorious. Therefore, please don't let a lack of a specific skill turn you away, especially if I already have most of what you're looking for.

Programming Languages

Language Experience Notes
C# 11 Years  
CSS (+SCSS, LESS, etc.) 15 Years  
EDI 6 Years  
HTML 15 Years  
JavaScript 14 Years  
JSON 14 Years  
Markdown 14 Years  
NodeJS 6 Years including NPM
PHP 1 Year  
PowerShell 10 Years  
Python 6 Years including PIP
Ruby 3 Years including Rails, RubyGems
Shell Scripting (BASH, ZSH, etc.) 6 Years  
SQL 14 Years  
TypeScript 8 Years  
VB.NET 6 Years  
XML 6 Years  
XSLT 6 Years  
YAML 8 Years  


Framework Experience Notes
Angular 6 Years  
.NET/.NET Core 11 Years aka dotnet; including NuGet, ASP.NET, ASP.NET MVC
jQuery 14 Years  
React 1 Year  


Tool/Application Experience Notes
Apache HTTP Server 10 Years  
Docker 7 Years including Podman, OCI Containers
Git 14 Years including Github, GitLab, Stash/BitBucket, and other Git hosting services.
HAProxy 10 Years  
Helm 4 Years  
IIS 10 Years  
Kubernetes 4 Years self-hosted (OpenShift) and GCP GKE
Jenkins 10 Years  
JetBrains IDEs 8 Years  
Memcached 3 Years  
Microsoft SQL Server 9 Years  
MongoDB 3 Years  
MySQL 6 Years also MariaDB
Nginx 10 Years  
OpenVPN 10 Years  
PostgreSQL 6 Years  
Redis 3 Years  
SSIS 3 Years  
SVN 3 Years  
Terraform 4 Years  
TFS 3 Years  
Visual Studio 10 Years  
Visual Studio Code 6 Years  
Webpack 6 Years  

Job Aspects

Aspect Experience Notes
Agile 8 Years  
Customer/Stakeholder Interaction 14 Years Interacting directly with customers and stakeholders; explaining technical details in terms they understand and extracting information about what they actually want rather than what they say they want.
Debugging 14 Years  
Drafting Design/Technical Documents 10 Years  
Interviewing Candidates 10 Years  
Team Leadership (Technical) 10 Years Have been lead of teams and teams of teams; varying from 2 persons to 20+.


Experience Notes
Cloud Services (GCP, AWS, etc.) 6 Years  
Continuous Integration and Delivery 14 Years  
Dependency Injection 8 Years  
End-to-End Testing 14 Years  
Linux System Administration 10 Years RedHat, Ubuntu, Debian, Alpine, NixOS, Arch
RESTful Web Services/APIs 8 Years +Swagger/OpenAPI
SOAP Web Services/APIs 6 Years +WSDL
Unit Testing 14 Years nUnit, xUnit
Windows System Administration 10 Years