Blogg
Här finns tekniska artiklar, presentationer och nyheter om arkitektur och systemutveckling. Håll dig uppdaterad, följ oss på LinkedIn
Här finns tekniska artiklar, presentationer och nyheter om arkitektur och systemutveckling. Håll dig uppdaterad, följ oss på LinkedIn
There is a place in Norway named Hell. It is a small community of fewer than 2,000 people, and everyone knows each other. And everyone depends on each other.
But what happens when your dependencies in your application freeze over? And what is the cost of not having a Dependency Management Strategy?
Java 25 is here!
How will the latest release transforms the way we write, teach, and learn Java? What will streamlined source files and powerful new features bring to the table? And what will all the old developers that thinks Java is good as it is think?
Ready to see how Java 25 impacts your code?
In my previous blog post Good habits when designing REST APIs, I sort of ended with a little cliffhanger that there are more things that could be done to make life easier for your fellow developers. Today, we are diving into The Discovery of REST APIs and the magical use of HAL and HATEOAS.
I have previously shared some thoughts about when to use REST and when not to in and the REST is history. In that post, I stated that a good time to use REST is when “you need public APIs that are easy to understand and use”.
Working with public APIs is fun and rewarding—if you design your APIs the right way.
If you don’t, your users will be angry and complain.
In this post, I have gathered some of the more general best practices for building a good REST API. I coach (force?) developers I work with to follow them and use this as a checklist when I do code reviews on REST API code.
In his PhD dissertation “Architectural Styles and the Design of Network-based Software Architectures”, Roy Fielding defined the REST architecture style.
“This has made a lot of people very angry and been widely regarded as a bad move”. - The Hitchhiker’s Guide to the Galaxy, Douglas Adams
Do I agree with this statement? Is the REST history? Or is it just misunderstood and misused?
Tooling for Observability has exploded in the last decade offering a rich portfolio of products and features to choose from. Ironically this has created some other challenges; vendor specific agents that misbehave, vendor lock in, licensing costs, inflexible centralised observability platforms, and platforms that operate outside the scope of their intended use. The result is often a complex and brittle observability infrastructure that requires significant effort to use and maintain.
It is good to remember that the value added by Observability is the ability to grasp the needs of our customers and to quickly react to incidents. Spending time wrestling with Observability infrastructure detracts from this.
In this blog I will look at OpenTelemetry and how adopting this can ease your Observability journey.
One of the things I love, appreciate, respect, adore … about Callista is our focus on learning and our ability to go on conferences! It’s essential in helping us grow and stay current with tech trends and mingle with other like-minded tech geniuses …
Having got back from AppConf.js in Kraków at the end of May I felt compelled to do something fun for the React Gothenburg meetup.
The team behind our favorite Java conference most likely played around with ChatGPT and came up with the idea of having an AI-focused conference. As with all conferences, it focuses around the coffee breaks, so these are my coffee break reflections and highlights.
Det här är tredje upplagan av Callista Tech Radar Light – vår årliga trendspaning kring teknikanvändning bland kunder och branschkollegor. Med hjälp av svar från Cadec 2025 kartlägger vi vilka teknologier som används i vardagen, vilka som är på väg upp – och vilka som lockar mest inför framtiden.
När man bygger integrationer med Kafka och ska sätta upp sina topics ställs man alltid inför samma val: Hur många partitioner ska jag välja? Det är relativt enkelt att utöka med fler, svårare att minska antalet och det är vettigt att ha samma som liknande befintliga topics. Resultatet brukar bli en grov uppskattning, och kanske tar man i lite extra för säkerhets skull. 12 kan vara en bra utgångspunkt, då kan lasten fördelas jämnt över 1, 2, 3, 4, 6, eller 12 konsumenter.
För fjärde året i rad presenterar vi Callistas Tech Radar - en undersökning som görs bland våra medarbetare och visar hur teknikanvändningen ser ut i våra uppdrag. Svaren inhämtades mot slutet av 2024.
Tidigare Tech Radar:s hittar du här:
This post explores an automated approach to creating high-quality photo collages from large image collections, a journey that began out of frustration with existing tools. The solutions I found, whether manual or automated, often created repetitive patterns, ugly image overlaps, and offered only a fixed set of layouts. This led me to explore a new approach, leveraging a Genetic Algorithm (GA), to efficiently generate large collage layouts. I’ll present an overview of the algorithm and a custom implementation written in Kotlin.
Tillsammans med några kollegor deltog vi nyligen på KotlinConf 2025 i Köpenhamn – den årliga konferensen för Kotlinutvecklare. Programmet bestod precis som förra året av två intensiva konferensdagar med parallella spår och en workshopdag. Vi deltog i en heldagsworkshop med fokus på funktionell refaktorisering i Kotlin.
Kotlinconf innehåller presentationer om alla aspekter av Kotlin-världen. Många presentationer handlade i år om Compose Multiplatform och andra Android-teman, vilket ibland gav ett begränsat val av presentationer för oss med backend som främsta inriktning.
Naturligtvis var AI ett genomgående tema. Jetbrains presenterade sitt nya ramverk Koog som används för att bygga AI-agenter. Även Rod Johnson, grundaren av Spring Framework, presenterade sitt nya agent-ramverk Embabel. Båda verktygen är nysläppta och det blir intressant att följa hur de utvecklas.
In today’s digital landscape, APIs are the backbone of modern software systems. But not all APIs are created equal. Dive into this blog post and discover why RESTful APIs with structured data and DTOs are vastly superior to database-centric, CSV-driven approaches. We’ll explore the flexibility, scalability, and security benefits that make REST the clear winner for your next integration project. Don’t let clunky APIs hold you back! Read more to learn how to build APIs that developers (and your business) will love. And, there is a twist at the end.
After starting my NixOS journey and embracing Flakes in my previous two posts, it’s now time to set my eyes on a new frontier: MacOS and Nix-Darwin.
Den stora mötesplaten inom svensk e-hälsa, den kombinerade konferensen och mässan Vitalis, har precis avslutats. För första gången på många år (kanske nånsin?) var antalet föreläsningsspår färre än föregående år. De upp till 19 parallella spår som fanns i år är fortfarande på tok för många, men likväl en förbättring från förra årets 25. Förändring i rätt riktning!
För en månad sen träffades vi alla Callistianer för att ägna en heldag åt en av de saker vi gillar mest: kompetensutveckling. Tystnaden lägrade sig när 40-talet kollegor snabbt hittade sin plats och gav sig hän åt ”kompetensutveckling inom precis vad man vill”. Eller?
In this post, I’ll talk about Nix, provide an overview of Nix flakes, explain their benefits, describe how I migrated my existing setup, and share the code structure I settled on.
Last year, we introduced the CADEC App — a custom-built iOS and Android mobile app that let attendees submit and upvote questions during each talk. The most popular questions were addressed live in the Q&A session.
For 2024, we relied on manual moderation, but sifting through questions manually just didn’t feel right for 2025. Enter AI-powered moderation: designed to filter out off-topic or inappropriate questions in real time.
This retrospective explores the technical implementation, challenges, and lessons learned.
An update on the journey of optimizing a text-similarity HTTP request handler with the new swissmap map
implementation introduced in Go 1.24.