In the summer of 2022, which is also the last summer vacation in my college life, I worked at Yahoo as a DevOps intern for 8 weeks in Taipei, Taiwan.
I was on the same team as the people that interviewed me, which is the production engineering team of the WebSearch org. I had no idea what was “production engineer” before then, in fact I’d never heard of it. My mentor told me that production engineer is the layer between SWE and SRE, which I could not really experience myself, because I never got to be involved in the real production work of the FTEs.
The interview - in hindsight
There are 2 technical and 1 behavioral interview. You can also read about the interview in 2022 Internship Hunt.
The 1st technical interview was about some systems and networking knowledge. The interviewer, who became my mentor afterward, asked me about many common commands. They were pretty basic, but at that time, with only some WSL experience, I didn’t even know about top
, man
, ln -s
, etc. I was only able to answer about 50% of the questions, but if I was given those questions a few months later, I would have been able to answer 90% of them.
The 2nd technical interview had 2 sections. The first was about some open-ended questions. For example, I was asked about how to apply some configs to thousands of machines, and then he followed up on what if there were errors? How to make sure all the configs are successfully applied? etc. I was also asked a more behavioral question, which was, what if I was leading a team and I was facing pressure from the upper level about a tight deadline? And I had to discuss some tradeoffs about quality vs. meeting the deadline. I did my best to fill the interview with bs, because that was the best I could do. I do not think I did very well on those open-ended questions. My mentor, Albert, however, was always very patient, engaging and encouraging. You really cannot find a better interviewer.
The second section was some live Python coding. It was 10 very easy questions, but I need to complete them within 20 minutes. The interviewer told me that I was expected to complete 5, but I only managed to finish 4 due to some trouble handling corner cases in one of the questions. However, I was still given the chance to walk through all of the problems including those I didn’t even have a chance to look at before, and I did a pretty good job explaining how to solve those problems. As I said, those are very easy questions, LC easy level, so you can come up with a solution within seconds.
The behavioral round was pretty laid back. It was more like a get-to-know meeting, and the behavioral questions asked were all pretty lightweight and easy to answer.
The overall interview experience is the best among all of the interviews I’ve ever experienced to this date, intern or full-time. The process is clear and transparent, the interviewers are engaging, and the questions asked are of high quality.
The intern project
I was only assigned an intern project for the 8-week program, and the project, at least in its initial state, was so tiny and easy. It was about using Python to fetch some incident data from the internal ServiceNow, doing some parsing, and then insert to Google Sheets, with the script being run by Yahoo’s CI tool called Screwdriver as a cronjob. I literally meet the initial specs of the project before the start of the 2nd week, and I spent 2 or 3 days in my first-week onboarding and touring around the office.
I finished it so fast, not only because it was so tiny, but also for the hope that I could get into the real production work once I finish this stupid intern project. I was wrong. Instead of doing some DevOps and sharpening my systems and networking skills, I was asked to integrate, guess what, MACHINE LEARNING, into the project. Really??? If I want to do ML stuff, I would have applied to the ML role, not this DevOps role.
But anyway, I sucked it up, and started to slack. You can’t really call me slacking because there was really not much to do. For the rest of the 7 weeks, or 6 weeks excluding the final presentation and off-boarding week, I basically just copied the code from the 1st homework in a machine learning course I took the semester before, altered it a bit, and then trained with Yahoo’s incident data. The result was pretty bad, and I couldn’t find a way to fix it either. I don’t really think it’s my fault since the data were classified manually without a clear guideline, maybe it was just not possible to effectively predict the future using those data, but who knows, I’m no ML master. Maybe I just suck.
I found it really hard to enjoy this project, and I was in shame when doing the final presentation because other people’s projects all seemed to be pretty awesome, but also kind of didn’t care because I had stopped caring since knowing that I wouldn’t be involved in real production work.
When my mentors talked to me about the importance of the intern project presentation and how to look good, I was like okay sure but why should I care? Was there a bonus if I did well? Did it affect the chance of my return offer? Would I get anything meaningful if my presentation was so good?
The office
The office kind of left me in shock initially tbh. I visited Google Taiwan in Taipei 101 years ago, and Yahoo is actually pretty comparable to what I saw then. The lobby floor is big and wide with a coffee shop, some very nice seats, some small entertainment facilities like table tennis, foosball table, darts, etc., and awesome meeting rooms. There is even a studio! I actually didn’t know there was a thing called Yahoo TV until an HR told us during the tour. (It’s quite good actually, with a wide variety of very relevant shows, for free.)
The actual office area where people work is also fantastic. Each seat is very wide and comfortable with one or two monitors (1 ultrawide & 1 portrait is a common setup) on the desk. There are several beverage & coffee machines on every floor with some public cups for you to use. (Those FTEs obviously have their own cups tho.)
The building it’s in forbids cooking, so the lunch is offered through lunchboxes. That may sound lame, but actually, there are like 4 or 5 different lunchboxes for you to choose from every day, which varies from super healthy one to burger and fries π
The culture
The culture of Yahoo is awesome. Even though I was just an intern and my experience was limited, from what I observed, it is very laid back. It is also very generous about everything aside from the TC. Interns enjoy basically everything FTEs have as long as it happens in our tenure. The latest MacBook, the summer party, the WFH payments, everything. It may not be anything phenomenal when compared to other US companies since they are probably all like that, but you’ll come to miss it the moment you step into an eastern Asian company (let it be Taiwan, South Korea or Japan).
I am having very serious nostalgia writing this while interning at LINE, a Japanese company of South Korean origin extremely popular in Taiwan. Can’t get a worse combination can you?
The internal systems
Yahoo’s internal systems are really good. The only internship I had before was at a tiny startup, which has zero internal tools. Hell they even have their codebase directly on GitLab without self-hosting it! So when I discovered Yahoo’s internal systems, my mind was kind of blown.
The coolest thing is probably Yubikey. It’s a small USB on your computer, and when you touch a little metal strip on it, it will generate a unique code, allowing you to access some internal systems. There is also a short URL service, as long as you’re in the company network, just type yo/mama
and you’ll be redirected to the internal page you want to access, which is super convenient.
A little complaint would be, they seemed to love using Google docs, at least for the people on my team, even though there was Confluence available. Confluence is pretty bad, but at least it’s a complete documentation system, whereas Google Docs is just a bunch of loosely connected if not unconnected pages. I still think hierarchy works best for a documentation or note-taking system.
Development-wise, the only tools I touched are ServiceNow, CKMS (central key management system), and Screwdriver. I’ve never used anything like the first 2 tools so I can’t comment about them, but I think Screwdriver is a pretty decent CI tool. It is better than Drone CI for sure. I know they use Kubernetes (as everyone else does), but I don’t know what tool they use since I was only in my own tiny intern project.
About being a production engineer
Even though I was not directly involved in the work of the production engineering team, I did attend the weekly team meeting. It seems to me that all they do are operation stuff, like solving some incidents. If they do really do DevOps things like using Python for automating some things, then it must only be a tiny and insignificant portion of their work.
I am not sure that I will want to dedicate myself to a lifetime of ops. I think 1 or 2 years once in a while would be fine, but I still prefer software development as my main route.
Overall
Everything about Yahoo is great, except the TC, especially in Taiwan. I’ve heard that the new grad TC in the US is like 150k. Not comparable to FAANG-adjacent, but still very good money. In Taiwan however, the new grad BS TC is only 1M NTD, which is π₯π₯
Shame π
The interns here are pretty well treated however. They get the latest equipments, and are paid at the market rate of internships in Taiwan (much less than Google and HFTs but on par with Amazon, Microsoft, and other good companies).