Safe direct-style Scala: Ox 0.1.0 released

After a couple of months spent in an experimental phase and several iterations around the design of structured concurrency scopes and error handling, we are pleased to announce the 0.1.0 release of the Ox project. What is Ox? The project's motto says it best: Safe direct-style co … | Continue reading


@softwaremill.com | 3 days ago

Discover the highlights: Scalar Conference 2024

Held annually in Warsaw, Poland, Scalar has established itself as THE place to be for Scala enthusiasts, software engineers, and technology leaders. This year's Scalar Conference was particularly special as we celebrated two major milestones: the 20th anniversary of the Scala pro … | Continue reading


@softwaremill.com | 4 days ago

A Busy Developer’s Guide to Quantum Computing - Part 3

In the previous Parts of the series I gave a quick overview of a quantum computer and talked a little bit about qubits and other building blocks behind that picture. Check all the articles from the series: Part 1 A gentle overview Part 2 Basic building blocks In this Part I’m goi … | Continue reading


@softwaremill.com | 5 days ago

Jacek Kunicki - My Scala Story

We celebrate Scala's 20th anniversary in 2024 and invited experts to share their Scala Stories. Jacek Kunicki is a Senior Software Engineer, conference speaker, and SoftwareMill Academy lead. You can follow him on X: @rucek How did you first get introduced to Scala, and what did … | Continue reading


@softwaremill.com | 8 days ago

Remote Event Storming challenges from a facilitator's perspective

Have you ever thought about conducting an Event Storming workshop remotely? Does it make sense and is it feasible? As SoftwareMill, we are a 100% remote company, and the clients we work for are scattered around the world across different time zones. Organizing an on-site Event St … | Continue reading


@softwaremill.com | 9 days ago

A Busy Developer’s Guide to Quantum Computing - Part 2

Introduction In the previous Part of the series, I gave a quick overview of a quantum computer. In this Part, I’m going to talk a little bit about qubits and other building blocks behind that picture. I keep it lightweight, showing only the parts necessary to understand the logic … | Continue reading


@softwaremill.com | 11 days ago

Managing complexity and uncertainty in Software Development: know when to press pause

Whenever there is a new feature or entirely new system to be introduced, we usually expect the task to be solved by writing new or changing existing software to support it. It is indeed true in most cases - that’s what we usually do: we build software that meets business needs. S … | Continue reading


@softwaremill.com | 15 days ago

Stream Gatherers in practice Part 2

This second article continues our exploration of Stream Gatherers, introduced in Java 22 with JEP 461. After detailing the Gatherer interface and custom operations in the first part, we now shift focus to built-in gatherers, examining their capabilities. Furthermore, we'll delve … | Continue reading


@softwaremill.com | 16 days ago

A Busy Developer’s Guide to Quantum Computing - Part 1

Motivation A quantum computer provides a special form of parallelism. By utilizing it, the quantum computer should be able to compute things faster than its classical counterpart. However, to make use of it, problems need to be approached differently, using specifically designed … | Continue reading


@softwaremill.com | 19 days ago

Full stack JavaScript technologies & trends to watch for in 2024

Full stack JavaScript development keeps storming the software & technology world and seems to take no break. In this article, I want to lay out my subjective assessment of trending technologies to keep an eye on in the coming months. These are mostly based on the community focus … | Continue reading


@softwaremill.com | 25 days ago

Big Picture Event Storming: Simple Workshops, Big Benefits for Your Business

As part of our initiative to share knowledge about Domain Driven Design and related tools - I would like to tell you about one of the interesting workshops we use in our clients' projects. It is called the Big Picture Event Storming workshop, which leads to the discovery of relev … | Continue reading


@softwaremill.com | 1 month ago

KubeCon EU 2024  -  summary of conference worth every penny

KubeCon goes mainstream, and it is the most amazing conference I’ve been to so far. At the same time, ‘amazing’ is not a good word for describing how awesome it was. People, talks, organization, everything was on point. And knowledge — so much of it that I have a list of TODO stu … | Continue reading


@softwaremill.com | 1 month ago

What is infrastructure as code (IaC) and why I should care?

Introduction I have a conviction that this term has been used for so long that it’s lost its meaning along the way. It’s not the buzzword it used to be not that long ago. I’ll do my best to describe this topic despite it going out of fashion because it’s as relevant as ever. Let' … | Continue reading


@softwaremill.com | 1 month ago

Benchmarking Tapir: Part 3 (Loom)

Introduction Recently, I wrote two blog posts about Tapir performance benchmarks: [Part 1]() and https://softwaremill.com/benchmarking-tapir-part-1/, Part 2. These tests allowed us to implement many significant optimizations (see GitHub milestone here). As a bonus, I’d like to us … | Continue reading


@softwaremill.com | 1 month ago

Krzysztof Ciesielski - My Scala Story

Scala is celebrating its 20th anniversary in 2024, so we invited Scala experts to share their Scala Stories. One of the experts is Krzysztof Ciesielski, Senior Software Engineer at SoftwareMill. You can follow him on X: @kpciesielski How did you first get introduced to Scala, and … | Continue reading


@softwaremill.com | 1 month ago

Event Storming from a non-technical domain expert perspective

Some time ago we started a Domain Driven Design initiative at SoftwareMill. Our goal here is to spread the knowledge and our experience with DDD together with multiple complementary tools and techniques we use regularly on clients’ projects. After some quest for a problem and dom … | Continue reading


@softwaremill.com | 1 month ago

Stream Gatherers in practice Part 1

Java 22 introduces an interesting preview feature with JEP 461: Stream Gatherers, a pivotal upgrade to the Stream API. This feature centers around a new gather method, enhancing the API's customization, flexibility, and efficiency. It's designed to: Elevate the Stream API's adapt … | Continue reading


@softwaremill.com | 1 month ago

Monica McGuigan - My Scala Story

Scala experts share their Scala Stories to celebrate the 20th anniversary of Scala in 2024. Meet Monica McGuigan, and follow her on LinkedIn. How did you first get introduced to Scala, and what did you think about it? I started properly learning Scala in 2022 when I joined my cur … | Continue reading


@softwaremill.com | 1 month ago

Handling errors in direct-style Scala

Error handling is the cornerstone of any library that orchestrates the execution of user-provided code. That's also the case in ox, a library for safe direct-style concurrency and resiliency for Scala on the JVM. Many of ox's features are centered around error handling: structure … | Continue reading


@softwaremill.com | 1 month ago

Big Picture Event Storming - finding the gaps

In my latest article of the series about our Domain-Driven Design show-case project, which you can read more about here, I covered our kickoff session of Big Picture Event Storming. Quick recap: we started with a chaotic exploration, which was a brain dump of relevant domain even … | Continue reading


@softwaremill.com | 1 month ago

Zainab Ali - My Scala Story

Another wonderful guest in our My Scala Story series is Zainab Ali. She is a functional programmer, educator, open source contributor and organizer of the London Scala User Group. She is a maintainer of fs2 and the original author of its reactive streams component. For the past f … | Continue reading


@softwaremill.com | 1 month ago

JDK 22 in a nutshell

With the regular cadence of Java releases, developers eagerly anticipate each new version for the enhancements and features it brings. As the next iteration, Java 22, prepares for release on 19th March, it's time to dive into the improvements and updates that await. From performa … | Continue reading


@softwaremill.com | 1 month ago

Thriving Remotely: My Journey with SoftwareMill

I had never been fully convinced about remote work. It just didn't feel right. It was hard to imagine how to become truly involved and immersed in the company's day-to-day operations. I wanted my contributions to be relevant and meaningful, not just to check tasks off a list. As … | Continue reading


@softwaremill.com | 1 month ago

From Code To Pixels. About Web Rendering

In 2024, 8 years will pass since I started to work in IT. I began my journey as a junior UI designer in 2016 and then, after some time, I switched to a front end developer role. I was always interested in moving things on the screen, especially in the browser. Yet, only fairly re … | Continue reading


@softwaremill.com | 1 month ago

Benchmarking Tapir: Part 2

Introduction In the previous part, I analyzed how a combination of Tapir+low-level server handles high load of HTTP requests in comparison with using unwrapped, “vanilla” servers directly. It allowed us to identify a few bottlenecks, as well as confirm Tapir’s low overhead in man … | Continue reading


@softwaremill.com | 1 month ago

Do not copy successful architectures

One common mistake in software architecture is blindly copying successful architectures without considering a project's unique needs and context. For example, many companies try to replicate the architecture of successful companies like Netflix without considering whether it is a … | Continue reading


@softwaremill.com | 1 month ago

Gabriel Volpe - My Scala Story

We invited Scala experts to share their Scala Stories to celebrate Scala's 20th anniversary. Gabriel Volpe is a Software Engineer specialized in a functional programming. You can visit his website and follow him on X: @volpegabriel87. How did you first get introduced to Scala, an … | Continue reading


@softwaremill.com | 1 month ago

Big Picture Event Storming - mastering chaos

Chaos is considered the primordial state or the first condition of the universe from which everything else originated. The sentence “At first Chaos came to be” from Hesiod's Theogony perfectly describes this concept. Despite its mythological origins, it accurately describes pheno … | Continue reading


@softwaremill.com | 2 months ago

SSE vs WebSockets: Comparing Real-Time Communication Protocols

In today's text, I want to take a closer look at Server Sent Events (or SSE for short) and WebSockets. Both are good and battle-tested approaches to data exchange. I will start with a short characteristic of both tools – what they are and what they offer. Then, I will compare the … | Continue reading


@softwaremill.com | 2 months ago

Jox 0.1: virtual-thread friendly channels for Java

The goal of the jox project is to facilitate communication between virtual threads: competitive in terms of performance to the state-of-the-art (on the JVM, and generally) with a low memory footprint so that the number of channels might scale together with the number of virtual t … | Continue reading


@softwaremill.com | 2 months ago

What to do with your End Of Life Akka?

In September 2022 Lightbend surprised the Scala community by announcing the Akka license change for all future releases from Apache 2.0 to "source available" Business Source License (BSL) v1.1. In practice that means that businesses who would like to use newer versions and get ov … | Continue reading


@softwaremill.com | 2 months ago

Domain-Driven Design: a SoftwareMill way

Modern software development demands not only a solid understanding of technology but also a comprehensive grasp of the business driving the software. This includes knowledge of the operational domain and organizational structure. Fortunately, the software development industry has … | Continue reading


@softwaremill.com | 2 months ago

Tomas Mikula - My Scala Story

Join us in celebrating Scala's 20th anniversary in 2024! We've gathered a group of Scala experts to share their amazing Scala Stories. Tomas Mikula is a Lead Software Engineer, you can follow him on X, GitHub and LinkedIn. How did you first get introduced to Scala, and what did y … | Continue reading


@softwaremill.com | 2 months ago

Benchmarking Tapir: Part 1

Tapir is a well-adopted Scala library that makes building web APIs easier. It uses Scala's strong type system, letting you create endpoints, generate documentation, handle errors, work with cross-cutting concerns (interceptors, security), and work with JSON, all with the help of … | Continue reading


@softwaremill.com | 2 months ago

Paweł Marks - My Scala Story

Another day, another My Scala Story episode! Read the #scalaversary-inspired relation about his Scala journey by Paweł Marks. Paweł is the Team Leader of the Scala Compiler Team at VirtusLab and the Release Officer of Scala 3. How did you first get introduced to Scala, and what d … | Continue reading


@softwaremill.com | 2 months ago

19 Best Tech Conference in Europe in 2024

Searching for self-development opportunities can be challenging and time-consuming, as it involves sifting through various resources to find the right fit for your personal and professional growth. To ease this process, we've compiled a curated list of tech conferences that offer … | Continue reading


@softwaremill.com | 2 months ago

Solve the Scalaversary coding challenge and secure your Scalar ticket!

Here’s a challenge that tests your coding skills while celebrating 20 years of Scala. Dive into the Scala Fiesta Puzzle and stand a chance to win a Scalar Conference ticket! 🎉 Scalaversary Coding Challenge: navigate the Scala birthday party! 🎉 This isn't just any … | Continue reading


@softwaremill.com | 2 months ago

Alexandru Nedelcu - My Scala Story

We're not slowing down on #scalaversary! This time, read the Scala Story of a long-time Scalar Speaker, software developer, author of Monix and Typelevel contributor, JVM, and functional programming enthusiast - Alexandru Nedelcu! How did you first get introduced to Scala, and wh … | Continue reading


@softwaremill.com | 2 months ago

Containerize your tooling

Introduction In the world of DevOps, managing a plethora of tools can often feel overwhelming. To simplify this, let's explore how Docker, combined with the lightweight containers, can streamline your workflow. Think of this as creating a multifunctional toolset tailored to your … | Continue reading


@softwaremill.com | 2 months ago

Michał Matłoka - My Scala Story

Today in our special #scalaversary series, Michał Matłoka, an experienced Software Developer, architect, and advisor working at SoftwareMill, shares his Scala story! How did you first get introduced to Scala, and what did you think about it? My Scala journey started around 10 yea … | Continue reading


@softwaremill.com | 2 months ago

Self-documenting code is a myth

Or rather: it's a great goal, sometimes achievable, but it doesn't remove the need to comment your code. All the non-obvious places should still carry comments—and there's more of these than you think! After all, our main concern as code authors is the convenience of the readers: … | Continue reading


@softwaremill.com | 2 months ago

Maciej Gorywoda - My Scala Story

2024 marks Scala’s 20th anniversary! That’s why we invited Scala experts to share their Scala Stories. Maciej Gorywoda is a Product Marketing Manager at JetBrains, IntelliJ Scala Plugin team. You can follow him on X and YouTube. How did you first get introduced to Scala, and what … | Continue reading


@softwaremill.com | 2 months ago

Threads, ThreadPools and Executors - Multi Thread Processing In Java

Concurrency is one of the most complex problems we (developers) can face in our daily work. Additionally, it is also one of the most common problems that we may face while solving our day-to-day issues. The combination of both these factors is what truly makes concurrency and mul … | Continue reading


@softwaremill.com | 2 months ago

Adam Warski - My Scala Story

Scala turns 20 years old! Congratulations to all of the language contributors and enthusiasts - what a journey that is... We invited Scala experts to share their Scala Stories. Adam Warski is a Scala & Distributed Systems Expert, CTO and co-founder of SoftwareMill, OSS Developer. … | Continue reading


@softwaremill.com | 2 months ago

Nicolas Rinaudo - My Scala Story

The My Scala Story series continues! Today, Nicolas Rinaudo, Scala Developer, author, and sole maintainer of a few useful OSS libraries, such as kantan.csv, is sharing his thoughts with us! How did you first get introduced to Scala, and what did you think about it? That was a whi … | Continue reading


@softwaremill.com | 2 months ago

Vladyslav Pekker - My Scala Story

Let's celebrate Scala's 20th anniversary! Congratulations to all of the language contributors and enthusiasts - what a journey that is! We invited Scala experts to share their Scala Stories. Vladyslav Pekker is a CTO and content creator, you you may recognize him from the DevInsi … | Continue reading


@softwaremill.com | 3 months ago

Build cities not buildings

In the dynamic world of software development, creating solutions that are not only innovative but also efficient and maintainable is paramount. This guide combines industry insights, emphasizing practices in promoting excellence in software development. It goes beyond mere coding … | Continue reading


@softwaremill.com | 3 months ago

Jakub Kozłowski - My Scala Story

2024 marks Scala’s 20th anniversary! That’s why we invited Scala experts to share their Scala Stories. Jakub Kozłowski is a Lead Engineer. You can follow Jakub on Mastodon and X. How did you first get introduced to Scala, and what did you think about it? I first learned about Sca … | Continue reading


@softwaremill.com | 3 months ago