Building Async and Cloud Native organizations - Issue #14

The benefits and drawbacks of AI, use AI to generate commit messages. And how did GitHub build their code search engine?

Welcome to my weekly newsletter! I bring you the latest news, updates, and resources from coding and architecture every week. I'm so glad you've decided to join me, and I can't wait to share my insights and expertise with you.

I hope this newsletter is a valuable resource, and I welcome your feedback and suggestions. If there's something you'd like to see more of, or if you have any questions or comments, please don't hesitate to contact me.

Thank you for joining me, and happy reading!

REST and APIs

APIs are created and consumed more and more, and it is not strange that to have a good API yourself, you also need to apply proper API product management.

A good API product manager needs to be able to properly identify product opportunities, support the actual development process, collect and act on feedback through multiple iterations, and know how to monitor and measure success for the product. In addition, they must enable improvements for APIs already released into the market and in use by paying customers.

The Payment Services Directive 2 (PSD2) provided the way for some cool integrations in the financial world. Third parties could securely access your banking data and offer functionality that your bank did not provide.

PSD3 will be the next version, but what does it contain? Read more at NordicAPIs:

Coding technicalities

Writing a sensible commit message is not an easy task. What if you could analyse what kind of changes you made and summarize the result? Or even easier; get a git diff and send it to openAI to make a nice commit message.

With aicommits you get this functionality by installing the package, adding your API key for OpenAI and run a command to let it write the commit message using AI.

You might get scared when you hear the term CQRS, thinking it introduces all kind of complexity. Although there is certainly a complexity, you get a nice headstart with the new language features in C# and NET 7. Have a look at the video to see how to implement these kind of patterns:

GitHub related

Getting assistance while coding is great; describe what you want to do and see GitHub Copilot making suggestions for implementing it. I m using it from within Jetbrains Rider and Visual Studio Code, and it helps me with all kinds of simple tasks, from finishing sentences, to adding code snippets.

You could already buy a license for 10 dollar a month, and students, teachers, and maintainers of popular open source projects got it for free. I think I got it for my work on the Serilog Elasticsearch sink, although I cannot find why my license is free.

Since last week, companies can subscribe to a GitHub Copilot license as well. The price is 19 dollar per user per month, and it gets you VPN support, policy management, an AI-based security vulnerability filtering feature, and you can assign the seats to individual users from the admin interface.

Running a business means you must comply with the rules and laws, so if government needs information, if a company or person complains about copyright infringement, if wrongful images are uploaded etc, GitHub has to act on it.

Doing this in a transparent manner, that makes it very unique to GitHub. In the below report you can see all the action that took place, the requests that GitHub got and the activities they do to keep the system a place for developers to safe, open and inclusive collaborate on code.

Did you already try out the new GitHub search? It is not an easy task to search through such an enormous amount of code efficiently. Existing search engines like Elasticsearch are not a good fit anymore, so GitHub came up with their own implementation. If you want to know the magic and science behind running a search engine at scale, then dive into this blog post:

Computing in general

I have run my fair share of retrospectives, and I always think it is one of the most essential parts of scrum. It gives the team a moment to reflect and improve; at the same time, it is also a challenging meeting to facilitate.

You do not always you get the energy and output you would like to gain, so it is interesting to read the below article, which describes and offers solutions for three of these unfortunate situations: skipping generating insights, getting lost in things you can't change, and being dominated by a loudmouth.

Platform Engineering; yet another term that popped up some while ago. What does it even mean, and what do we want with it? It is a response to the complexity of systems like Kubernetes, that would warrant a dedicated team called a Platform team.

But yet another team; is that not going back to the dev vs ops? Becoming a bottle neck at some point? If you consider their purpose, it might even better to focus on developer enablement instead. Read the full article by Sam Newman to get a better understanding:

There are times I m really impressed by AI, but when I see what the Bing search engine is doing, then I think we still have a long way to go:

I have a hate and love relation with Pull Requests. They can be an interesting way to discuss new functionality and implementations, but are often used as a code review gate. This led to another developer doing similar work the code creator did to find out if the solution was okay. And even then, what makes it okay?

What kind of checks are you actually doing? So it is good to have some checklist to make this less subjective. Use the below one and discuss with your team what kind of elements make sense for your process:

Helpers and utilities

You might have used the Lorem Ipsum generator to get some text, but what if you just need a picture to fill some content. Lorem Picsum offers different kind of pictures, in various sizes.

Computer laws

Every program attempts to expand until it can read mail. Those programs which cannot so expand are replaced by ones which can.

Zawinski's Law

A typical feature creep example; adding features that has nothing to do with the main purpose of the program.

I hope you've enjoyed this week's issue of my newsletter. If you found it helpful, I invite you to share it with your friends and colleagues. And if you're not already a subscriber, be sure to sign up to receive future issues.

Next week, I'll be back with more articles, tutorials, and resources to help you stay up-to-date on the latest developments in coding and architecture. In the meantime, keep learning and growing, and happy coding!

Best regards, Michiel

Join the conversation

or to participate.