Tell us about your background and how you ended up in your current position at Twitch?
I studied at the University of Paderborn and did an exchange semester at the University of Oklahoma, where I ended up doing my Master's as well. After graduating from the University of Oklahoma, I was looking for job opportunities in the US, particularly along the West Coast, as there are many IT jobs in California and Washington. I finally landed a software developer job at Amazon Web Services (AWS), working on tools for their sales department for about a year and a half before I switched internally to Twitch.
In my current position in the developer experience department, I build tools to integrate third-party developers into Twitch's infrastructure. It enables developers to integrate with Twitch's architecture and also offers some front-end specific services, which then interact with data provided by third parties. Take Twitch's bulk import of game data as an example: Game publishers send data every second for every game and every player, Twitch handles that data to enhance streams by providing more information about the streamers and the games they're playing right now. So the statistics and information around the game, which is usually only available for streamers or the players, can be made available for the viewers as well.
What were the major career decisions that led you here, and how did you make those decisions?
So the first main decision was moving to Seattle to work for Amazon. As Amazon is such a big company, you get a lot of exposure to different tools. Furthermore, with roughly 50,000 employees in Seattle alone, you're exposed to many different teams and projects. So starting at Amazon was a relatively easy decision for me to make. Even if you start with a team or project that you're not quite fond of, you get to learn many things, which can then help you to land another job internally or somewhere else.
The second major decision was to move from AWS to Twitch, which I did because I wanted to get more personal contact with customers and be closer to the product. It was a bit of readjustment, as you don't only have the typical one-to-one interaction with customers. For example, we had blog posts announcing new features, and we interacted and sat in meetings with developers to discuss what they envisioned - that helped me a lot in getting a feel for the product. On top of that, it also reassures you about the importance of your work.
How did you make that internal transition?
I networked and looked out for internal announcements. I basically reached out to the manager and said, "Hey, I'm interested in what you're doing." and set up a coffee chat with her to talk about opportunities available on her team. Then at some point, I formalized the transition process through an official interview process. I met with different team members to determine if I was a good fit, and if I had the necessary knowledge for the role. I think that the whole process of having a coffee chat with the manager and having the interview took me about five weeks.
What does your typical day or week look like?
As a software development engineer, I wouldn't say there's a typical day or week, so it might be better to focus on what a typical project looks like. At the beginning of a project, you work on taking the product specifications that your product manager has built with their team and turn it into a technical specification document. The process of building out the necessary infrastructure requirements for the product takes about three weeks, you're writing and designing documents, so there's very little coding involved.
After multiple discussions with the teams, you build the design and get some feedback on it. Once the design is finalized, you go ahead and build it. Compared to the initial idea, the end product can look slightly different as well, as changes are made all the time due to design or product issues that pop up. But that's what makes it an agile environment. The coding process usually takes two months, and you end up with a "minimum viable product" (MVP) solution. We present it to the teams and build experiments around it. The launch itself can take a lot of hand-holding with other developers to make sure new integrations are used correctly.
What makes Amazon or Twitch a good employer for you?
The most interesting thing for me is the people; everyone has a very different and interesting mindset. They're very involved with what they're building and are excited about it. I can go to Twitch Chat right now, and people would recognize me as a staff member because of my icon. People are excited to be a part of that community as well, you're not only a developer, but you're also a consumer. Connecting with the community and your colleagues is quite easy.
The workplace environment is really nice too. You have lunch provided every day, making it so easy to sit together and interact with other people. While working, it's not like you're on your own and coding the whole time. You get to work with many people and get feedback on it. People are genuinely interested in what you're working on, which I genuinely appreciate.
What qualities does someone need to succeed in this role?
The ability to understanding certain design patterns is crucial. What you'll be given in a project is a blank text document with a vision of a product, and you have to translate that into a working product. You also need to be a team player because you're never building a product on your own. On average, I'd say that there are probably three different teams involved in a project, so it's not possible to build the whole thing without talking to anybody. 60 to 70% of the time, you'll be coding the software - so your coding skills need to be effective as well. Lastly, the ability to get stuff done is definitely a requirement.
Do people need to have a computer science background?
I have studied computer science, and sure it's helped me. But there are many other ways to become a software development engineer. I would say that having extensive coding experience is important if you don't have a degree. We have a couple of people in the team who don't have a computer science degree but who've worked in the programming industry for quite a couple of years. So a degree is not a necessity. But if you apply for entry-level jobs without a degree, it will certainly be difficult.
What's the most fascinating thing about your job?
I think the highlight for everyone is TwitchCon, which happens every year in San Diego. It's a convention-style conference where team members interact with the viewers and broadcasters. You get their feedback and listen to what they're excited for. One of my highlights was when the feature I was working on got announced during the TwitchCon, and the whole crowd got really excited about it.
What challenges do you face in your position?
I think the biggest challenge is building a product with many other people. For one, the communication between individuals or teams can be a hurdle. Secondly, knowing that many other teams are depending on your work and the fear that you might become a potential burden for others, and not just for your team can be challenging. So, you always have to keep the bigger picture in mind and do your best.
What's a common misconception people have about your position or industry?
One misconception is that as a software developer, we all code in our basement and never socialize with anybody. And the other misconception is that we are a bunch of nerds. Although, that's probably not really a misconception as we have gaming rooms, and after work, you can find people in the gaming rooms and having fun.
What advice would you give someone trying to break into your industry to become a software development engineer?
Knowing the fundamentals of coding is very important, especially since things are going to change every two years or so. The willingness to learn something new and to keep educating yourself is important. Also, don't be shy - network and reach out to someone and be like, "Hey, I'm interested in what you're doing. Can we chat for 30 minutes or so?" That's honestly the most simple thing you can do. I'm usually happy to talk about what I'm doing, and during my three years at Amazon and Twitch, I've never met anybody who wasn't happy to do the same. So, take a leap and start talking to people.
Any specific advice for getting a job at Amazon?
There's a bunch of information on the internet like case studies, interview questions, and so forth. Do your research about the job and the company and prepare yourself properly.
Since you live in the US, do you have any advice for people who are considering moving to start the career there?
The major issue is the visa situation. You need a work visa to land a job in the US, which needs to be sponsored by your employer. If your employer wants you on their team, they'll fill it out for you. So, you don't need a visa before you apply for certain jobs. There are also many job opportunities where they offer other alternatives for non-US citizens. But most of the time, you'll find these kinds of offers at bigger companies because it's a financial burden for smaller companies to sponsor you. So, if you're looking for jobs at Boeing, Microsoft, Google, or Facebook - go ahead as all of them will sponsor you. It might be difficult, but if you really want it, it'll be worth the effort.