Welcome to perprogramming

My name is Per Bernhardt and I'm a software developer living in Bonn, Germany.

I am a great enthusiast of modern software engineering methodologies including Continuous Integration & Delivery, Automatisation, Microservice Architecture, Lean & Agile Development, Scrum, Container Orchestration and Cloud Computing.

I am convinced that they are not a hype but that together they build a superior framework of methodologies that are based on natural and long established computer science principles.

Besides reading the information on my homepage you might want to have a look at my profiles on

Personal Details

Per Bernhardt
Per Bernhardt
Born on
27 April 1984, Siegburg, Germany
Rotdornweg 15
53177 Bonn

Professional Experience

2019 - present
Staff Software Engineer
LeanIX GmbH, Bonn, Germany
In 2019 I joined LeanIX to be part of the platform operations team.

Interesting projects:

  • Platform Operations
    We make sure our product teams keep running their services on Kubernetes in Azure.
    Project started: 2019
    Keywords: Azure Cloud, Kubernetes, Docker, Java, Dropwizard, Angular, Kafka, Elasticsearch, Ansible

2015 - 2019
Software Architect
Chefkoch GmbH, Bonn, Germany
Since I started at chefkoch.de I took part in or led a number of projects and teams in their engineering department. Overall I played a major role in a successful long-term transformation from a slow-iteration software development workflow in a monolithic application running on bare metal towards a rapid CI/CD workflow of microservices running on a kubernetes container cluster.

Interesting projects:

  • DevOps & Refactoring our infrastructure
    In January 2018 I was one of two colleagues from Software Development that joined our ops team. Our mission was to finalize the transition to Kubernetes and get rid of all servers that were not running containers. That also ment refactoring all remaining applications (monoliths & microservices) to run in Kubernetes. We also introduced a complete new monitoring and logging setup based on Filebeat, Prometheus, Grafana and ElasticStack (ELK). We are currently looking into how cloud computing can further improve our operations.
    Project started: 2018
    Keywords: Kubernetes, Docker, Docker-Compose, ELK, Prometheus, Ansible

  • Introducing Google Analytics
    In summer 2017 I led a Scrum development team as "Technical Product Owner". One of our greater epics was to move all tracking at Chefkoch from WebTrekk to Google Analytics. One goal of this transition was to reduce inconsistencies in the tracked data as we heavily rely on them for our sales customers. We quickly designed and launched a static Javascript middleware that contained all logic to map information from our HTML web pages to Google Analytics. The middleware was written in a testdriven approach to ensure complete test coverage of all mapping logic. Se setup also included a logging solution enabling us to see any mapping errors happening within the browser of our users.
    Project started: 2017
    Keywords: JavaScript, Google Analytics, Docker, Kubernetes, ELK

  • Migrating a self-written CMS to an open-source solution (Drupal)
    In early 2016 I was part of a new Scrum development team. Its mission was to migrate all editorial content from some self-written CMS to an open-source solution (Drupal). The project was quite difficult as it also included a complete UX/UI redesign of the content and some new native sales products on top of it. We managed to launch the new CMS to our Kubernetes cluster in about 11 month. As Drupal is quite slow performance-wise, the setup included sophisticated caching based on Redis (backend) and Varnish (HTTP).
    Project started: 2016
    Keywords: PHP, Drupal, MariaDB, Varnish, Redis, Kubernetes, Docker

2013 - 2015
Senior Software Developer
Chefkoch GmbH, Bonn, Germany
Since I started at chefkoch.de I took part in or led a number of projects and teams in their engineering department. Overall I played a major role in a successful long-term transformation from a slow-iteration software development workflow in a monolithic application running on bare metal towards a rapid CI/CD workflow of microservices running on a kubernetes container cluster.

Interesting projects:

  • Introducing Docker & Kubernetes
    In 2014 Chefkoch decided to move towards a Microservice architecture. Right at the same time Docker arrived and we thought it is a perfect match. After some initial experiments on how to run PHP-based web applications in containers and orchestrating them with CoreOS' Fleet, we felt a need for a more flexible orchestration solution. We finally decided for Kubernetes and launched our first microservice to a production cluster, just days after Kubernetes 1.0 was released in July 2015.
    Project started: 2015
    Keywords: Docker, Fleet, Kubernetes

  • Establishing Scrum Methodology
    I was part of the first development team at Chefkoch that used Scrum as their new development approach.
    Project started: 2014
    Keywords: Scrum

  • Introducing a new REST API for mobile apps
    New mobile apps launched in February 2014 needed a fresh REST API to get their data from. We used this API to introduce the Web Application Framework Symfony2 to the company. It was also the first project at Chefkoch were automated tests and Continuous Integration were used.
    Project started: 2013
    Keywords: PHP, MariaDB, Nginx, Symfony2, Solr, Doctrine2, Varnish

Senior Software Developer
STARTPLATZ, Cologne, Germany
Consulting and Technical Support for startups in Cologne area

Interesting projects:

2005 - 2013
Senior Software Developer
webfactory GmbH, Bonn, Germany
Development of webfactory's software platform and infrastructure, running in Amazon Web Services cloud; software analysis, architecture and design for long-term customer projects

Interesting projects:

  • SIZ webbased audit
    Web application for implementing IT security audits in large-scale organisations for our customer SIZ - IT Products and Consulting.
    Project started: 2011
    Keywords: PHP, MySQL, Apache2, IIS, MSSQL, ZendFramework, Doctrine2

  • Youthpass
    Web application generating PDF certificates for participants of the EU Youth in Action Programme, available in 28 languages.
    Project started: 2007
    Keywords: PHP, MySQL, Apache2, Amazon AWS, Multilingual, Apache FOP, Propel, Symfony2

  • Federal Joint Committee
    The Federal Joint Committee (G-BA) is the highest decision-making body of the joint self-government of physicians, dentists, hospitals and health insurance funds in Germany.
    Project started: 2006
    Keywords: PHP, MySQL, Apache2, Amazon AWS, Twig, Propel, Symfony2, Apache Solr

2001 - 2005
Sinfin EDV, Bonn/Rhein-Sieg, Germany
IT services, e.g. network and workstation administration in small business and home environments, hardware and software retail, web design and application development
Forum Neunkirchen, Neunkirchen-Seelscheid, Germany
Preparation and implementation of computer training classes for children aged 4 to 12 years


  • Infrastructure As Code
  • Containers
  • Continuous Integration & Delivery
  • Cloud Computing
  • Software Engineering
  • Test Automatisation
  • Lean & Agile Development
  • Web Development
  • Application Frameworks
  • Object-Relational Mapping (ORM)
  • HTTP
  • Web Caching
  • REST
  • API Development
  • SQL
  • CSS
  • OAuth
  • Scrum
  • Kanban
  • Kubernetes
  • Docker
  • Prometheus
  • Grafana
  • ELK
  • AWS
  • GCP
  • Azure
  • HetznerCloud
  • Terraform
  • Puppet
  • Chef
  • Ansible
  • Ant
  • Linux
  • Git
  • Vagrant
  • Gitlab
  • Bitbucket
  • Bamboo
  • Jira
  • Confluence
  • Solr
  • Varnish
  • Nginx
  • Apache
  • Redis
  • Google Analytics
Programming Languages
  • PHP
  • Java
  • Go
  • Javascript


SensioLabs Certified Symfony Developer
SensioLabs, Cologne, Germany
The SensioLabs Symfony2 Framework certification exam is an industry standard to help developers distinguish themselves and emphazise their skill towards IT companies
2007 - 2015
Computer Science (B.Sc.)
Bonn-Rhein-Sieg University of Applied Sciences, Sankt Augustin, Germany
Part-time bachelor degree studies in Computer Science, specialization "Complex Software Systems", Average Grade 2.2
2005 - 2007
Vocational Qualification "Qualified IT Specialist"
Industrie- und Handelskammer Bonn/Rhein-Sieg, Germany
Average grade: 2.0
2005 – 2007
Vocational School Graduation
Heinrich-Hertz-Berufskolleg, Bonn, Germany
School-related part of the vocational qualification "Qualified IT Specialist", Average grade: 1.1
1994 - 2003
General Qualification for University Entrance (Abitur)
Antonius Kolleg Neunkirchen, Neunkirchen-Seelscheid, Germany
Average grade: 1.5

Further Education

30 September 2014
Trainer: Sebastian Mancke
Bonn, Germany
05 March 2012
Creating Mobile apps with jQuery Mobile
Trainer: Maximiliano Firtman
London, United Kingdom
20 October 2011
Build your own framework... based on the Symfony2 components
Trainer: Fabien Potencier
Cologne, Germany
8 March 2011
Designing Software, Drawing Pictures
Trainer: Simon Brown
London, United Kingdom
1 March 2010
Advanced Javascript
Trainer: Paul Bakaus
Wiesbaden, Germany
January - June 2008
CCNA 4 WAN Technologies
HHB Bonn, Germany
29 June 2007
The Secret of Effective Teams: Agile, Discipline, Focus
Trainer: Alistair Cockburn
Bonn, Germany
April - August 2007
CCNA 3 Switching Basics and Intermediate Routing
HHB Bonn, Germany
March - July 2006
CCNA 2 Router and Routing Basics
HHB Bonn, Germany
October 2005 - February 2006
CCNA 1 Network Basics
HHB Bonn, Germany


Magazin-Relaunch bei Chefkoch
G+J Headquarters, Hamburg
A talk on how continuous delivery helped us migrating our editorial content into an open-source solution (Drupal) running on Kubernetes.
Contract Tests mit Pact
Microservice Meetup, Bonn
This talk shows how Contract Testing with Pact eases microservice development.
Chefkoch goes Drupal8
Code Talks 2016, Hamburg
A talk on how we migrated our editorial content from a self-written CMS to an open-source solution (Drupal).
Umzug eines Hochlast-Dienstes
Code Talks 2016, Hamburg
A talk on how we moved a high traffic Solr-based site search from bare metal to containers running on Kubernetes.
kubernetes @ Chefkoch.de
Kubernetes Meetup, Cologne
A talk on how we introduced Docker & Kubernetes at Chefkoch.
Kubernetes: Wie Chefkoch.de mit Containern arbeitet
Symfony Live 2015, Berlin
A talk on how we introduced Docker & Kubernetes at Chefkoch.
Microservice-Teststrategie mit Symfony2
Code Talks 2015, Hamburg
Talk on how to apply a teststrategy on microservices in PHP / Symfony2.
Continuous Integration & Delivery with Bamboo
Chefkoch GmbH, Bonn
A short introduction to Continuous Integration and Continuous Delivery with Bamboo.
Application Layer in PHP
Symfony User Group, Cologne
Talk on a possible way to implement "Layered Architecture" (Martin Fowler) in PHP / Symfony2.
Anwendungsintegration mit Edge Side Includes
Symfony User Group, Cologne
Talk on how to integrate different applications on HTTP level using Edge Side Includes

Extra-professional Activities

2013 - present
"Die feinen Herren"
Bonn, Germany
Playing the card game "Skat"
2008 - 2014
Foosball Player
Kicker Crew Bonn, Germany
Club member, team member, league player, substitute trainer and website administrator
2009 - 2010
Referee (Association Football)
German Football Association, Rhein/Sieg, Germany
Supervision of regional association football games
2000 - 2003
Organising Committee
Antonius Kolleg Neunkirchen, Neunkirchen-Seelscheid, Germany
Event management and event technology for school events
1994 - 2003
Students Council
Antonius Kolleg Neunkirchen, Neunkirchen-Seelscheid, Germany
Class and students representative


  • German (native)
  • English (fluent)
  • Card Games
  • Foosball
  • Hiking
  • Fitness Studio

About this page

This page is hosted on github:pages.

It has been built using the following tools:

The source code can be found on github.

Status as of 8 September 2019