I am a Berlin based freelance full-stack developer and consultant who has been building web applications for over 20 years.
While working for a wide variety of companies including small and large startups, software agencies, international media companies I gained experience and solid skills both on the front-end and back-end side of the web. I am also passionate about user experience and accessibility.
Check out my portfolio to learn more about the companies and projects I worked for.
My philosophy
My leading principle is getting things done but only those “things” that have a purpose and create value for my employer or client.
- I find discussing plans on paper or whiteboard and giving feedback in different means of code review useful
- I also believe in no-blame engineering culture and have learned from my own mistakes through a postmortem process
- I enjoy teaching and mentoring, have held several internal trainings and a few public tech talks with positive feedback. I believe knowledge transfer is important in software engineering
Front-end skills
I prefer to use recent and popular tools on new projects which currently means one of the reactive frameworks like Vue.js or React. I am also comfortable working on legacy codebases predating these (for example Backbone or in-house frameworks).
I am quick to learn and adopt new technologies but I am particularly strong in these technologies and skills:
- Modern, semantic HTML
- Recent JavaScript (ECMAScript 6 and newer) and TypeScript
- Modern CSS
- Reactive frameworks (Vue.js + Vuex, React + Redux and others)
- User interfaces from scratch or using component libraries and design systems
- Usability and accessibility
- Data visualization (D3.js, interactive SVG grahpics)
- Development tooling (using Node.js and the NPM ecosystem)
- Electron desktop applications
- Basic image processing
Back-end skills
My toolkit includes multiple back-end languages and the experience spans across large monolithic systems like Rails monoliths, enterprise Java (J2EE) applications and microservices written from scratch. These are my strengths:
- Programming in Scala, Java, Ruby, Python or Node.js
- Using frameworks like Ruby on Rails, Django, Spring Boot
- Thorough understanding of how to manage concurrency on different platforms and frameworks
- Serverless architecture (AWS Lambda, Serverless Framework)
- A variety of SQL and NoSQL databases (MySQL, PostgreSQL, Cassandra, MongoDB, Elasticsearch, DynamoDB)
- Building and scaling distributed systems
- Building services backed by asynchronous messaging systems (Kafka, RabbitMQ)
- Integrating big data solutions like Hadoop and know how to write MapReduce jobs
DevOps skills
I have been involved in deploying and operating software in production since early on in my career and started exploring the depths of the Linux operating system even before I became a software engineer. These are the methods and technologies I have first-hand experience with:
- Writing containerized applications with Docker
- Running applications on OpenShift or Kubernetes
- Deploying applications to cloud infrastructure (Amazon AWS, EC2, Heroku, DigitalOcean)
- Managing infrastructure configuration as code (Chef, Ansible, CloudFormation, Terraform)
- Continuous delivery on several platforms (Jenkins, GoCD, CircleCI, Travis, AWS CodeBuild, AppVeyor, GitLab, GitHub Actions)
- Monitoring infrastructure and code performance (Prometheus, Nagios, New Relic, Sentry)
- Setting up alerts and responding to incidents while being on-call
Other skills
Besides the main areas above I possess a couple of other hard and soft skills:
- Able to efficiently work with visual designers on building user interfaces
- Participated in various project management flows from waterfall to agile, often taken facilitator roles
- Managing a small team of developers
- Using UNIX-like operating systems and automating recurring tasks using shell scripts
- Good knowledge of how networking and the internet works. I understand the challenges of scaling software across physical locations
- Maintainer of a few open-source projects. I also make small contributions to software I use (bug reports and fixes)
- Engineer recruiting, interviewing candidates, reviewing profiles or code challenges
How to hire me
If the skills I can offer sound like useful additions to your existing team or want to me to help with starting a project from scratch please send an email contact me through the channels below. The conversation usually starts with an initial free one-hour consultation over a phone or video call.
I am happy to work on-site in central Berlin, occasionally show up at more distant destinations or work fully remote anywhere else.