Context and recruiting

In the summer of 2018, I was a software engineer intern at Twitter London, in the Media Client Infrastructure team. The hiring process began with my application on the Twitter website; after that, they sent a coding challenge which involves 2 quite easy algorithmic questions and a SQL question. After solving these questions and submitting them, nothing happened for around 3 months. Suddenly, I got an email from Twitter’s HR that they want to proceed to the next stage with my application, which was a semi-technical discussion with the team manager, Johannes Totz and it was amazing: we spoke about Machine Learning, Signal Processing, Data Structures, what the team does and which are the challenges they are facing, etc. We didn’t dive into a very technical discussion as my knowledge on all the areas mentioned above is very limited.

Following this, I had a technical (coding) interview with the man who became my mentor and taught me with great patience and shared with me a lot of knowledge about video engineering and iOS development, Yordan Chaparov. He gave me a coding problem which was not very hard but required clean coding and thinking about the edge cases. Finally, I had another interview with Johannes and after that, I got the formal offer. Twitter was very flexible in terms of start and end date and it was very suitable for me, as I could take a break after University.

Overall the hiring process was interesting but there are clear improvements that can be made on the HR size in terms of response time.

Magic Pony

Was a London based start-up, founded by Zehan Wang and Rob Bishop which consisted of highly skilled engineers and researchers, with PhDs and important contributions in Machine Learning, Computer Vision, Video Encoding. Their product was able to perform image and video super-resolution using GANs and brought impressive innovations into this area.

In 2016 Magic Pony was acquired by Twitter and the “ponies” have a great impact over the whole product, especially on the Machine Learning and video sides.

The beginning of the story

I started the internship in the middle of June and I can remember very well the first day: I was confused by the London tube and as I lived close to the Bank station, I took the Central Line from Bank to Oxford Street, which is very busy and warm during summer, and then I had to walk the Regent Street, which I still find impressive and it is one of my favorite places in London, to reach the office. However, I feel that the office is slightly too central and it is very expensive to live nearby and I am not a huge fan of the London tube. Regent Street The office is very central and Twitter has 2 floors of the building, which also have showers, parking, bike racks and lockers, which makes it a very comfortable place, especially if you like working out in the morning. Besides that, Twitter provides breakfast, lunch, snacks and beverages for its employees and the food is amazing (shoutout to JustEatMyTweet). On the first day, I got to meet my team and my mentor and I got a brief description of what the team does and what will be the project I will be working on, alongside the set-up for my laptop and the security and privacy trainings. In the first couple of weeks, I got great materials and tutorials from the team and they spend a lot of time with me, teaching me the basics of the video streaming and how the mobile client works. This made me very interested in video engineering and I feel that their contribution is priceless for my professional path; thanks a lot Sebastian van Leuven, Yordan, Johannes, Alejandro.

Internship work

After getting a brief understanding of the tools and technologies used by my team, I was assigned to some very simple tickets, just to learn better the codebase, the development process and how engineering works at Twitter. This helped me a lot, as I got reviews and suggestions from very experienced and smart video and iOS engineers (shoutout to Fabián Cañas, Patrick Nixon, Nolan O’Brien, Geraint Davies, Kamal Taouabit), especially as I didn’t have prior experience in working in a large company or a distributed team.

My project was to improve the performance of the short looping videos, on the Twitter iOS app. For this, I needed a good understanding and hands-on experience with AVFoundation, Apple’s video player, and the Twitter iOS video frameworks. Among the technologies used, Charles proxy was very useful to check the video segments played by the player and it is very friendly for mobile usage.

I think that the most important gains from this project, besides the technical learning outcomes mentioned above, alongside dogfooding, A/B testing, learning Objective C and Swift, is that I understood the role of each development practice used and how those steps are needed to deliver the best product possible for our customers. After this experience, I find plenty of value in following the good practices for the development and I discovered how many technologies and stats and metrics are used for a product at this scale and I still think this is insane.

Besides that, my team gave me the chance to work on some very interesting open problems, and one of them worth mentioning is improving the bandwidth estimation, which aims to provide a more accurate estimation of the network bandwidth available for the mobile client at this moment. This still is a hard problem but I could try different papers and approaches to test how well our algorithms work and if we can improve them.

In the meetings but also during lunches or just randomly we had chats about different features and parts of our systems, how we can improve them, what may worth trying and this made my knowledge of video engineering wider but also gave me good insights into what other people are working on. Moreover, I was very encouraged to ask everything and any time I had something unclear, Yordan or someone else spent time with me to help me understand and get an intuition on that topic or problem, and I strongly appreciate that especially now, when I understand the impact it had on my development. Finally, Twitter is very flat and even as an intern you can have a great impact and share your ideas and perspectives with highly ranked people and have a real impact, which I think is very difficult in companies at this scale.

Twitter life

The Twitter community is great and friendly, and everything felt very natural in human interactions. In my time there I got into foosball, which was my favorite activity after lunch and in the evenings, after work. Moreover, each Tuesday evening we went to Wembley to play football, some Wednesdays we went to a park to play basketball and there were many other activities such as bouldering, softball, etc. Also, almost every evening we gathered together after work to play Fifa championships and watch World Cup games, which I really enjoyed and helped me getting to know other tweeps.

At breakfast and lunch, people were very friendly and after 2 months I guess I got to know everyone in the office and I was comfortable talking with them. This made me feel that I belong there and I genuinely enjoyed all the time I’ve been there.

Also, each Friday afternoon we have an internal event called “Tea Time” when the amazing Rebecca organizes a thematic party and various people present the impact Twitter has in the world and the interesting stuff they are working on. Besides that, at these events, I’ve met the best storyteller ever, Eleanor who could make any story veeery interesting and engaging.

We also had office events such as picnic, summer party, which improved the friendships and professional cooperations between the tweeps and helped us get to know each other. In my opinion, from the lifestyle and social perspective, Twitter is a great place to work as you can meet very smart and friendly people and find activities which interest you and tweeps who share your interests.

What next?

After this internship, I fell in love with Twitter and video engineering, and I wanted to go and work in the Media Platform team, which deals with the server-side video processing and which is based in Seattle. Based on the good feedback I received from my team, I got a call with Fatih Yildiz who was at that time the manager of the Media Platform team and who became my mentor for the next internship at Twitter, and he was interested in taking me as an intern for the next Spring. Following this, I received an offer to join Twitter Seattle from Apil 2019 to June 2019, and I will share the stories from that period in a future blog post.