Migration of an On-Premise Kubernetes Cluster to Azure Cloud
Period: 03/2020 – 09/2020
Role: Software Developer
Client: Lowell
Team size: 3
Person days: 120
Initially, services were operated in an on-premise Kubernetes cluster. The goal of the project was to migrate all services to Azure Cloud. Additionally, technologies and cloud services were evaluated, utility classes and templates were created for future development, and a CI/CD pipeline was established.
My contributions to the project::
- Selection of cloud services to be used in coordination with the architect
- Agreements on future autonomy of development teams
- Review of existing code and resulting best practices
- Documentation of the Transaction Outbox Pattern, idempotency, aggregates, and other useful microservice patterns
- Utility classes for sending and receiving Protobuf business events
- Creation of the CI part of the CI/CD pipeline
- Evaluation and implementation of Azure Serverless
- Setting up infrastructure using Infrastructure as Code (IaC)
- Liveness check / readiness check for services in Kubernetes
- Creation of cron jobs in Kubernetes
- Creation of C# templates for building new services
Knowledge:
C#
Architecture
Automated Tests
Unit Tests
Continuous Integration
Continuous Delivery
Docker
Docker Compose
Container
Istio
Infrastructure as Code (IaC)
Microservices
Self-Contained Systems
Protobuf
Cloud Native
Azure
Messaging
Azure ServiceBus
Azure Serverless
PostgreSQL
Design Pattern
Microservice Pattern
Idempotency
Transaction Outbox Pattern
Gateway
Event Driven System
C# Template
Azure Pipeline Template
Claim Data for the Consumer Portal
Period: 01/2020 – 06/2023
Role: Software Developer
Client: Lowell
Team size: 4
Person days: 50
Lowell's consumer portal is a central digital service platform for individuals with outstanding claims at the debt collection agency. Lowell consists of multiple companies that are separated both organizationally and technically. Several different debt collection software systems had to be mapped onto a single API.
My contributions to the project::
- Onboarding new Lowell subsidiaries
- Adaptations and extensions of the interfaces
- Definition of the API with a focus on compatibility
- Testing the interface locally, in the CI build, and in production (partially semi-automated)
- Rolling out the API with zero downtime in a Kubernetes cluster
- Analysis and resolution of production errors
- Reduction of the number of services, as the microservices had been cut too small
- Fixing security vulnerabilities and hardening API interfaces after penetration tests
- Guiding the development team to sustainably avoid identified weaknesses
- Defending the system architecture against external security auditors
Knowledge:
C#
Architecture
gRPC
REST
Design Pattern
Gateway Pattern
Automated Tests
Unit Tests
Continuous Integration
Continuous Delivery
PostgreSQL
Oracle
Dapper
Kubernetes
Docker
Docker Compose
Container
Istio
Infrastructure as Code (IaC)
Microservices
Self-Contained Systems
API-First
Protobuf
Git
Security Auditing
Secure Coding Best Practices
Architecture Review
Risk Communication