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
-
- Name
- Per Bernhardt
- Born on
- 27 April 1984, Siegburg, Germany
- Gender
- male
- Nationality
- German
- Address
- Rotdornweg 15
53177 Bonn
Germany
- Phone
- +4916094949894
- Email
- info@perprogramming.de
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
- 2013
- 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
- Entrepreneur
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
- 2000
- Trainer
Forum Neunkirchen, Neunkirchen-Seelscheid, Germany
Preparation and implementation of computer training classes for children aged 4 to 12 years
Skills
- Methodologies
-
- Infrastructure As Code
- Containers
- Continuous Integration & Delivery
- Cloud Computing
- Software Engineering
- Test Automatisation
- Lean & Agile Development
- Web Development
- Techniques
-
- Application Frameworks
- Object-Relational Mapping (ORM)
- HTTP
- Web Caching
- REST
- API Development
- SQL
- CSS
- OAuth
- Scrum
- Kanban
- Tools
-
- 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
-
Education
- 2013
- 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
- AngularJS-Workshop
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
Speaker
- 2017
- 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.
https://www.slideshare.net/perprogramming/magazinrelaunch-bei-chefkoch
- 2016
- Contract Tests mit Pact
Microservice Meetup, Bonn
This talk shows how Contract Testing with Pact eases microservice development.
https://www.slideshare.net/perprogramming/contract-tests-mit-pact
- 2016
- 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).
https://www.slideshare.net/perprogramming/chefkoch-goes-drupal8
- 2016
- 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.
https://www.slideshare.net/perprogramming/umzug-eines-hochlastdienstes
- 2016
- kubernetes @ Chefkoch.de
Kubernetes Meetup, Cologne
A talk on how we introduced Docker & Kubernetes at Chefkoch.
https://www.slideshare.net/perprogramming/kubernetes-chefkochde-kubernetes-meetup-cologne
- 2015
- Kubernetes: Wie Chefkoch.de mit Containern arbeitet
Symfony Live 2015, Berlin
A talk on how we introduced Docker & Kubernetes at Chefkoch.
https://www.slideshare.net/perprogramming/kubernetes-wie-chefkochde-mit-containern-arbeitet
- 2015
- Microservice-Teststrategie mit Symfony2
Code Talks 2015, Hamburg
Talk on how to apply a teststrategy on microservices in PHP / Symfony2.
https://www.slideshare.net/perprogramming/microservice-teststrategie-mit-symfony2
- 2014
- Continuous Integration & Delivery with Bamboo
Chefkoch GmbH, Bonn
A short introduction to Continuous Integration and Continuous Delivery with Bamboo.
https://www.slideshare.net/perprogramming/bamboo-32118880
- 2014
- Application Layer in PHP
Symfony User Group, Cologne
Talk on a possible way to implement "Layered Architecture" (Martin Fowler) in PHP / Symfony2.
https://www.slideshare.net/perprogramming/application-layer-33335917
- 2013
- Anwendungsintegration mit Edge Side Includes
Symfony User Group, Cologne
Talk on how to integrate different applications on HTTP level using Edge Side Includes
https://www.slideshare.net/perprogramming/anwendungsintegration-mit-edge-side-includes-29350496
Miscellaneous
- Languages
-
- German (native)
- English (fluent)
- Interests
-
- 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.