Dev containers in Machine Learning

Docker has become extremely popular nowadays. It is lightweight, portable, self-contained, and thus great for microservices architecture. Docker containers make it easier to build software and isolate the environment, and they can be run in many different environments with differ … | Continue reading


@softwaremill.com | 2 hours ago

Rust Static vs. Dynamic Dispatch

Today, I will talk a bit about all the nitty-gritty details of static and dynamic function calling in Rust. I know that many of you associate that topic directly with polymorphism in Rust, but static vs. dynamic dispatch is not only about polymorphism, traits, and trait objects; … | Continue reading


@softwaremill.com | 5 days ago

What is Functional Programming?

An "orthodox" definition of functional programming (FP) states that it is programming with pure / mathematical / side-effect-free functions. But that's neither practical nor reflects how the term is used daily. What is functional programming, then? And even if we accept the above … | Continue reading


@softwaremill.com | 11 days ago

Why Should Your Company Consider Switching from Java to Kotlin

Kotlin is steadily gaining popularity. It’s the preferred language for Android development and is now making its way into web applications as well. While gradually replacing Java, Kotlin builds on Java’s established ecosystem. Created as a modern alternative, Kotlin addresses man … | Continue reading


@softwaremill.com | 12 days ago

In search of ideal Rust microservice template

Despite Rust’s rise in popularity and its recent wins in the Stack Overflow developer survey, it’s still often seen primarily as a systems language. Personally, I admire Rust’s style and conciseness, and I believe it has great potential beyond traditional systems programming, par … | Continue reading


@softwaremill.com | 18 days ago

AI for manufacturing

In our series, we previously covered agriculture but also mentioned possible applications of chatbots in LegalTech, and MedTech. We now move to another sector that can benefit greatly from AI: the manufacturing industry. On the other hand, manufacturing companies already profit f … | Continue reading


@softwaremill.com | 26 days ago

Why attend Rustikon 2025: a Rust conference for developers

Did you know that next year marks Rust's 10th anniversary? What better way to celebrate than at a conference, among fellow Rust developers and enthusiasts! We want to grow the Rust community and strengthen Poland's technical talent pool, just like we're doing for Scala. That’s wh … | Continue reading


@softwaremill.com | 1 month ago

Things you should know about GraphQl in 2024

Over the years, GraphQL has become quite a big deal. Many developers were excited about this technology, and I was one of them. Check out our 2021 series: GraphQL Overview  Part 1:  What is GraphQL? GraphQL Overview Part 2:  Libraries GraphQL Overview Part 3: The Infrastructure a … | Continue reading


@softwaremill.com | 1 month ago

What I learned about Kafka through Confluent Certified Developer for Apache Kafka (CCDAK) certification

CCDAK certification focuses on developing Kafka applications and is directed to developers with basic hands-on experience with Apache Kafka. In this blog, I want to share the insights I gained while preparing for the Confluent Certified Developer certification in Apache Kafka. So … | Continue reading


@softwaremill.com | 1 month ago

Five things that caught my eye during ECCV 2024

Last week, I enjoyed attending ECCV 2024, which included exciting workshops on the applied side of computer vision, oral presentations from various computer vision specialists about their frontier research, and inspirational keynotes from industry titans. In this short blog post, … | Continue reading


@softwaremill.com | 1 month ago

Direct-style concurrent streaming

Ox, a Scala library for safe direct-style concurrency and resiliency on the JVM, gained a new implementation of concurrent streaming. It allows data processing pipelines to be defined using a functional API, imperative API, or both at the same time. Streaming functionality isn't … | Continue reading


@softwaremill.com | 1 month ago

LLMs for LegalTech

Unleashing the Potential of LLM Agents for Chatbot with the EU AI Act LLM-based applications are sprouting in sectors like Customer Service, the Medical domain, and Legal Tech. We have seen large advancements in Customer Service (as 1 point of contact on various platforms) and th … | Continue reading


@softwaremill.com | 1 month ago

ML Engineer comparison of Pytorch, TensorFlow, JAX, and Flax

Which Deep Learning framework is best? When you enter the ML world, you might be overwhelmed with a choice of libraries, with divisions similar to political parties or religion (almost to the point of front-end frameworks). Among the many available, a few are the most popular: Py … | Continue reading


@softwaremill.com | 2 months ago

Autowire: Zero-Cost Dependency Injection

autowire is our newest addition to MacWire, a zero-cost, compile-time, type-safe dependency injection library. It provides an additional option for creating object graphs, next to the tried-and-tested wire macro (which has been around since 2013!). Both wire and autowire incur no … | Continue reading


@softwaremill.com | 2 months ago

Primitive Types in Patterns, instanceof, and switch in Java 23

Each half-year, we get a new, fresh, and yummy version of Java. Now we get Java 23, and this article will discuss JEP-455, which introduces primitive types in patterns, instanceof, and switch. Remember, this is a preview feature. The title of this JEP seems to explain everything, … | Continue reading


@softwaremill.com | 2 months ago

Concordance index

Why the C-index? In biomedical machine learning, we often face the challenge of performing the survival analysis. Survival analysis aims to predict the time of event occurrence, such as disease recurrence. Although it is widely used in the medical field, survival analysis can als … | Continue reading


@softwaremill.com | 2 months ago

Expanding cybersecurity capabilities: we’ve partnered with Niebezpiecznik

We recently announced our partnership with Snyk, a highly popular application security testing tool trusted by 30 million developers and valued at around $7 million USD. Snyk is a go-to tool for identifying security issues early in the software development process, particularly d … | Continue reading


@softwaremill.com | 2 months ago

Things I wish I knew when I started with Event Sourcing - part 3, storage

In the previous installment of this series, we discussed data consistency considerations for event-sourced systems. We only touched on the topic of read-side data consistency, as that's where we most commonly spot and consider consistency implications. However, there's another cr … | Continue reading


@softwaremill.com | 2 months ago

Observability part 4 - Pulumi hands-on

Terraform is king... right? In the DevOps world, everybody has heard about Terraform at some point. It's the most popular IaC tool according to the latest Stack Overflow survey. It utilizes HCL - HashiCorp Configuration Language. The syntax of HCL is inspired by JSON (you can eve … | Continue reading


@softwaremill.com | 2 months ago

Detection of breast cancer metastasis in lymph nodes

Localized breast cancer has an excellent 5-year survival rate of about 99%. On the other hand, a 5-year survival rate drops to 86% for regional cancer and to 31% for distant cancer. Therefore early, quick, and accurate diagnosis increases patient survival chances significantly. T … | Continue reading


@softwaremill.com | 2 months ago

Things I wish I knew when I started with Event Sourcing - part 2, consistency

In the first part of the series, we went through some great strengths of event sourcing: time traveling and the ability to answer virtually any analytical questions related to the service with the events stream at hand. Here, let’s first look at some common beliefs about consiste … | Continue reading


@softwaremill.com | 3 months ago

SoftwareMill Wins The Manifest Company Award

SoftwareMill Wins The Manifest Company Award for Warsaw’s Most Reviewed Software Development Company for 2024 When it comes to helping businesses transform proactively, our award-winning team at SoftwareMill has been doing it since 2009. We specialize in Scala, Kafka, Akka, and C … | Continue reading


@softwaremill.com | 3 months ago

10 things I found refreshing while revisiting Scrum and Kanban guides

I learned Scrum 15 years ago. Since then, I have been treating its set of prescriptions and practices as rather fixed. Until recently, I saw no incentive to revisit them. At the same time, projects I took part in usually didn't use proper Scrum. Rather, they ended up with some cu … | Continue reading


@softwaremill.com | 3 months ago

Direct-style Bootzooka: 2024 update

As technology never stops evolving, it's time to update Bootzooka, our webapp/microservice application template based on TypeScript and Scala. This time, we focus on the backend, adopting Java 21 with Virtual Threads, the "direct" programming style, and Scala 3. Let's take an ove … | Continue reading


@softwaremill.com | 3 months ago

Locust - performance testing of an ML model

Learn how to run load tests on a deployed AI model to find out how it will behave with different volumes of user traffic. Source Machine learning models can solve many complex business problems, which is why they are often used in business products today. In addition to the perfo … | Continue reading


@softwaremill.com | 3 months ago

Czy da się pracować chodząc na bieżni?

Praca zdalna daje wiele super możliwości. Jesteśmy w stu-procentach zdalni, więc coś o tym wiemy :) I chociaż każdy pracuje gdzie chce i kiedy chce (część z nas planuje właśnie wspólne workation!), to "główne" biura mamy w swoich domach. A co za tym idzie, musimy dobrze zaplanowa … | Continue reading


@softwaremill.com | 4 months ago

What can you get from finetuning LLM?

When working in the natural language processing domain, and more specifically with chatbots and Large Language models, at a certain point, you hear about terms like prompt engineering and model fine tuning as possibilities to customize or improve your system. Still, often, it is … | Continue reading


@softwaremill.com | 4 months ago

Programmer-friendly structured concurrency for Java

Structured concurrency has proven to be a safe, expressive, and understandable approach to concurrency. Python libraries are a pioneer in the field, followed by others, including languages such as Kotlin. Since Java 21, we have a powerful new concurrency primitive at our disposal … | Continue reading


@softwaremill.com | 4 months ago

Observability part 3 - configuring OpenTelemetry components

Welcome to the third part of a series of articles about Observability. In the previous article, we have successfully created a Kubernetes cluster with Kind and deployed a local try-me environment with Pulumi. In this article, we will focus on the main part of our Meerkat project … | Continue reading


@softwaremill.com | 4 months ago

Observability: we are Grafana technology partners

Following the announcement of the partnership with Snyk, we are happy to share that SoftwareMill has officially partnered with Grafana! As a leading open-source analytics and monitoring platform, Grafana equips businesses with the observability tools they need to understand their … | Continue reading


@softwaremill.com | 4 months ago

Developer Experience in Open Source Software

DevEx is becoming more and more important in organizations, where teams of developers optimize processes, practices, conventions, documentation, and basically any aspects of their work in order to make it more efficient and remove obstacles that break the flow. Here are some reco … | Continue reading


@softwaremill.com | 4 months ago

What is AI watermarking?

With more prevalent Generative AI via chatGPT, Dalle, Midjourney, and others, we are slowly surrounded by generated content. Additionally, there are many ongoing cases of illegally using data for training models like Getty Images vs Stability.ai (creators of Stable Diffusion) or … | Continue reading


@softwaremill.com | 4 months ago

Things I wish I knew when I started with Event Sourcing - part 1

Over the last several years, I have had a great chance to learn and work with various services built on event sourcing. Sure, there were times when our relationship was more “hate” than “love” from the love-hate duo, and there were times when event sourcing was overused or at lea … | Continue reading


@softwaremill.com | 5 months ago

How to apply CT/CD principles to machine learning projects?

Problem description In large companies, the process of managing invoices and bank transfers is a complex one. With many contractors and customers, it is not difficult to make mistakes in the title of the transfer, there are cases when one transfer is paid for many invoices or onl … | Continue reading


@softwaremill.com | 5 months ago

GCP Compute Engine for your ML PoC

There are many great tools for ML project orchestration, like KubeFlow, Airflow with MLFlow, or cloud provider solutions (like Google Vertex AI, SageMaker, and Azure AI), but all of those solutions are meant for large-scale systems. What if you want to serve a budget version of y … | Continue reading


@softwaremill.com | 5 months ago

Tapir Tech Update the Deep Dive

You may remember that in the past, we had a different newsletter called Data Times. You may even start to wonder what happened to Data Times. This Blog is aimed at answering this question and also mentioning why we changed our newsletter. Additionally, It will give you some detai … | Continue reading


@softwaremill.com | 5 months ago

Simple Frontends

Recently a colleague of mine shared a story: he started a side-project with an intention to iterate relatively quickly (but still safely); he chose node.js with TypeScript for the backend logic. He is a backend developer by day (mostly focused on ecosystems other than node.js/JS/ … | Continue reading


@softwaremill.com | 5 months ago

How to add CPU, GPU, and system metrics to the BentoML service metrics enpoint

Monitoring deployed services is key to responding quickly to emerging performance issues or errors. For services using machine learning models under the hood, it is crucial to monitor resources that are critical to their operation. Image source BentoML, widely used to serve machi … | Continue reading


@softwaremill.com | 5 months ago

Observability part 2 - building a local try-me environment

This blog post is the second part of a series of articles about Observability. If you haven’t heard about our Meerkat project yet - jump back to the article written by Adam, where you can read a short introduction to the project and this blog series as well as find out who can be … | Continue reading


@softwaremill.com | 5 months ago

Embedding models comparison

Retrieval Augmented Generation Chatbot uses a knowledge base to answer questions about information the model has no clue about. The knowledge base usually is an organization's internal documentation. The model has never seen the documentation during the training process. The docu … | Continue reading


@softwaremill.com | 5 months ago

Marcin Baraniecki - Developer Experience done right

In the previous part of this series, developer experience (DX) was mentioned as one of the key terms of a modern software development project. As the author described it: (...) all things related to ease of working with software and when building software, productivity, and effic … | Continue reading


@softwaremill.com | 5 months ago

Secure software development: we are a Snyk technology partner

We’re excited to partner with Snyk, one of the leading security platforms, which, in their own words, empower organisations to develop fast and stay secure. A competitive business environment puts great pressure on enhancing developer productivity and improving the speed of deliv … | Continue reading


@softwaremill.com | 5 months ago

Irish experience: Dublin Tech Summit 2024

Last week, I had the pleasure of meeting like-minded people at Dublin Tech Summit 2024, listening to influential speakers, and learning a bit about trends in AI and tech in the business community. This blog post sums up my learnings and hints at possible trends of AI and tech in … | Continue reading


@softwaremill.com | 5 months ago

Michał Ostruszka - Developer Experience done right

At SoftwareMill, being a software delivery partner for our clients, we naturally have a chance to experience working on many projects of various scales, across different business domains. Each of these projects is different in terms of organization, ways of working, technologies … | Continue reading


@softwaremill.com | 5 months ago

Cyberbezpieczeństwo: SoftwareMill partnerem technologicznym Snyk

Zostaliśmy partnerem technologicznym Snyk, jednej z wiodących platform do Application Security, która umożliwia biznesom szybki rozwój oprogramowania z zachowaniem odpowiednich standardów bezpieczeństwa. Z aplikacji Snyk korzysta już prawie 30 milionów użytkowników na całym świec … | Continue reading


@softwaremill.com | 5 months ago

WebSocket chat using structured concurrency, Ox & Tapir

A chat application is often used to demonstrate various approaches to working with WebSockets. We'll follow suit; below is a quick tour of how such a service can be implemented in direct style using: Java 21 for its built-in asynchronous runtime & Virtual Threads the Ox library f … | Continue reading


@softwaremill.com | 5 months ago

Magda Stożek - My Scala Story

Today in our special #scalaversary series, Magda Stożek, an experienced Software Developer working at SoftwareMill, shares her Scala Story! How did you first get introduced to Scala, and what did you think about it? I joined SoftwareMill as a Java developer, but I soon realised t … | Continue reading


@softwaremill.com | 5 months ago

Continuous Delivery Pipelines

A wise man once told me that life is too short to read good books - you should focus on the outstanding ones. Dave Farley’s “Continuous Delivery Pipelines” certainly belongs to this category. With around 40 years of experience, 30 of which working with large scale distributed sys … | Continue reading


@softwaremill.com | 5 months ago