2022 In Review -A Developer Retrospective
2022 Dev Retro - My retro and why we should all do one.

Search for a command to run...
2022 Dev Retro - My retro and why we should all do one.

No comments yet. Be the first to comment.
Introduction Semantic Kernel is an open-source framework by Microsoft that integrates machine learning and natural language processing to build AI applications. It offers tools for tasks like language understanding, text generation, and semantic sear...

Introduction In the earlier articles in my PDF Splitter series, we have relied on the inbuild .NET libraries to handle working with PDF files in MAUI, but these only support opening and displaying of PDF files. Now that we are looking to save our new...

Introduction In the previous article, we created a PDF model and service to allow us to work with and track PDF pages. The next step is to build the UI to allow us to interact with the service. To do this we will create a single 'view' and a 'view mo...

Introduction For the fourth article in my PDF Splitter series, we will start working with PDF files in .NET MAUI. Helpfully, MAUI contains a lot of useful PDF tools for reading PDF files out of the box, so we do not need to use any additional librari...

Introduction In this article, I'm going to introduce basic navigation into my .NET MAUI PDF Splitter application. If you're following my PDF Splitter Application series, you will have a simple application based on the out-the-box .NET template with a...

As a developer, I am very familiar with the idea of a 'retro'. Retros are an important step in the agile methodology, allowing a team to look back over a sprint, a project or some other unit of work to determine what this did well, what could be done better, and any lessons learned to take forwards.
However, we often don't take time to look back at our own individual journeys and reflect on our personal achievements. As developers, we're often great at concerning ourselves with those things we are still yet to understand, but not so good at giving ourselves credit for what we do.
So each year I like to look back and reflect on three things I have learned in the past 12 months.
This is the first time I've ever composed a more conversational blog post, so this is another achievement in itself, but if I'd had authored a similar post at the end of 2021 I'd have listed Kubernetes, Blazor and NoSQL databases as my three key learnings.
As primarily a .Net C# software engineer, many people presume that day-to-day life is all about writing code, as indeed I did when I started my first software engineer role 15 years ago, but as I progress along my career path, I'm finding less and less of the day job is coding, and more of my time is spent in application design and architecture.
This is why I love my career, no 2 days are the same, every day has new challenges to overcome, new skills to learn and new ideas to swap with my colleagues.
So as I look back at 2022, what are three key new areas that I have been working in that I have put into practice?
You may think this is something you hit quite early on in the career path of a developer, and you'd be correct! But this year I've been digging deeper into configuration, JWT, cookies and even re-writing some core OIDC code to suit specific use cases where the out-of-the-box .NET Core OIDC libraries didn't provide the flexibility required to do what was required. Walking through other users' code and re-writing parts to suit your use cases is a great way to broaden your knowledge and understanding of how things are designed to work.
Extract, transform and load. Three words seem to have taken over my life towards the middle of 2022. How to get data from one or more back-end systems to a front-end system in a way that can be delivered to an end user quickly and is structured to suit the use cases. It's a pretty simple pattern really, and somewhat follows a similar design as the CQRS architectural design, but on an architectural rather than application level.
The basic premise is that you can 'stream' data from back-end data sources, often SQL but this could be any data source, and then filter and transform the elements of the data that are required into a more usable structure into, most commonly a NoSQL database such as MongoDB, that can then be delivered to front end systems in a faster, more structured format than getting the data directly from source may provide. Updates are then passed back to the source data stores and transformed and streamed back through to the front-end data sources, and the cycle continues.

Towards the end of 2022, my focus shifted towards API Gateways using Ocelot. API gateways are not new. Most cloud developers will be using some form of API gateway, they are standard tools in AWS for example. However, for none cloud-based systems they are a tool that is often overlooked but can allow a development team to provide a much greater degree of security, flexibility and visibility of requests and data moving into and out of the platform.
As I look ahead to 2023, I figured I'd make a note of what 3 areas I believe will form a key part of my journey ahead. Indeed, it'll be interesting to see how much of this comes to fruition, and what changes, as, as any software engineer knows, priorities and focus can shift almost overnight from one project or process to another.
As of now, the three areas I am anticipating I will be focussing on are:
Application security - Focusing more on API security rather than front-end security as in 2022.
More cloud (CDK, AWS Lambda/Azure Functions)
Observability - Distributed tracing and open telemetry.
I would also like to complete my to-do series and spend more time working with IoT.