top of page
Software engineering is an engineering discipline that is concerned with all aspects of software production (including testing !) from the early stages of system specification through to maintaining the system after it has gone into use.

Skill strength: 10 from 10

Software Engineering
with .NET & Azure

 
Software engineering is an engineering discipline that is concerned with all aspects of software production (including testing !) from the early stages of system specification through to maintaining the system after it has gone into use.

 

​

 

Problem


In recent years, it has become easier to code something. The IDEs (development environments) have been trimmed to efficiency, the Internet offers an inexhaustible and, above all, quickly accessible source of knowledge and, last but not least, artificial intelligence with GitHub Copilot is lending a helping hand to developers.
 

But just as computer science is not the same as programming, writing (production) code is not the same as software development. If you forget this and only focus on "knocking out features", you will end up paying for it.

 

As a user of software, not a developer, I have seen startups that developed a brilliant product but then gradually "died" like a tree infested with the leaf beetle. Only the bugs that have taken hold of these startups have been digital in nature. Caused by the neglect of tests ("Let's write in Sprint 10, that's already decided..."), by a lack of quality control in general, and by stakeholders who only had short-term (apparent!) success in mind.

​

The accelerating pace of business (time-to-market) and technical change then adds numerous changes and enhancements to the software, leading to a tension between innovation on the one hand and system stability on the other.

​

After a relatively quick program development, the just mentioned Sprint 10 comes, with the test-write phase. Unfortunately, this then becomes Sprint 10 - 1000, including feature freeze and contractual penalty payments.

​

Or the scaling is forgotten.

​

Instead of blind optimism (it will work, even without tests), gnawing self-doubt enters the stage (no one will use our tool for a while...). Humanly understandable, but when the famous wave of users rolls in, the landscape of virtual machines hosted by Horst in the basement collapses like a house of cards.

 

​

​

Solution offer
​

I have been programming since I was 10 years old. And I have made all the above mistakes myself. Therefore I also understand why there are quality standards like the "ACM/IEEE Code of Ethics" (see: https://ethics.acm.org/code-of-ethics/software-engineering-code/ ) and the famous Clean-Code-Principles there. I am committed to both.

​

My attitude towards testing and TDD can be found in this blog post: "Testdriven Development (TDD) with GitHub Copilot".

UW

As for .NET: I've been programming with C# since version 1 in 2002, before that .NET was still known under the code name "NGWS" (Next Generation Windows Services); I'm including my experience as a "hobby coder" before my IT career here.

​

Since the first version of .NET Core 1.0 came out in 2016, I've been working with it almost continuously.

​

Microsoft has improved a lot in .NET 5 and .NET 6 in my sense. And in my sense, I mean in the sense of functional, declarative, WHAT programming and not HOW programming (records, pattern matching, init-only properties, lambda improvement, record structs, discriminated unions, etc.).

​

Azure has always been my companion. Examples? At M&M: Design implementation of the event and messaging systems (Event Hub, Event Grid, Service Bus, Azure Functions) for the (then) Azure-based WAGO Cloud.  In addition, I implemented microservices with Azure Service Fabric. At Zeiss Digital Innovations, I was an Azure Serverless Developer and then continued with Terraform. At EnBW, Azure Bicep was added.

​

Since I started my Master's in Artificial Intelligence at IU in October 2022, ML.NET is now also in my focus.

Wer sind wir?
bottom of page