Welcome Welcome
Hey, I'm Johannes Bergmann

What I've done so far

Algorithm SW Integration and Simulator Development Engineer
Copenhagen, Denmark, Since 2019

Fingerprints is an exciting company to work for. We make top-of-the-line fingerprint sensors and biometric identification software that goes into many different products, you might even be using one of our sensors in your smartphone right now.

What makes Fingerprints so special – apart from working on cutting-edge technology – is that you are part of a team of highly educated and exceptionally talented people who value quality while still getting things done quickly.

Systems Engineer (Software)
Christchurch, New Zealand, 2014 - 2018

Straight after finishing my degree I moved to New Zealand and took on the opportunity to work in the medical industry. The hugely diverse role combined with a phenomenal team and the breathtaking nature down under created a highly stimulating environment for me.

As a key connection between departments, my role covered a wide variety of responsibilities, from turning marketing and regulatory requirements into inputs for hardware and software teams, over safety risk analysis and the design of software architecture, all the way to leading automated testing at a systems level. I also had the opportunity to develop various tools for automating workflow as well as taking care of the maintenance of company-internal application servers.

The experience of moving overseas and getting so much support, love and trust as a foreigner has been deeply humbling for me and I will always cherish my time in New Zealand.

M.Sc. Electrical Engineering and Information Technology
Munich, Germany, 2011 - 2013

I continued my studies at the university to dig deeper into the topics that interested me the most, such as IT infrastructure, advanced signal processing, embedded systems and IoT.

The most challenging but also most insightful period for me was the work on neural networks during my thesis. My goal was to significantly reduce the time it takes to train large networks that use special memory cells (LSTM). By re-designing the algorithm for execution on multi-core architectures, I managed to reduce the time it takes to train such networks by a factor of 60 on a low-cost consumer graphics card compared to the C++ reference implementation. The project is open source and can be found on Sourceforge.

My final project taught me the importance of having clear requirements and that those requirements are subject to change throughout the project. This made me realize how valuable it is to get regular feedback from your customer from the beginning.

Working Student in Embedded Software Engineering
Poing, Germany, 2009 - 2013

To get some hands-on engineering experience, I started working part-time within a team of embedded software engineers in the large-scale digital printing industry. I was fortunate enough to have some of the most brilliant people mentoring me whilst getting familiar with some of the most sophisticated technologies in the field.

The key focus of my work was to extend, test and debug a TCP/IP-based communication system for Windows, Linux and QNX-based embedded systems. Later, I also took on the development of web-based debugging and development tools as well as the design and implementation of drivers for interfacing printer device controls via CANopen.

Getting my hands dirty with practical engineering work turned out to be the perfect complement to the abstract theory at university. Even though taking on a part-time job in addition to a full-time degree proved difficult at times, it always kept me motivated during challenging times at the university.

B.Sc. Electrical Engineering and Information Technology
Munich, Germany, 2008 - 2011

Moving to Munich and studying my passion for software and electronics represents one of the most exciting chapters of my life. Motivated and challenged by incredible professors, I was amazed by how far I can push my limits for taking in new theories and concepts. It showed me how important is it for me to follow my passions.

In order to get out of my comfort zone and to take on new challenges, I started tutoring fellow students by giving programming and physics lessons. Apart from getting comfortable speaking in front of a larger audience, this experience taught me how different everyone's approach to solving the same problem can be. This particular insight made me realize how important it is to keep an open mind because a different approach may be better than my own.

What I'm passionate about

Electronics
Electronics, software and IT

Technology has always been my biggest passion. I still remember getting my first electronics kit as a child and how mad my dad got when I took his computer apart and gave some extension cards to my neighbours.

Today, I enjoy setting up build systems and writing software around IP communication and Bluetooth in a variety of languages as much as setting up home servers and running my VPS. I love getting into the nitty-gritty details of Linux, programming languages and microcontrollers that I use in my electronics projects. There is always something new and exciting to discover and play with.

Travelling
Travelling and being in nature

I love travelling around the world to experience different cultures, take in breathtaking landscapes and enjoy the company of odd and unfamiliar animals.

As opposed to going on holiday for a couple of weeks, I prefer to stay at one place for a longer period to be able to get a sense of the locals' everyday life. Experiencing the Balinese spiritual life or the Kiwis' outdoorsy lifestyle changed my believes and values and made me re-evaluate my own role in this world.

I see travelling as an important part to developing my personality. It puts things into perspective. It humbles me to realize how fortunate we are to live in such a beautiful and exciting world.

Yoga
Ashtanga Yoga

Yoga is something I discovered by accident. I was looking for something to balance out my various physical activities and tried a yoga class at my local gym. This was the first time in my life that I felt how sweet a silent mind feels. I was hooked.

Two years later I started looking for a style of yoga that I could practice on my own, so I went to India to learn Ashtanga Yoga. Ashtanga Yoga is a very intense practice, both physically and mentally. Constantly getting up early in the morning five to six days a week and working with my body has taught me many important lessons, such as accepting things the way they are and being persistent when it comes to achieving goals in life.

What I stand for

Embrace change
Embrace change

The only thing that is certain is change. Especially the technology we have today evolves at an incredible pace — hardware, software, languages and frameworks that we use today may be totally different a few years from now.

For us, the people inventing and utilizing this technology, that constant change is both challenging and rewarding. The challenge is to keep our knowledge up to date, to have an open mindset about new approaches to existing problems and to know when and when not to introduce change in our products or in the way we develop them. The reward is that our professional life is hardly ever monotonous; we often have a chance to learn something new.

We are not infallible, sometimes we get things wrong and that's OK. Embracing change does not mean always going forward technologically speaking. Sometimes embracing change means having the courage to change back to how things were.

Never stop learning
Never stop learning

The world we live in moves faster and faster every day. For example, look at how mobile phones evolved over the past twenty years or what the internet is today. Along with this ever-increasing complexity comes new technology and tools to handle it.

You can put a screw into the wall with a hammer. It will probably hold. You can also write your GUI application in assembler. It will probably be fast. Just because you can do those things doesn't mean that it's always a good idea. The problem is, if we don't know about the appropriate tool for the job, we simply can't use it. This is where we need to keep learning in order to stay up to date.

Keep trying anyway
Keep trying anyway

Persistence is important, don't give up prematurely. This is a lesson I learnt from my yoga practice. In Ashtanga yoga, you work on the same poses and transitions every day. Particularly challenging asanas can take years or a lifetime to master. No matter what, you keep trying. Maybe you need to pay more attention to some detail in one of the previous poses, or maybe you need to change the way you approach the pose in your mind. Little by little it becomes easier and one day everything falls into place and you've conquered the pose.

This attitude goes a long way in helping you succeed in many aspects of life. What seems impossible at first can become achievable if you consistently put some effort towards it, even if it's just a tiny amount each day.

Connect with me