I am a software developer with knowledge and experience in architecture, automation, backend, frontend, operations, teaching, technical leadership and testing. Since 2007, my professional focus lies on full-stack web development.
In most projects, I use JavaScript as language and Node.js as backend runtime. Wherever useful, I apply selected parts of DDD. The architectural patterns I am most interested in are Event-driven Architecture, CQRS and Event Sourcing. For the frontend, I personally favor to use native technologies, such as Web Components. Professionally, I also work with various libraries and tools.
Most recently, I started learning Rust as new programming language and picked up selected concepts of Functional Programming. Since many years, I am a strong supporter for Free/Libre Open Source Software.
Availability
- Available from early 2021 for up to 20 hours per week
- Remote only - Office located in Munich, Germany (GMT+1)
Area of work
- Automation
- Backend Development
- Code Design
- Frontend Development
- Operations
- Software Architecture
- Talks
- Teaching
- Technical Leadership
- Technical Writing
- Testing
- Workshops
Languages
- CSS
- HTML
- JavaScript
- Markdown
- PHP
- Rust
- SCSS
- SQL
- TypeScript
Technologies
- Ansible
- BabelJS
- CSS Modules
- Docker
- express
- Jest
- jQuery
- gohugo
- GNU/Linux
- lodash
- Mocha/Chai
- Node.js
- nginx
- Protractor
- React
- redux
- Server-Sent Events
- socket.io
- Shell/Bash
- Web APIs
- Web Components
- Websockets
- Webpack
Designs & Patterns
- Clean Code
- Command Query Responsibility Segregation
- Composition over Inheritance
- Continuous Delivery & Continuous Integration
- Domain-Driven Design
- Event Sourcing
- Event-Driven Architecture
- Eventual Consistency
- Inversion of Control / Dependency Injection
- Loose Coupling
- Messaging
- Microservices
- Model-View-Controller (MVC)
- RESTful
- Reactive
Methodologies & Processes
- Agile Development
- Behavior-Driven Design
- Code Reviews
- Domain-Driven Design
- Extreme Programming
- Kanban
- Lean Startup
- Pairing (also remote)
- Refactoring
- Scrum
- Test-Driven Design (TDD)