Software Architecture

HereĀ are some of the software architectures and architectural patterns I have been intensely working in various mission critical projects:
  • Highly distributed application architecture
  • Event driven architecture
  • Microservices, breaking down the monolith
  • Real-time stream processing
  • Event sourcing
  • Command query responsibility segregation (CQRS)
  • Pub-sub messaging

Methodology

Using the right methodology to successfully complete a complex project is key. Throughout my career I have been practicing the following methodologies:
  • Agile development, SCRUM, Kanban
  • Test driven development (TDD)
  • Proof of concepts (PoC), Prototyping, Mock-ups

DevOps

In a fast changing world with ever changing requirements DevOps is of uttermost importance. I have introduced and driven the implementation of:
  • Continuous Integration & Continuous Deployment or Delivery (CI/CD)
  • Zero downtime deployment (rolling updates, blue-green, canary releases)

Programming Languages & Frameworks

All the following languages and frameworks I have used to write and enhance mission critical applications and/or been teaching from entry to advanced and expert level:
  • .NET, C#
  • Java
  • Python
  • Java Script, Node JS, Angular JS
  • HTML, CSS

Operating Systems & Scripting

I’m deeply familiar with Linux and Windows and am using Bash and PowerShell to automate complex tasks
  • Linux (CentOS, Ubuntu, Alpine)
  • Windows 10, Windows Server
  • Bash, Fish, Zsh, Bourne Shell
  • PowerShell

Infrastructure & Platforms

I consider myself to be an expert in container technology and highly distributed application architecture. I have written several books about Docker containers, orchestration engines such as Docker Swarm and Kubernetes. I am deeply familiar with the architecture and the inner workings of Apache Kafka and the Kafka ecosystem:
  • Docker containers
  • Kubernetes and Docker Swarm
  • Apache Kafka, Kafka Connect, Schema Registry, Kafka Streams, KSQL

Security

To me, security can never be an afterthought and sprinkled like magic dust on top of applications running in production. Security is a base requirement for any business application. As a consequence I have been digging deep into the following areas:
  • Authentication: Mutual TLS (SSL), SASL, OAuth2
  • Authorization: ACLs, Role-Based Access Control (RBAC)
  • Transport: TLS, custom encryption

Soft Skills

Current and former supervisors, coworkers and mentees have been associating the following soft skills with me:
  • Leader and visionary
  • Empathetic leader, role model
  • Mentor, trainer, coach
  • Excellent communications skills
  • Translating complicated structures into easy to understand content

Management

As a part of my various roles as lead, distinguished and chief architect, as well as lead curriculum designer I have acquired the following management skills
  • Leading interdisciplinary projects
  • Developing roadmaps
  • Estimating and managing timelines
  • Enabling and fostering teamwork
  • Reducing friction, optimizing processes
  • Gathering and analyzing business requirements
  • Formulating strategic and tactic goals
  • Creating specifications
  • Thinking out of the box