Resume
Summary
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.
Experience
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.
TalentQuest
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 rev.io)
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
Education
M.S. Computer Science / Software Engineering
Graduated: December 2015
Major GPA: 3.97
Skills
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 |
|
Frameworks
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 |
|
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+. |
Other
|
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 |
|