From a Regular University to FAANG: How I Got Offers from Google, Amazon, Meta, Apple, LinkedIn, Twitter, TikTok, and Uber
The complete, unfiltered story. No ivy league pedigree. No connections. Just a relentless system that works.
45 min read5,200+ wordsUpdated June 2025
Chapter 1: St. Edward's University and the Moment Everything Changed
In the fall of 2016, I was a computer science student at St. Edward's University in Austin, Texas. It is a small, private liberal arts school. It is not Stanford, not MIT, not even UT Austin down the road. The CS department had maybe forty students in my year, and most of my professors had never worked at a company anyone outside of Austin had heard of.
I did not come from money. My parents emigrated from Latin America and ran a small cleaning business. College was possible because of financial aid, a part-time job at the campus library, and a stubborn refusal to consider that I was not supposed to be in tech. My classmates at UT Austin had hackathon teams, sponsored recruiting events, and company info sessions every week. We had a career fair where the biggest booth was H-E-B.
The moment that changed everything was a random YouTube video. It was a day-in-the-life video of a Google engineer. The person lived in a one-bedroom apartment in Mountain View, walked to work, ate free food, and wrote code that was used by billions of people. They mentioned their total compensation was around $180,000 as a new grad. At the time, I was making $9.50 an hour shelving library books. The number felt like science fiction.
I looked up what it took to get into Google. Algorithms. Data structures. System design. Behavioral interviews. I had taken one data structures class and gotten a B+. The gap between where I was and where I wanted to be was enormous, but for the first time in my college career, I had a specific target. Not “get a job in tech.” Get into Google.
That night, I created a spreadsheet. Row one: “Google SWE New Grad.” I had eighteen months until graduation. The clock started.
Chapter 2: The First Year of Grinding (And Failing)
My preparation strategy for the first six months was simple and, in retrospect, almost entirely wrong. I bought “Cracking the Coding Interview” and started working through it front to back. I did problems in Java because that was what my classes used. I did not time myself. I did not practice on a whiteboard. I did not do mock interviews. I just sat in the library and worked through problems, checking the solutions when I got stuck, which was constantly.
By March 2017, I had done about 150 problems from the book and maybe 80 on LeetCode. My hit rate on medium problems was around 40 percent. I could solve easy problems but often took 30 to 45 minutes on what should have been 15-minute questions. I applied to Google's summer internship program. I got a recruiter screen, then a phone interview. The interviewer asked me a graph problem involving shortest paths in a weighted grid. I froze. I knew BFS. I knew DFS. I had never implemented Dijkstra from scratch under pressure. I mumbled through a half-solution that did not handle edge cases. The rejection email came four days later.
I also applied to Facebook (now Meta), Amazon, and Microsoft. Facebook never responded. Amazon gave me an online assessment where I solved one out of two problems. Microsoft invited me to an on-campus event at UT Austin that was not open to St. Edward's students. I emailed the recruiter asking if I could attend anyway. No response.
That spring, I took a step back and analyzed what went wrong. The core issues were clear: I was practicing problems without understanding the underlying patterns. I was not simulating real interview conditions. I had no feedback loop. And I had no network in the industry. I was preparing in a vacuum.
So I changed everything. I stopped doing random problems and started organizing them by pattern. Two-pointer problems. Sliding window. BFS and DFS on graphs. Dynamic programming by subtype (knapsack, LCS, interval DP). For each pattern, I would study the template, do five to ten problems that used it, and then write out the pattern from memory. This approach would later become the foundation of what we teach at RevoluTechs in our algorithm prep guides.
Chapter 3: The Airline Job and the Detour That Became an Advantage
I graduated from St. Edward's in May 2018 with a 3.4 GPA and zero FAANG interviews on the horizon. I had applied to about sixty companies. I got callbacks from twelve. I received offers from three: a defense contractor in San Antonio, a small SaaS startup in Austin, and an airline based in Dallas. The airline offered the most money at $72,000, so I took it.
The job was not glamorous. I was on the operations technology team, maintaining internal tools that tracked crew scheduling and gate assignments. The tech stack was Java 8, Spring Boot, Oracle databases, and a monolithic application that had been in production since 2009. Deployments happened once a month and required a change advisory board meeting with twelve people on a conference call.
But here is what that job gave me that I could not have gotten at a startup: I learned how large-scale systems actually work in production. I debugged issues that affected thousands of flights. I dealt with legacy code, database migrations on tables with hundreds of millions of rows, and the reality of software that cannot go down because real planes with real people are involved. I learned what “five nines” availability actually means when the consequence of downtime is stranded passengers.
I also learned to communicate with non-technical stakeholders. The operations managers did not care about my elegant algorithm. They cared about whether the crew scheduling tool would work on Thanksgiving when traffic was three times normal. This skill, translating technical decisions into business impact, would become one of my strongest assets in behavioral interviews.
During this period, I never stopped preparing. Every morning from 5:30 to 7:00 AM, I worked on LeetCode. Every Saturday, I did a mock interview with someone from a Discord study group I had joined. By the end of my first year at the airline, I had solved over 400 LeetCode problems and my hit rate on medium problems was above 85 percent. I could solve most hard problems given 45 minutes.
Chapter 4: Breaking into Amazon AWS
In September 2019, after fifteen months at the airline, I started my second serious round of applications. This time, I was strategic. I did not just apply online. I reached out to people on LinkedIn. Not cold messages asking for referrals, but genuine conversations about their work. I commented on their posts. I asked specific questions about their teams. Over two months, I built relationships with engineers at Amazon, Google, and Meta.
One connection at Amazon AWS referred me for an SDE-1 position on the S3 team. The referral made all the difference. Instead of my resume disappearing into an applicant tracking system, it went directly to the hiring manager. I got a phone screen within a week.
Amazon's interview process at the time was four rounds: two coding, one system design (lighter for SDE-1), and one focused on leadership principles. I prepared for the leadership principles like my life depended on it. I wrote out twelve stories using the STAR method (Situation, Task, Action, Result) and practiced delivering each one in under two minutes. Every story had quantifiable results. Not “I improved the system” but “I reduced query latency by 340ms, which improved the P99 response time for crew scheduling lookups by 22 percent.”
The coding rounds went well. One was a graph traversal problem that I recognized as a variant of topological sort. The other was a string manipulation problem involving a sliding window. I solved both within time and talked through my approach clearly. The system design round asked me to design a URL shortener. I had practiced this exact problem, so I walked through the API design, database schema, hashing strategy, and scaling considerations with confidence.
The leadership principles round was where my airline experience shone. The interviewer asked about a time I had to make a decision with incomplete information. I told the story of a production incident where the crew scheduling database was returning stale data during a weather event, and I had to decide whether to restart the service (which would cause a 15-minute outage) or attempt a hot fix. I chose the hot fix, coordinated with the DBA, and resolved it in 8 minutes. The interviewer leaned forward and asked follow-up questions for ten minutes. I could tell I had nailed it.
The offer came in November 2019: SDE-1 at Amazon AWS in Seattle. Base salary $128,000, signing bonus of $50,000 spread over two years, and RSUs worth approximately $80,000 vesting over four years. Total first-year compensation was around $193,000. I had more than doubled my airline salary. I moved to Seattle in January 2020.
Keep Reading
Unlock this guide and thousands more across 10 Blossend platforms.
Chapter 5: Inside Amazon AWS — What They Don't Tell You
Working at Amazon AWS was nothing like what the YouTube videos showed. The first three months were brutal. The codebase for S3 was enormous, spanning hundreds of packages with internal tooling that had minimal documentation. My onboarding buddy was on a different team and had limited bandwidth. I was expected to ship my first production change within six weeks. The pace was relentless, and the standards were unforgiving. Code reviews at Amazon were thorough to the point of being exhausting. A senior engineer once left forty-seven comments on a pull request that I thought was ready to merge. Every comment was valid. I learned more in those first three months than I had in my entire previous career.
The S3 team operated at a scale that was difficult to comprehend. We were handling trillions of objects across a globally distributed storage system. A single bug could affect millions of customers. The operational excellence culture at AWS was not just a slogan; it was enforced through mechanisms like the Correction of Errors (COE) process, where every significant incident was dissected in a blameless postmortem that could run for hours. I participated in on-call rotations where a page at 3 AM meant diagnosing issues that affected services you had never heard of but that powered half the internet.
The compensation at Amazon followed a well-known back-loaded vesting schedule. In years one and two, the RSU grants were relatively small, supplemented by the signing bonus. Years three and four were when the real equity kicked in. This structure incentivized staying, and it worked. But it also created a culture where people talked constantly about their vesting cliffs and calculated exactly when it made financial sense to leave. I started hearing the term “golden handcuffs” within my first month.
Despite the intensity, I thrived. I shipped a feature that optimized S3 lifecycle policies for a specific class of storage transitions, reducing processing time by 35 percent. I wrote a design document for a new internal monitoring dashboard that was adopted by three other teams. I got promoted to SDE-2 in fourteen months, which my manager said was faster than average. The promotion came with a base salary increase to $155,000 and a new RSU grant. My total compensation was now approaching $280,000 per year. I was twenty-five years old and earning more than my parents had ever made combined.
Chapter 6: The Decision to Interview Everywhere
By the summer of 2021, I had been at Amazon for a year and a half. I was performing well, but I was curious. Curious about what it was like at other companies. Curious about whether my skills were transferable. And, if I am being honest, curious about whether I could get paid more. The job market in 2021 was historically hot. Engineers were getting multiple competing offers and using them to negotiate compensation packages that seemed absurd. I wanted to see if I could do the same.
I decided to interview at every major tech company simultaneously. This was not impulsive. It was a deliberate strategy. Having multiple offers at the same time gives you maximum negotiating leverage because each company knows they are competing for you in real time. The window for this strategy is narrow — you need to align all your final rounds within a two-to-three-week period so that offer deadlines overlap.
Over eight weeks, I initiated interview processes at Google, Meta, Apple, LinkedIn, Twitter (pre-Elon acquisition), TikTok (ByteDance), Uber, and Stripe. I also kept Amazon in the mix by starting an internal transfer process to a team I was interested in, which meant I would get an internal “offer” that I could use as a baseline for negotiations. Nine companies total. It was the most intense period of my professional life, and I would do it all over again.
The preparation for this round was different from my original FAANG prep. I was no longer grinding LeetCode basics. I was fine-tuning. I focused on system design at the senior level, studying papers and blog posts about real distributed systems. I read the Google SRE book, the Amazon Builder's Library, and Meta's engineering blog. For each company, I researched their specific interview format and adjusted my preparation accordingly. Google emphasizes algorithmic thinking and asks open-ended coding problems. Meta focuses on speed and practical coding. Apple values depth of knowledge and attention to detail. Each company has a personality, and your preparation should reflect that.
Chapter 7: The Google Interview — Five Rounds of Precision
Google's process was the most rigorous. Five rounds: two coding, one system design, one Googleyness and Leadership (GnL), and one additional coding-or-design round depending on the team. The coding questions were harder than what I had seen at Amazon. One problem involved designing an efficient algorithm for a variant of interval scheduling with constraints that I had never encountered. I spent the first fifteen minutes just understanding the problem and asking clarifying questions. The interviewer was patient and helpful, which is a hallmark of Google interviews. I eventually arrived at a solution using a priority queue with a custom comparator that ran in O(n log n) time.
The system design round asked me to design Google Docs. This is a classic problem, but the depth expected at the L4-L5 level is significant. I covered the real-time collaboration protocol (operational transformation vs. CRDTs), the data model for document storage, conflict resolution strategies, and how to handle offline editing. The interviewer pushed me on scalability: what happens when ten thousand people are editing the same document? I discussed sharding the document into blocks and using separate collaboration sessions per block, which seemed to satisfy the follow-up.
The GnL round was deceptively challenging. The questions were not just behavioral stories. They were probing for how I think about ambiguity, disagree with colleagues, and handle situations where the right answer is unclear. I talked about a disagreement I had with a senior engineer at Amazon about whether to build a new service or extend an existing one. I described how I gathered data, presented my analysis, listened to their perspective, and ultimately changed my mind when they raised a point I had not considered. The interviewer seemed to appreciate the intellectual honesty.
Chapter 8: Meta, Apple, and LinkedIn — Different Cultures, Different Tests
Meta's interview was the fastest. Four rounds in one day: two coding (one with a ninja question, one with a pirate question), one system design, and one behavioral. The coding problems were straightforward by FAANG standards — a medium-level tree problem and a string parsing problem — but the time pressure was real. You have thirty-five minutes per round, and they expect you to write clean, bug-free code that compiles. Meta interviewers evaluate code quality and communication as much as correctness. I finished both coding rounds with time to spare and used the extra minutes to optimize and add edge case handling.
Apple was a different beast entirely. Their process felt more like an academic deep dive. One round was entirely about operating systems concepts — virtual memory, process scheduling, and how the kernel handles I/O. Another round focused on my past projects in extreme detail. The interviewer asked me to draw the architecture of the S3 lifecycle feature I had built and then poked holes in my design choices for thirty minutes. It was uncomfortable and illuminating. Apple wants to know that you truly understand the systems you claim to have built, not just that you can code a solution to a toy problem. I had a strong round on low-level systems knowledge because of my experience with the airline's production infrastructure.
LinkedIn was the most pleasant interview experience. The interviewers were warm, the problems were reasonable, and the process was well-organized. The system design round asked me to design a notification system for LinkedIn. I drew heavily on my experience with Amazon's SNS (Simple Notification Service) to discuss fan-out strategies, delivery guarantees, and how to prioritize notifications based on user engagement signals. The behavioral round focused on collaboration and mentorship, which aligns with LinkedIn's culture of professional development.
Chapter 9: Twitter, TikTok, and Uber — The Wildcards
Twitter (this was 2021, before the Elon Musk acquisition) had a reputation for a relaxed interview process. That reputation was somewhat accurate. The coding problems were on the easier side, but the system design expectations were high. They asked me to design the home timeline — how tweets are ranked, delivered, and cached at platform scale. This is a real problem that Twitter's engineering team had spent years solving, and the interviewer clearly knew the domain inside out. I discussed a hybrid fan-out approach (fan-out on write for normal users, fan-out on read for celebrities) and real-time ranking using ML models. The interviewer asked detailed follow-ups about cache invalidation strategies.
TikTok (ByteDance) was the most technically demanding interview of the entire cycle. The coding problems were at the hard level on LeetCode. One problem involved dynamic programming on a tree structure with multiple constraints. I struggled with it for the first twenty minutes before recognizing that it was a variant of the tree DP pattern with an additional dimension. I solved it with five minutes to spare, but it was not clean. The system design round asked me to design a short-video recommendation engine. I discussed collaborative filtering, content-based signals, real-time feature engineering, and how to handle the cold-start problem for new users. The interviewer from Beijing was meticulous and asked me to quantify trade-offs with actual numbers, not just hand-wave about scalability.
Uber was solid across the board. The coding rounds were medium-to-hard difficulty. The system design round asked me to design a ride-matching service — how to match riders with drivers in real time considering location, ETA, driver rating, and surge pricing. My experience with the airline's scheduling systems actually gave me a unique angle on this problem. I discussed geospatial indexing using quadtrees, real-time dispatching with priority queues, and how to handle the case where a driver cancels after being matched. The behavioral round at Uber focused on resilience and operating in ambiguity, which resonated with my journey from a non-target school.
Chapter 10: The Offers — Numbers, Negotiation, and the Final Decision
Over a three-week period in October 2021, the offers came in. All eight companies made offers. Including the Amazon internal transfer, I had nine total offers on the table simultaneously. Here they are, in order of total first-year compensation. Note that all numbers are approximate and reflect 2021 levels, which were at the peak of the market.
Google L4: $385,000 total (base $175K, bonus $30K, RSUs $180K/yr). Meta E5: $410,000 total (base $185K, bonus $20K, RSUs $205K/yr). Apple ICT4: $360,000 total (base $180K, bonus $35K, RSUs $145K/yr). LinkedIn Senior: $370,000 total (base $175K, bonus $25K, RSUs $170K/yr). Twitter Senior: $340,000 total (base $165K, bonus $20K, RSUs $155K/yr). TikTok E2-2: $395,000 total (base $170K, bonus $40K signing, RSUs $185K/yr). Uber L5a: $375,000 total (base $180K, bonus $25K, RSUs $170K/yr). Amazon SDE-2 transfer: $310,000 total (refresh + existing vest).
The negotiation process added approximately 15 to 25 percent to each initial offer. The key principle is simple: never negotiate against yourself. When Google made their initial offer, I told the recruiter that I was excited about Google but that I had a competing offer from Meta that was significantly higher. Google came back with an improved RSU grant. I then told Meta that Google had matched, and Meta increased their signing bonus. This is not deceptive. It is transparent competition, and every recruiter expects it.
I chose Google. Not because it paid the most (Meta's offer was higher), but because the team I would be joining was working on a product I was genuinely excited about, the engineering culture aligned with how I want to grow, and the long-term career trajectory at Google felt right. The final negotiated package was: base $185,000, signing bonus $45,000, RSUs worth $230,000 per year, for a first-year total of approximately $460,000. From $72,000 at an airline to $460,000 at Google in three years.
Chapter 11: What I Would Do Differently — The Honest Retrospective
Looking back, there are things I would change. I wasted the first six months of preparation doing random LeetCode problems without studying patterns. If I had started with a pattern-based approach from day one, I could have been ready six months earlier. I also underestimated the importance of system design preparation. At the SDE-1 level, system design is lighter, but if you want to level up quickly and negotiate senior offers, you need to be exceptional at it from the start.
I would also have started networking earlier. The referral that got me into Amazon was the single most impactful thing in my career, and it came from a LinkedIn connection I had built over just two months. Imagine if I had started building those connections during college. I would have had a year's head start.
Finally, I would have taken better care of my health during the intense preparation periods. There were months where I was sleeping five hours a night, skipping meals, and grinding problems at the expense of everything else. That is not sustainable, and it is not necessary. A focused three-hour study session is more productive than an exhausted eight-hour marathon. The engineers I know who are most successful at FAANG are not the ones who grind the hardest. They are the ones who grind the smartest.
Chapter 12: The System — Everything Codified
Everything I learned through this journey has been codified into the guides you will find on RevoluTechs. The pattern-based algorithm preparation, the system design frameworks, the behavioral interview playbook, and the negotiation scripts are all available here. This is not theoretical advice from someone who read a blog post. It is battle-tested methodology from someone who went through the process, failed, iterated, and eventually succeeded at the highest level.
If you are at a non-target school, working a job that feels like a dead end, or just starting your preparation journey, know this: the path exists. It is not easy, and it is not fast. But it is clear. The companies listed above are not looking for pedigree. They are looking for signal. Your job is to generate that signal through deliberate practice, real-world experience, and strategic preparation. Everything else is noise.