How I Landed a Software Engineer Job at Twitter
This is the story of how I landed a job at Twitter as a full-time software program engineer. I’ll share the method I went by means of, how I ready, and why I lastly determined to affix the corporate.
How I began my journey
The sound of my fingers furiously smashing the keys on the keyboard reverberated by means of the evening.
I seemed up from my laptop computer display and glanced in direction of a clock on the wall of a basement condo that I was renting for $600 a month.
It was 2 within the morning.
Now you may suppose that I was writing a piece of software program or hacking away at one thing vital. Why else would I be awake in any other case?
I was making ready for my upcoming technical coding interview utilizing a web site referred to as Leetcode. Fury took over me as a result of I couldn’t reverse a linked checklist, which was rated Easy on the platform (attempt it right here).
How I acquired there
An electronic mail from a Twitter recruiter had arrived a week earlier, asking if I wish to schedule an preliminary cellphone display with one in every of their engineers.
I was excited, but in addition nervous as a result of I had utilized to a software program engineering place at Twitter a few years in the past with out success.
The recruiter had despatched me a complete prep sheet with hyperlinks to observe and brush up on my coding and algorithms abilities.
One of the objects on the guidelines pointed me to leetcode.com (a coding problem web site) and that’s how I ended up coding away on this web site for hours with a view to put together for my technical coding interview.
It wasn’t straightforward making ready for technical interviews. For somebody who has been out of school for a while, it takes a non-trivial period of time to brush up on the abilities and fundamentals required to reach a technical coding interview.
The recruiter explicitly emphasised that our technical interview would focus particularly on technical fundamentals, like maps, binary timber, linked lists, binary search timber, graphs, and so forth.
If I had been beginning out making ready from scratch as we speak, I would attempt to hunt down a rather more structured method in order that I might maximize my preparation time.
This is why I began a personalised teaching course, referred to as Acing The Technical Interview.
This course helps individuals put together for his or her interviews as effectively as attainable to allow them to ace these technical interviews and keep away from the pitfalls and traps I needed to study the arduous method.
Many different engineers have discovered success from the approaches outlined within the course.
I had three years of expertise as a full-stack engineer at a startup, largely with constructing microservices and API improvement on AWS stack.
The stack was closely targeted on PHP, NodeJS, AWS SQS as a message queue, Postgres for our database, and AWS S3 for long-term storage.
I did not have any prior skilled expertise or internship expertise, and the job at the startup was my first “real” software program engineering place.
I had a formal training in laptop science — I graduated from a small, non-public Jesuit school in Washington State in Four years with a bachelor’s diploma in laptop science.
Looking again, I suppose it was a priceless expertise to go to school. If I had been to do it once more, I would nonetheless go for a formal training over a coding Bootcamp. You can watch my video right here for a breakdown of a 4-year diploma in laptop science vs a coding Bootcamp.
I utilized to over 30 totally different corporations, interviewed with 15, acquired rejected by 6, acquired provides from 6, declined 5, and accepted 1. If you’re counting, the mathematics doesn’t line up completely as a result of some corporations ghosted after the onsite.
You can learn extra right here if you happen to’re inquisitive about how I landed provides from top-tier FAANG corporations with out an Ivy League Degree.
How I ready for interviews
I spent nearly all of my time on Leetcode and with a e book referred to as Elements of Programming Interviews (extremely really helpful).
Another useful resource / web site I favored was DailyCodingProblem.com, which sends a coding query a day to your electronic mail. This permits you to get recent new questions on a regular basis.
Prep Time In Total
My preparation time was round a month of constant, uninterrupted observe. It’s crucial to have a constant schedule.
I used to go on coding spurts: three hours of hard-core coding adopted by a week of relaxation. I discovered that to be ineffective and I paid the heavy worth of context switching a number of occasions.
In whole, I spent about three hours a day on weekdays (as a consequence of work), and Four to six hours on weekends for a whole of about ~20 hours a week for a month.
How I utilized to jobs
I utilized to Twitter by means of their job careers web page. In hindsight, it might need been simpler to search out a referral or recruiter on LinkedIn as a result of that will’ve probably expedited the appliance course of.
A well-written resume is crucial, particularly while you’re making use of by means of a web based profession heart. Without this, I don’t suppose I would’ve been capable of get a chance to interview with these top-tier tech corporations.
You can learn extra right here about how I crafted my resume to get hiring managers to note me.
A couple of weeks later, a recruiter lastly reached out to me and wished to schedule an preliminary cellphone display.
Timeline of my utility course of
- Feb 10 2017 — Recruiter reached out to schedule a TPS
- March 8 2017 — Initial TPS
- April 13 2017 — Second TPS
- April 18 2017 — Onsite
- May 2 2017 — Offer prolonged
- May 23 2017 — Twitter confirmed
- July 24th 2017 — official begin date
The first 2 technical cellphone screens concerned coding on a shared on-line doc, like Google Docs. We talked about totally different approaches and tradeoffs, and spent 30+ minutes on the implementation.
After the primary two rounds, I was moved ahead to the following spherical of onsite interviews at Twitter Seattle.
The recruiter then despatched me a hyperlink to a web based coding repository, and requested me to do a code assessment. I wanted to make strategies on find out how to enhance to code, and focus on it with the interviewers onsite.
I took about a day to undergo the code, printed it out on paper (about 5 pages lengthy on 10pt font), and famous areas of enchancment on the paper. This proved to be a helpful train as I would uncover later.
The Onsite Interview
The onsite had three rounds in whole with a lunch sandwiched in between (pun supposed):
- Breadth (75 minutes)
- Depth (75 minutes)
- Top-Grading (90 minutes, Optional)
One factor to name out is that Twitter’s onsite rounds had 2 interviewers every spherical.
It felt intimidating at first, being stared down by two interviewers who had been judging me by my each transfer. But in actuality, I favored it because it felt rather more collaborative and we had been bouncing concepts off one another.
Breadth (System Design)
The Breadth (System Design) interview focuses on a wide selection of subjects to allow them to perceive how a lot you recognize about designing a system from scratch. The purpose is to stretch the candidate to their limits and see how far they will go.
They requested questions like this:
Are you capable of construct a dependable system with a affordable downtime end-to-end, from organising the UI to speaking by way of an HTTP API, to a constructing a backend service?
I loved the dialog as a result of I’ve all the time favored to tinker round with totally different applied sciences. If you get pleasure from constructing issues, you’d like this spherical too. The interviewers had been very nice and politely guided me alongside through the interview.
We ended with a coding query at the tip. I actually can’t recall what it was, however it wasn’t something out of the unusual.
The Depth interview targeted rather more on my previous initiatives and experience. This was, in all honesty, rather more intense and difficult as a result of the interviewer dove deep into each single side of the initiatives I constructed and challenged my design selections.
What was a undertaking you constructed just lately? Why did you construct it? What had been alternate options thought of? Did it work ultimately?
Coming from a startup background, I was accountable for constructing many issues from scratch, like organising AWS clusters, and organising SQS for processing duties.
Even although I was intimately aware of many initiatives, this spherical pushed me to the bounds. I needed to step again by means of my expertise and inform the story from my perspective – why did we design sure issues in sure methods and had been there higher/worse approaches we considered. No coding questions for this spherical.
Top-Grading / Cultural
The Cultural spherical was a 90-minute interview with the hiring supervisor and senior management.
I came upon later that if you happen to make it into this spherical, which means you’ve got achieved effectively sufficient technically they usually’re searching for a cultural match each methods — whether or not you match into their tradition and would they’ve the best alternatives for you.
No coding questions for this spherical as effectively.
Interview course of retrospective
Interviews at Twitter focus closely on fundamentals of laptop science. So just be sure you know your information constructions from prime to backside and left to proper. It’s additionally a good concept to assessment all the essential algorithms that you’d have discovered in your CS101 class.
Here are another ideas:
Know your algorithms in-depth
Understand how time complexity and area complexity trade-offs work.
Know one language very well
Know and perceive one language very well helped tremendously. For this I advocate one thing like Python or Java or C++ as these are very generally used languages.
I personally get pleasure from utilizing Python as a result of it is rather straightforward to learn, very straightforward to clarify, and it has a bunch of knowledge constructions built-in.
Do a résumé assessment
Make positive that to brush up on the initiatives listed on my résumé. This meant
- understanding your entire design of the software program I was accountable for end-to-end,
- understanding the trade-offs that had been made within the system, and
- having causes for why the methods had been constructed that method and what had been the alternate options.
Be disciplined in your preparation
Figure out upfront the areas you’re missing in, and arrange a schedule to observe. It’s vital to get constant, uninterrupted observe.
I began out on the improper foot and wished that I had recognized this earlier in order that I hadn’t wasted time on the improper issues.
Think concerning the methods you work together with day-to-day
Figure out the trade-offs, alternate options, professionals and cons, and how one can construct a higher system. This ability will carry you very far in software program engineering.
Resources I advocate
You can learn extra of my articles about know-how on my private weblog, the place I share my journey of changing into a skilled software program engineer.
I’m additionally launching a new course that goes into what interviewers are searching for, how one can put together, and find out how to maximize your probability of touchdown interviews and getting the job you need.