Internship report Stephanie

“It’s always great when the code works at the first time of asking. ”

Stephanie, computer science student, ETH Zürich


PDF Tools is a good place if you’re interested in systems software development because, unlike other companies, they still write a lot of the basic code themselves.

I would recommend the internship to anyone who wants to gain some initial work experience in this area and familiarize themselves with the day-to-day activities of a software developer.


Who am I and why did I want to do an internship?

My name is Stephanie, I’m 24, and I am at the end of my bachelor’s degree in computer science at ETH.

Instead of going on to do a master’s degree straight away, I was keen to collect some more practical experience first. I had the opportunity a while back to do a four-month internship and I really enjoyed it. That’s why I decided to do another one.

How did I find PDF Tools AG? Why did I choose PDF Tools AG?

I saw an advert in VISIONEN, the magazine for computer science students at ETH Zurich, and went straight to the website. The internship reports I read there sounded very promising. I also got the impression that the things that are important to me are also important at PDF Tools. And when I read that you get the chance to learn about software development from the bottom up, I was intrigued.

How did I secure the internship?

I was invited to an interview not long after sending off my application. There, we briefly talked about why I applied, who PDF Tools is, what they work on and with, and which programming languages I already had some experience with. Two interesting projects were then proposed to me to choose between.

What does a day in the life of an intern look like?

You’re given your own project to focus on. In my project, I worked with WPF, C#, and SQLite to display statistics in a GUI.

At the start, you meet up with your supervisor once a week. Over time, you’re given more independence and only contact your supervisor to clarify any open questions. Depending on the subject area, you can also approach other team members if you have any questions. Work steps are documented in Azure DevOps with requirements and tasks. A brief meeting takes place every morning where colleagues explain what they’re currently working on, and if necessary they can also share the current status of their work.

A lot of time is spent on debugging code, reading documentation, and searching for bugs. You first need to understand the task properly and find the right solution. You then search for the most suitable approach in the documentation and implement it. This then also includes writing tests. These can be unit or integration tests, or even manual tests, depending on which type is most appropriate. My project was part of a product. We therefore had to invest a bit of time into checking that it could be integrated smoothly into the product and not impair functionality or performance.

On a couple of occasions, I also prepared small presentations on open issues and to get ideas and input for design decisions at meetings.

What did I learn during my internship?

I got the chance to collect more practical experience and see what works well and what doesn’t work so well in practice. You can gain more confidence when it comes to tackling new tasks and problems. You also get the opportunity to work alone and with others, and learn how to approach colleagues when you have questions or find yourself getting stuck.

Personal highlight

I was delighted when the Graph Control, which I programmed myself using WPF and C#, displayed curves after being fed randomly generated values.

Further internship reports


Marc, computer science student, UZH Zurich


Livio, computer science student, ETH Zurich


Florian, computer science student, ETH Zurich


Christian, computer science student, ETH Zurich