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
Lagom, an opinionated microservices framework, is reaching end-of-life on July 1st, 2024. Beyond this date, no additional security or bugfix patches will be provided. Quite naturally, this raises questions about production applications that are based on the framework; keeping sof … | Continue reading
In my previous article, I took a closer look at the Java ExecutorService interface and its implementations, with some focus on the Fork/Join framework and ThreadPerTaskExecutor. Today, I would like to take a step forward and check how well they behave when put under pressure. In … | Continue reading
Ox, a library for safe direct-style concurrency and resiliency in Scala on the JVM, recently gained a new feature: the IO capability. IO is designed to be part of the signature of any method that performs I/O, either directly or indirectly. The broader goal of the IO capability f … | Continue reading
With more prevalent applications like chatGPT, Siri, or Alexa, we slowly surround ourselves with technology we may not fully understand. This article aims to give you a glimpse into the area of language agents. The structure of that blog post is as follows: first, we will discuss … | Continue reading
In software architecture, observability is one of the most important characteristics. This is especially true for distributed systems. Communication between services often happens asynchronously by sending messages, which introduces complexity for the application's testability. I … | Continue reading
Hello! Chances are that you clicked this article to get to know something about our new Meerkat project. This is the first article of a series about observability and our attempt towards giving back to the open source community, so I hope you'll stay tuned for the upcoming parts … | Continue reading
In the previous Part of the series I briefly showed how programming a quantum computer looks like. Check all the articles from the series: Part 1 A gentle overview Part 2 Basic building blocks Part 3 Programming a quantum computer In this Part I’m going to show you a working exam … | Continue reading