Since 1997 I have been writing code for a living as a software developer / engineer. Over the years I have been involved in just about every phase and role of software projects.
I am a full-stack dev but have mostly done back-end work and with a lot of experience in architecture, automated tests (unit, integration and acceptance), refactoring, build and deployment.
Since 2004 I have worked on projects that have used an agile approach. I tried agile project management for a while, but my heart is in development.
In 2024 I have worked on a Java project based on Spring Boot.
From 2011-2023 I have worked solely on C# (.NET) projects, the five years before that I switched between C# (.NET) and Java projects and even further back it was all Java.
I have the skills and ability to take small or medium sized projects all the way from inception to production and have the track record to prove it.
I am more interested in generally applicable knowledge and skills than in specific technologies. I like working with
- Messaging and event-driven architecture
- Continuous integration and delivery (CI/CD)
- Domain driven design (DDD)
- Automated tests
- Build and deployment
I believe it is much more important to choose techonologies that suit both the challenge at hand and the team that has to implement the solution rather then the ones I happen to like.
But of course I have preferences and my current preferences for greenfield back-end projects are not very esoteric, but have all worked for me in the past
- .NET 8+ (+ ASP.NET Core 8+)
- Serilog
- xUnit.net, NSubstiture, FluentAssertions
- Git
- CI/CD