To get a job as an engineer, you would have to pass the coding interview. We found AlgoMonster to be a great resource to prepare for interviews.
This week we spoke with Thomas, who is originally from Heidelberg, Germany and is currently working in Berlin as a Data Engineer. He shares his experience of finding a job as a Data Engineer and gives very valuable advice on how to look for jobs in this field in Germany, what the interview process is like, how to prepare for the different interview rounds and things to keep in mind during your job search.
📬 Get the latest India2Germany articles via email 📨
Welcome Thomas 👋. Could you tell us a bit about yourself?
I'm a Berlin-based Data Engineer (originally from the south of Germany, Heidelberg) and have worked in Data Engineering for two years. My professional training was in Physics and after finishing my Masters, I decided against a PhD and started working in IT. I already gained some basic programming, data science/modeling and data processing skills during my physics studies and in student trainee jobs during my studies. But I would say I have been learning most of the necessary skills for my job continuously on the job and through self-education in my free time. I would characterize myself as a Data Engineer with a strong interest in Data Science and Machine Learning.
What does your company do and what is your role within the company?
I'm working for a B2C and B2B TV streaming company in a cross-functional team of Business Analysts, Machine Learning Engineers and Data Engineers. My team is responsible for providing essentially all analytical insights and data to various stakeholders in the company and to clients as well. We are an international team and the working language in the company as well as in our team is English.
What does a typical day as Data Engineer look like?
We follow a one week sprint rhythm and start the week with sprint planning. The weekly sprint planning includes adhoc tasks, items from our backlog, as well as items from our quarterly roadmap, which represent our ongoing long-term projects. Due to the COVID-induced shift to home office, we are also trying out different formats to stay in touch during the sprint, such as a mid-week sprint sync,but we currently don't have a daily standup. The main communication channels, mostly via Slack and video calls if needed, are so far sufficient for us. My typical work day is a mixture of deep work on my own but also a decent amount of collaboration through slack channels and about 1-2 video calls per day with members of my own team but also often enough with people from other teams of the company. I'm not directly in contact with clients.
How did you find your job as Data Engineer?
I was mostly looking for Data Engineering jobs in Berlin's startup scene (with a focus on international and diverse teams) and apart from that was only considering a few fully remote positions. Therefore my main sources for the job search were:
- the monthly 'Who is hiring' thread on Hacker News (https://news.ycombinator.com)
- as well as personal referrals.
What is the interview process for data engineering positions like?
My experience across interview processes was that the first step is either a short personal call with a recruiter/HR person or the company just sends you a coding challenge as the very first interaction (I'm not a fan of the latter and didn't engage often in those kinds of processes). Afterwards, the next step is usually a longer call with the hiring manager or a technical person with a focus on getting a general picture of your professional profile and goals, but also personality. Many companies I interviewed with shared a coding challenge after this step. After the coding challenge comes an on-site visit, which was due to Covid usually held as a (half) day full of video calls with different people of the company. This involved technical calls with questions on system design, general questions about data engineering procedures and often quite generally how to approach a relatively high-level technical problem. Apart from that there were behavioural interviews which focus on figuring out how one collaborates and tackles issues. Often questions were asked about how one handled conflict in previous positions or what are ones techniques in dealing with deadlines and also ambiguity. If successful, the last step is then an offer and the subsequent contract negotiaton.
How can one prepare for data engineering interviews?
For the technical interviews I always asked in advance what the focus of the session will be, to be able to adjust my expectations and prepare - if needed - accordingly.
For system design sessions I worked a lot with:
- Grokking the system design interview course and
- the channel of Guarav Sen: https://www.youtube.com/channel/UCRPMAqdtSgd0Ipeef7iFsKw
For data engineering specifically I found the following to be great resources:
- the 'manifesto' on functional data engineering from Airflow founder Maxime Beauchemin: https://medium.com/@maximebeauchemin/functional-data-engineering-a-modern-paradigm-for-batch-data-processing-2327ec32c42a
For salary negotiations I generally recommend:
I would also generally recommend to apply for all jobs that you find exciting, even if the job description demands an experience or technical requirements above your current level/knowledge.
What would be your suggestion to people looking to find a job as DataEngineer?
Try to apply to as many jobs as possible, as long as the job actually sounds interesting to you. It will help you practice interviewing (it's also just a skill) and will help you in figuring out for yourself what different kind of companies, cultures and roles are out there and which one works best for you. Before even starting the application process I would suggest to:
- figure out based on your current knowledge which roles and next career steps are you excited about and looking for
- prepare a standard short professional introduction of yourself which is related to your next career steps and how you want to develop further
- also according to your goals, formulate concrete questions about things that matter to you in your next role: whether it's involvement in decision making, team structure, emphasis on a particular work culture, personal growth support, etc.
I would also generally recommend to apply for all jobs that you find exciting, even if the job description demands an experience or technical requirements above your current level/knowledge. Job descriptions are often just a wishlist of properties of an ideal imaginary candidate and often enough companies also adjust the job requirements for candidates they consider promising.
We'd love to hear what you think. Write to us at firstname.lastname@example.org and don't forget to subscribe to our newsletter! 👇
Join the newsletter to receive the latest updates in your inbox.