Projects
-
Project: The client is a middle-sized enterprise offering an integrated software solution to business customers. The company has a large and stable customer base. They want to accelerate releases, from a couple of scheduled releases per year to shipping often. Starting with frequent automatic deployments and speeding up the whole value stream usually presents a couple of new challenges. There are technical difficulties like an aging tech stack that does not allow for the required flexibility. More importantly, cultural changes are necessary, because such a transformation can feel scary and uncertain. Moving away from well-rehearsed patterns takes courage and requires leaders to produce an environment of psychological safety and absolute tolerance for mistakes.
Contribution: In a team of consultants, I accompany both the technical evolution of our client's engineering team as well as the leaders and managers to build strong teams. I support technological choices concerning automation, pipeline, automated testing, and service orchestration on the target platform. I assist a pioneer team with their first implementation of a Kubernetes platform as an easy deployment target for product teams. I help managers to align their goals and build a useful roadmap to improve the value stream.
Technologies: Pipeline tooling, Kubernetes, Build and Deployment Automation
-
Project: My client – a century-old manufacturer – starts a journey to enter into new markets and build an entirely new set of products: digital offerings. As anyone can imagine, there's a couple of hurdles to overcome on the way, for example, old organizational structures that do not support software development needs. Another one stands out in particular: lack of personnel with software engineering skillset.
To scale operations while building up a series of product teams, we need to figure out a way to reuse the knowledge build-up without losing too much precious engineer attention to tedious details of the underlying tech stack.
Contribution: This consultancy project aims to design and implement a deployment platform for seven product teams. We interview product engineers, gather continuous feedback and measure the adoption of new features in an automated way. We used this input to plan the next most crucial feature to improve the value stream across all products.
Time-consuming problems reported by engineers are analyzed, and solutions are tested in a proof of concept. Once we find a viable solution to real engineering problems, we train product teams to use it and support engineers during adoption and productive use.
The resulting platform was quickly adopted by the teams, improving the overall productivity of engineers.
The deployment platform was based on Azure and Azure DevOps using container technology and modern continuous pipelines.
Technologies: Azure, Kubernetes, AKS, Terraform, Pulumi, Azure Pipelines, Configuration Management
-
Project: For more than two decades, this client has been developing a large application landscape in old-school separated roles: developers, mostly manual operations, and a test team that validates – also by hand. However, complexity has taken over most of the developer's mental capacity. Communication has become a bottleneck and maneuverability is heavily impaired: classic firefighting.
Contribution: Within the scope of this consulting project, I supported my client to start modernizing build, deployment, and testing. The goal was to analyze and study some of the base technologies that would enable a new collaboration model in the future. During a workshop, we determined the best fit for a blueprint project. Further, we discussed important key metrics that can guide them out of complexity.Methods/Technologies: Docker, Pipeline-Tools, Metrics Collection
-
Project: Well-structured and auditable communication between construction site managers, lead workers, and subcontractors is the unique selling point of this application. It aims to be a digitized version of the usual MO. There is a high potential to avoid miscommunication. In a competitive market, the solution must match real customer needs. Time was of the essence to deliver a product before other market players would. Our team worked closely with product owners and other stakeholders. The biggest challenge is balancing velocity and careful consideration to create a sustainable and long-lasting technological platform.
Contribution: I contribute as Software Engineer, developing backend services with Spring and modeling the core logic of the domain. I provide vital pieces to cross-cutting solutions, such as solving the "exactly once" problem for sending Kafka Messages and committing to a database.
I build the solution's Cloud Infrastructure from scratch using Infrastructure as Code. I implement more and more advanced features as the application grows. I contribute to the rich automated test suite to ensure its correctness. I help automate testing and rollout processes via Jenkins pipelines.
Technologies: Spring-based REST microservices, Java, asynchronous Communication (Kafka), Kubernetes runtime, Azure, AKS, Terraform, Jenkins, Azure Pipelines, Ansible, DDD
-
Project: The client – a traditional bank – has various credit products that are offered to the end customer, some directly and some via intermediaries or leasing partners. Over time, the client built up a multitude of databases, spreading customer relations over several independent systems. Many customers were present in multiple systems, with diverging personal data. Consequently, evaluating new credit requests results in a lengthy and tiring manual process that is highly error-prone as well.
To consolidate the databases, we built a central identification system for our client. It extracts customer records from all databases, sanitizes them, and merges them into unique customer entries. This offers a single search interface for account executives, greatly facilitating their daily work. This project was the first initiative for data consolidation.
Contribution: As a consultant and engineer, I was responsible for technical implementation as well as coordinating communication between stakeholders and people in charge of the involved Business Units. We also helped the operations team to adopt new technologies in order to modernize the bank's tech stack. The main challenges were the limited capabilities of the existing tech stack and missing automation. The merging logic had strict requirements to prevent accidental merges and was developed iteratively and reversibly.
Technologies: Spring, various Databases, ETL, Docker