Dean Herringer
Software Engineer | Team Lead | Architect
About Me
I am a full-stack .NET engineer with a strong focus on the back-end.
In the almost 2 decades I have been in the industry, I have been involved in developing and leading development teams to create robust, user-focused products as well as bespoke/custom software solutions.
Employment History
MIFCOM GmbHCurrent
Overview
Architecting, designing, and developing an internal, miniservice-based ERP which will replace the current implementation.
Duties
- Ensuring maintainability, testability, and extensibility of the new platform.
- Ensuring that code quality standards are met through code reviews and pair programming.
- Ensuring that best practices are followed.
- Collaborating with other team leads to ensure that we are synchronized with our feature releases.
- Guiding the technical direction of the project.
Skills
- .NET Core (6.0 - 8.0)
- C#
- Git
- GitLab (CI/CD)
- GitHub
- GraphQL
- MS SQL Server
- AMQP Messaging
- Event-driven design
- TDD
- SOA
- Scrum
Overview
Leading the development of a custom, Xamarin Forms warehousing solution, which will be used internally. For the MVP, the application will be used to transfer goods between warehouse locations, picking items for orders, and stock checks.
Duties
- Refactoring the codebase to make it more maintainable, testable, and extensible.
- Ensuring that code quality standards are met through code reviews and pair programming.
- Acting (partially) as a Scrum Master and leading the Backlog Refinement and Sprint Planning sessions.
- Liaising with the product owner to ensure completeness of tickets and that we are on the correct path to completing the project.
- Collaborating with other team leads to ensure that we are synchronized with our feature releases.
- Mentoring team members.
Skills
- .NET Core (6.0)/Standard (2.1)
- C#
- Xamarin Forms
- Git
- GitLab (CI/CD)
- GraphQL
- MS SQL Server
- DevOps
- Scrum
Teqcycle Solutions GmbH
Overview
When I started my permanent position here, I continued work on the service which I developed while freelancing. Soon after I was involved in requirements gathering and development for a new client API service.
I was then asked to take over the lead position for the Online team.
Duties
- Designing, maintaining existing, and developing new services for the Online Take-Back (OTB) team as well as any auxiliary services we may use.
- Assisting Customer Support agents with any support queries they may have.
- Working with QA and product manager to improve and streamline our agile processes
- Requirements gathering and analyses through collaboration with QA, clients, project managers, product owners, and third-party developer teams.
- Providing technical direction and mentoring within my team. Ensuring standards are met and specs are followed through code reviews and pair programming.
- Developing standards and deciding on the technical direction for the company as a whole, working closely with the lead architect and the IT Director.
Skills
- ASP.NET Core (2.2 3.1)
- .NET Framework (4.61)
- Javascript
- Angular
- WCF
- ASP.NET MVC
- MS SQL Server
- MongoDB
- Microservices
- DevOps
- Docker (compose)
- RabbitMQ
- Observability (ELK)
- CQRS
- Clean Code
- Design Patterns
- Messaging Patterns
Independent Contractor
Overview
A greenfields project for creating a RESTful API to which one of our clients would be able to register devices and retrieve status updates about their devices that would be sold to Teqcycle Solutions.
Duties
- Desigining and developing the RESTful API service.
- Integration with the Stop-Heling (anti-theft) and Digitaal Opkopers Register (DOR), to fulfill legal requirements when buying devices from companies in the Netherlands.
- Integration with multiple internal services.
Skills
- ASP.NET Core 3.1
- MongoDB
- Swagger (SwashBuckle)
- GitLab
Khanyisa Real Systems
Overview
A public-facing and administration single-page web and desktop (WPF) application, as well as supporting applications, for the Spanish Viva Gym chain which allows potential members to sign up online, manage their memberships and see their visit stats.
The administration module allows staff to view reports and manage memberships. (Viva Gym: South Africa was forked from this project)
Duties
- Ensuring completeness of technical specifications.
- Increasing code quality and reducing code complexity by introducing clean code and design patterns.
- Ensuring that development tools and dependency packages are kept current.
- Simplifying the continuous deployment process and automating any steps which previously required manual intervention.
- Gathering requirements from clients and third-parties.
- Developing new features and ensuring that technical debt is addressed and that refactors to legacy code occur regularly.
Skills
- ASP.NET WebApi 2
- TeamCity
- MercurialHg
- Git
- MS SQL Server
- Aurelia
- KnockoutJS
- Javascript
- XAML (Desktop)
- .NET Framework 4.5
- Powershell
- Python
- Azure Blob Storage
- Azure WebApps
Overview
Extending an existing Delphi system with an API service for a new mobile application, used by consultants. Here they can capture and view their commission, order history and details, and customer information for the month.
Duties
- Gathering requirements from, collaborating with, and advising client and third-party mobile front-end developers.
- Configuring continuous integration and delivery.
- Developing an API service for the new mobile application to be used by consultants.
Skills
- ASP.NET Core 3.1 (RC)
- TeamCity
- Git
- MS SQL Server
- Powershell
- OpenApi (SwashBuckle)
- DDD
- TDD
Overview
Real360 is an appraisal and survey system used internally by Khanyisa Real Systems for many years. This rewrite was an R&D project to familiarise ourselves with the latest developments in DDD and introduce some of the concepts, principles, and patterns to our development processes.
Duties
- Researching the latest developments in DDD.
- Setting the standard for future development of the application.
- Deciding what are the most important concepts to extract into workshop material for our organisation and teams from other organisations (through workshops and training).
Skills
- ASP.NET Core 3.1 (RC)
- TeamCity
- Git
- MS SQL Server
- Powershell
- Aurelia
- DDD
- TDD
- Azure WebApps
Overview
An API service (anti-corruption) layer and new single-page web front-end for the gate control module of an existing reservation and booking system.
Duties
- Mentoring and providing technical guidance.
- Developing API micro-services and website.
- Configuring continuous integration and delivery.
- Integrating with third-party devices (Android bluetooth printers).
- Developing Xamarin mobile application (Hybrid) wrapper for the GateControl system.
Skills
- ASP.NET Core 3.1 (RC)
- TeamCity
- Git
- Xamarin
- Powershell
- Aurelia
- DDD
- TDD
Overview
Multiple project team - rewriting the existing Ashburton Investments website and creating the Virgin Red website using Sitefinity CMS back-end. We also supported the existing AMSOL applications, SMART and MAPS.
Duties
- Mentoring and providing technical guidance along with other senior developers.
- Developing new and enhancing existing features across all applications.
- Reviewing code and ensuring quality by suggesting alternative ways of approaching and solving problems.
Skills
- ASP.NET MVC
- TeamCity
- Git
- MS SQL Server
- Powershell
- Javascript
- Sitefinity CMS
Overview
A public-facing and administration single-page web and desktop (WPF) application, as well as supporting applications, for the Spanish Viva Gym chain which allows potential members to sign up online, manage their memberships and see their visit stats.
The administration module allows staff to view reports and manage memberships. (Viva Gym: South Africa was forked from this project)
Duties
- Mentoring and providing technical guidance to team members through pairing and team show and tells.
- Developing a Wix installer and continuous delivery strategy for in-club WPF applications to ease the burden of manual deployment to every gym machine.
- Architecting and developing a CMS, which leverage Azure CDN and Blob Storage, for staff to update content for the public website and members area application - this also largely reduced the impact on the team having to build and deploy these simple changes.
- Rewriting the existing public and members sites from KnockoutJS to Aurelia.
Skills
- ASP.NET WebApi 2
- TeamCity
- MercurialHg
- Git
- MS SQL Server
- KnockoutJS
- Javascript
- XAML (Desktop)
- .NET Framework 4.5
- Powershell
- Python
- Dapper
Overview
A 12-week intensive course for graduates to apply and bridge the gap between what was learned at college and what is expected in the working world.
Candidates work in pairs and are required to complete a team project, including front-end (Aurelia), back-end (.NET Core WebApi & MS SQL Server 2016), code reviews, continuous integration and delivery (pre-setup), etc.
Duties
- Providing technical guidance to interns, without providing solutions.
- Providing feedback to management on progress of interns.
- Reviewing design and code of interns.
Skills
- ASP.NET Core 2.2
- TeamCity
- Git
- MS SQL Server
- Aurelia
- Javascript
- Dapper
Overview
A public-facing and administration single-page web application and desktop (WPF) application, as well as supporting applications, for the South African Viva Gym chain which allows potential members to sign up online, manage their memberships and see their visit stats.
The administration module allows staff to view reports and manage memberships, among other features. The public site was later converted to Wordpress by a third-party but the signup and administration applications remained. Viva Gym was the first gym in South Africa to use online signups and biometric access control systems. (Forked from Viva Gym: Spain project)
Duties
- Supporting client and managing expectations.
- Integrating with third-party systems, including Gantner biometric access-control systems.
- Maintaining an in-club application, used by club staff.
- Developing a Wix installer and continuous delivery mechanism for in-club WPF applications to reduce the load on the team.
Skills
- ASP.NET WebApi 2
- TeamCity
- MercurialHg
- Git
- MS SQL Server
- KnockoutJS
- Javascript
- XAML (Desktop)
- .NET Framework 4.5
- Powershell
- Python
- Dapper
Overview
SMART: The Ship Management And Reporting Tool includes modules for monitoring and managing vessel performance, manning, and specifications. It includes planning crew movements between vessels, payroll, a compliant hours of rest module and a host of other features.
MAPS: The Marine Asset Procurement System provides a B-EEE compliant system from which AMSOL can purchase items from the most suitable vendor and tracks it’s progress and delivery to vessels and warehouses.
Duties
- Requirements gathering from multiple business stakeholders in different business domains.
- Providing technical support to clients on- and off-site.
- Designing, developing, and refining the communications module for transferring information between multiple vessels and the head office, including reducing transmission package sizes by up to 70% to reduce satellite and cellular data costs.
- Integrating crew payroll system with Pastel (Sage) Payroll.
- Successfully designing, developing and deploying new features as well as supporting clients and gathering requirements as a single team member for approximately 1.5 years - with minimal assistance from senior leadership.
Skills
- .NET Framework 4.1
- Entity Framework 6
- DevExpress
- RabbitMQ
- ClickOnce
Fundamental Software
Overview
A complete front, middle, and back office investment solution.
Duties
- Designed and developed bug fixes and enhancements on legacy and flagship products.
Skills
- .NET Framework 2.0
- DevExpress
- Crystal Reports
- MS SQL Server 2000
Overview
A complete front, middle, and back office investment solution.
Duties
- Provided technical support to clients of FPM legacy products.
- Designed and developed bug fixes and enhancements on legacy and flagship products.
Skills
- .NET Framework 1.1
- DevExpress
- Crystal Reports
- MS SQL Server 2000
Education
Programming in C# (70-483)Microsoft Specialist
Pearson VUE, Cape Town, South Africa
B.Sc. Information Technologyspecialising in Computer Science
University of Cape Town, South Africa
Skills
Proficient
- C#
- Docker
- ASP.NET Core (2.0 - 3.1)
- .NET (5.0 - 8.0)
- JavaScript
- YAML
- T-SQL
- Git
- Scrum
- TDD
- DDD
- Resharper
- Jira
- Containerization
- Distributed Applications
- Microservices
- Continuous Integration & Delivery (CI/CD)
- MAUI
Intermediate
- Firebase
- Kubernetes (k3s)
- Linux
- Powershell
- XAML
- Xamarin Forms
- NoSQL (MongoDB)
Basic
- Flutter
- React (NextJS)
- CSS3/SASS
- Azure
- Python
- Go
- TypeScript
- Checkly
- CodeCov
- .NET Framework (1.1 - 4.8)