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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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 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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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