Make Your Value Stream Visible Through Structured Logging
Looking at software development before the cloud revolution, using logging frameworks was kind of common. They supported the dev in formatting the logs, buffering them and sending them to the correct sink such as Elasticsearch. With the rise of cloud platforms applications tended to get smaller units and direct integrations of cloud applications into observability or log archive platforms is now possible with a few lines of configuration. It's time to review if using logging frameworks pays off or a simple 'console.log' and forward the application/function output to some provider such as datadog will do the job.
Revolutionizing the Logistics Industry: Trustbit Logistics Simulator Framework
As the logistics industry becomes increasingly complex, businesses need innovative solutions to manage the challenges of supply chain management, trucking, and delivery. With competitors investing in cutting-edge research and development, it is vital for companies to stay ahead of the curve and embrace the latest technologies to remain competitive. That is why we introduce the Trustbit Logistics Simulator Framework, a revolutionary tool for creating a digital twin of your logistics operation.
Event Sourcing with Apache Kafka
For a long time, there was a consensus that Kafka and Event Sourcing are not compatible with each other. So it might look like there is no way of working with Event Sourcing. But there is if certain requirements are met.
CSS :has() & Responsive Design
In my journey to tackle a responsive layout problem, I stumbled upon the remarkable benefits of the :has() pseudo-class. Initially, I attempted various other methods to resolve the issue, but ultimately, embracing the power of :has() proved to be the optimal solution. This blog explores my experience and highlights the advantages of utilizing the :has() pseudo-class in achieving flexible layouts.
Consistency and aggregates in event sourcing
Black Friday is coming, so let’s talk about warehouse management and event sourcing. When developing a system for event retrieval with aggregates, several very different concepts are possible. If you think of an aggregate as a transaction boundary, then each decision has its own implications.The aggregate can also be a lifecycle boundary - events in a global uniform stream can often only be discarded by the aggregate stem.
So, I wrote a book
On Saturday August 7 2021, I released a book called Essential Functional-First F# on LeanPub, a self-publishing platform. It is based on two series of blog posts that I've written for the Trustbit blog.
Building and Publishing Design Systems | Part 3
In this part of composite UIs with micro frontends and design system, we will create a micro frontends that will consume the design system created in the previous post.
Using Historical Data to Simulate Truck Journey Durations & CO2 Emissions
Emissions. Assume you own a truck company: your company takes transport orders from customers who can goods delivered from point A to point B. How would that work?
Solving Transport Tycoon 2 Episode 2.1 With F#
This post describes how I wrote my submission to the Transport Tycoon 2 Episode 2.1 problem. The task is to find the shortest route between two stations given a dataset of connections.
Using Discriminated Union Labelled Fields
A few weeks ago, I re-discovered labelled fields in discriminated unions. Despite the fact that they look like tuples, they are not.
Isolating legacy code with ArchUnit tests
Clear boundaries in code are important ... and hard. ArchUnit allows you to capture the structure your team agreed on in tests.
Creating solutions and projects in VS code
In this post we are going to create a new Solution containing an F# console project and a test project using the dotnet CLI in Visual Studio Code.
Creating solutions and projects in VS code
In this post we are going to create a new Solution containing an F# console project and a test project using the dotnet CLI in Visual Studio Code.
Composite UI with Design System and Micro Frontends
In this short series, we will discuss one way of building composite UIs using micro frontends sharing design system. We will use tailwind, storybook, react and webpack.
Building and Publishing Design Systems | Part 2
In this part of composite UIs with micro frontends and design system, we will create and publish a simple design system using tailwind and storybook.
Building Shell Application for Micro Frontend | PART 4
This is the last post in building composite UIs using micro frontends and a design system. In this post, we will create a shell application that will compose all micro frontends.
In-depth introduction to flexbox
Modern CSS is loaded with features; many things that in the past required JavaScript and tooling now can be done with plain CSS. If I were to recommend one feature that is worth learning in detail, it would be flexbox.
Alternate Ways of Creating Single Case Discriminated Unions in F#
There are quite a few ways of creating single case discriminated unions in F# and this makes them popular for wrapping primatives. In this post, I will go through a number of the approaches that I have seen.
Introduction to Web Programming in F# with Giraffe – Part 2
In this series we are investigating web programming with Giraffe and the Giraffe View Engine. In this post, we will creating a simple API.
Introduction to Web Programming in F# with Giraffe – Part 3
In the last post, we created a simple API for managing a Todo list. In this post, we are going to start our journey into HTML views with the Giraffe View Engine.