-
Debugging and Observing Event Streams in Large-Scale Systems

Anyone who has worked with event-driven systems knows that handling and debugging event-driven architectures isn’t as straightforward as in traditional, request-driven architectures, where a debugger and a well-placed breakpoint can save hours of work. We have an application built around events — some triggered by external interactions, others generated internally as part of an execution…
-
MCP Server with Spring AI

The Model Context Protocol (MCP) is an open standard introduced by Anthropic in November 2024. It defines a common way for AI models, like large language models, to connect and exchange data with external tools and systems. Often called “the USB‑C of AI apps,” MCP acts as a universal bridge, allowing AI assistants to read…
-
Software and Data Migration Strategies: Lessons from Real-World Systems

For more than seven years, I’ve been working on software systems where downtime is not an option—not even for a second. Deployments, upgrades, and migrations all have to happen seamlessly, while the system continues to serve users without interruption. This requirement changes the way you think about engineering. Simple operations like adding, renaming, or removing…
-
Building a Private Cloud

Overview The goals of this project are: Architecture To build the physical and logical foundation, several requirements were established: Hardware The hardware setup included: Configuration CloudStack Network A custom bridge is used to connect the network pool for virtual machines. KVM Installation Mysql Configuration NFS Configuration Primary and secondary storage is exposed Installing management server…
-
Accelerating Software Development: A Developer’s Perspective (Java, Kubernetes and Skaffold)

Developing software is a process composed of several key steps: In this article, I will focus on one crucial part of the process: writing code and running it locally. Demo: Observations from Startups and Established Companies Startups tend to move fast. They have fewer meetings, design quickly, implement rapidly, and deploy in record time. However,…
-
Configuring Wireguard on EdgeOS 3

In this article, I will walk you through the process of configuring WireGuard on EdgeOS. While this setup was tested on a Ubiquiti EdgeRouter 4, it should also work on other similar devices running EdgeOS. Objective The primary goal of this setup is to enable secure connections to a WireGuard server running on the EdgeRouter…
-
You should speak about the stuff you do

As an engineer often I hear from other people that stuff I do is too complex for others to be understood and it shouldn’t be presented to a larger audience (of course I refere to an audience that has direct connections to that thing) – sometimes they offer to help make it less complex or…
-
BPMN Workflow Engine on mobile devices and lifecycle management

Prezentarea de la Moldova Conference Days 2022, despre SDK-ul pentru iOS si Android implementat pentru compania Extole. Contine date despre instrumentele utilizate si procesul de dezvoltare.
-
Batch processing at Scale (RO)

A high-level presentation about software for processing large quantities of data, it supports horizontal scalability, restarts during operation and is not using a database for tracking progress.
-
Returning Java Optional Benchmark
I was reading on the internet that returning Java Optional may be slow and it is not recommend for high-performance applications. A bit of history In Java lack of a value can be represented as null or a more readable approach and less error-prone is to use Optional. Using Optional is the recommended way of…