In today's rapidly evolving technological landscape, we software vendors play a pivotal role in facilitating the growth and advancement of the industry. At Cillco we take this very seriously and seek to empower our software professionals through competency development. Continuous learning and professional growth is the key.
Stein Gran, a seasoned developer and architect, recently attended the prestigious NDC (Norwegian Developers Conference) as a representative of Cillco. In this blog post, he shares his insightful experience, shedding light on the conference's significance, the impact it had on his professional development, and the valuable lessons he learned during this enriching journey.
Fascinating talks everywhere
The software development world is fast paced, where new technologies emerge, and old ones quietly fade away. As a technology enthusiast, I was excited to attend the NDC Oslo conference recently, since the list of speakers was impressive, and the topics covered were very “me”, such as people sharing their real-world experiences from the field and promising initiatives like OpenTelemetry. Talks about new and fascinating technologies were everywhere, making it hard to pick which talks to attend as I wanted to learn about all of them!
The workshops
NDC Oslo started with the workshops, and I attended a very interesting one – Building an Event Sourced System in C# by Hannes Lowette. Event sourcing is a way of storing data, where we retain context. In the workshop, we built a full-fledged BeerSender™ system, which allowed us to keep track of all the beer we send to our friends and family!
There are events for getting a box to have the beer bottles in and adding a shipping label to it, and everything else that is needed to keep track of where the beer bottles are. It was a fun and fascinating use case, and it really showcased some of the power of event sourcing when done right. We built the event sourcing pattern from the ground up (no fancy nuget packages to help us here), and it worked out great – giving us a good look into how event sourcing really works under the hood. Hannes coded live and had decided to use snake_case for all variables, which made things a bit hard to read (I am no snake_case fan!), but it worked even though Hannes forgot himself sometimes and used regular Pascal casing (which some in the workshop duly pointed out!)
The keynote - generative AI
After two days of intense workshopping, it was time for the conference keynote and all the talks. The keynote speaker was Alasdair Allan from Raspberry Pi, and he spoke passionately about generative AI and the watershed moments we have had since late last year with generated artwork and downloadable language models that can even run on a Raspberry Pi. As with many new technologies, there are some challenges though, illustrated by this one:
https://twitter.com/stilgherrian/status/1623576572015050753
From the time when things are in a testing stage until they are in use may be a tad short, and it is easy to agree with Alasdair on this.
The best talk - OpenTelemetry
The best talk I attended was about OpenTelemetry, where Martin Thwaites gave a passionate and fascinating insight into the world of telemetry. And things have really developed there; traces, metrics and logs now have a chance to be standardized and vendor-neutral, which is a great leap forward. Tracing can now be added to ASP.NET Core web applications with just a few lines of code. Some things are still in beta though, like the automatic instrumentation for ASP.NET Core, but according to Martin, it is only some naming discussions that remain; the technical part is done. Naming discussions take time, so he estimated they would be done quarrelling in October (!).
It is safe to use these features now according to Martin, just be prepared to refactor a bit when the OpenTelemetry nuget packages for automatic instrumentation are officially released.
Another good one - High Optionality Programming
Another talk worth mentioning is Aaron Stannard’s talk about High Optionality Programming. Aaron is one of the founders of Akka.NET and took us through a whirlwind of stories and real-world examples of what to do and what not to do if you want a maintainable and performant codebase that you do not have to re-implement every so often.
The keyword is optionality, meaning having options available so that you have choices. Having no options is a painful place to be, leading to late nights and massive changes to your codebase since the options you wanted did not exist. Aaron took us through his experiences leading to his current views, and I am never again betting on a single feature offered by only one 3rd party solution. I want options to choose from.
Where to go next?
NDC Oslo was packed with people – a total of 2600 developers participated. It was also packed on the main floor of the conference with companies like JetBrains, AWS, Sentry and many, many more.
As a senior engineer, tech lead, architect and potato in Cillco, I found NDC highly valuable, and I recommend it to anyone who has the option to go. NDC has spread to places like Sydney, Australia and London, UK in the last years, so there are many places to go to NDC.
My next trip (if my boss approves!) will be NDC London in January-February 2024.