How I Landed a Tech Job in Berlin
A guide to understanding what technology to focus on.
I have been working as a Software Developer for the last 5 years, out of which I spent a year and a half in Berlin. Like many developers out there, moving abroad for work is a dream and most people materialize their dream by pursuing a Masters's degree in another country and work from there.
For me, the story was a little different. I did not want to study further due to my lack of interest in the typical education process.
Moving abroad is not a big deal for many but for me, it was a dream. Since childhood, the dream of moving out of the country and living abroad inspired me, and somewhere in my head, I knew I would make it one way or another.
But Wait, Let me Backtrack
It all started after I finished my B.Tech in 2015. The year of finally applying all the knowledge gained in the last 18–20 years. It was my first time being an employee getting professional development training and email writing sessions.
Working at my first job was so much fun, and I met a lot of nice people. Office parties, celebrating for something we did not even know we achieved, but who says no to a party?
After almost 8 months of working there, I realized that I was not getting enough knowledge from the work I was doing. It had become a little bit of a routine and I hate routine just like many others. I decided to switch. I started preparing.
While I was looking for resources to study, I bumped into this book named Cracking the Coding Interview. As a newcomer, I did not have much experience with giving interviews. Reading the book helped me understand a lot about giving interviews and what interviewers expect.
My primary focus was to study content that I skipped during my college. I got the books for the courses and read them to make my background strong.
I applied to a lot of companies, I got replies from a few of them, and eventually gave interviews and got a job.
The new environment was totally making me feel proud and I felt super nice. It was a turning point in my life. I was working on technologies and platforms that I had never heard of. I was getting chances to work in different programming languages. I worked on Android and Backend development.
I got opportunities to get exposed to people from all around the world. I worked on different projects with different teams and in different cities.
But as we all know that change in life is the only constant. I decided to move on.
This was the time when I decided to apply abroad. I started looking up jobs on LinkedIn, Glassdoor, and other platforms. I narrowed down my job search to cities where I had some connections. Which further narrowed it down to Berlin. My initial idea was to apply to startups and work my way from there.
I started preparing.
I focused on three things:
Coding and Data Structures
When you are applying for a software developer job, this is something that is quite obvious. You should be able to solve algorithmic problems in the language you are comfortable with. I spent about a week going through simple challenges on HackerRank, solving as many problems as I could. I started small focusing only on the simple problems at first and then going to problems that were moderate.
Architecture Design/Data Modeling
This is one of my favorite parts of the interview process. In my opinion, this one is very important for any developer to learn and understand as a design decision can make or break your app/product, technically speaking. I read tech blogs from Netflix, Airbnb, Spotify, etc. which helped me a lot to understand the problems big startups are facing.
Previous Projects/Technologies Used
This one is very obvious and mostly involves talking in length and breadth about the work that you did. Proving yourself to be a potential teammate. The questions for this section could be either something specific, like a skill on your resume or about a project. And one of the questions could involve asking you about a critical situation from your past projects and what you did to handle that.
Tech Stack to Focus on
A backend engineer would typically focus on:
Service layer: Spring Boot with Kotlin
Database layer: Postgres
Deployment Configuration: Terraform, Docker and Kubernetes
Deployment: Knowledge of AWS or any other cloud provider.
After getting responses from several companies, they send out a take-home coding challenge and you get 2 days to finish that in general. One of the problem statements could be the following.
“We would like to have a restful API for our statistics. Create API is to calculate real-time statistics from the last 60 seconds. This API is called every time a transaction is made. It is also the sole input of this rest API. And another API to return all the transactions for a certain period”
The solution to this is here.
After the submission of the coding challenge and cracking it, a few interviews are scheduled. One thing that I always do is that I read about the company and the work they are doing. I look at their blog posts to get updated on the company’s recent advances.
There is a series of interview rounds, starting from technical rounds that are focused more on the coding challenge submission.
After that, there are cultural rounds and general interviews with maybe the CTO or VP of the company. All the interviews can occur in a single day or can span across several days depending on the availability of the interviewers.
This is how a general interview process looks for many companies here in Berlin.
I had given many interviews before I came here. It definitely is not easy and a lot of prep is required. But if you are willing to put in all your efforts, it certainly is worth it.