← Back to Writing

10,000 hours vibe coding experience: My reaction to reddit post: "How we vibe code at a FAANG."

September 17, 2025 · 5 min read

Recently there's been a very hot topic on Reddit about coding with AI in production at a big company.

Many people say AI can make mistakes. Yes, that's true. But they only focus on the dark side rather than the bright side. From my own experience, and similar views from AI godfather and Nobel Prize winner Geoffrey Hinton, the current architecture of large language models are simulators of the human brain.

So you can see AI is just like your colleagues.

Personally, in my company, I use AI for everything: planning, user research, customer support, writing code and blog posts. We also use AI for things you cannot imagine, like reviewing our daily work and code reviews.

I can give you a very concrete example. Apple's App Store reviewers are often crazy about details, randomly giving us rejections for random things. Apple has very random and unstable rules about App Store review guidelines. They can sometimes reject you and sometimes approve even if they have concerns because the reviewer is outsourced, they don't care that much, but they need to prove their value. So how do we as engineers handle random rejections from Apple?

That's pretty easy. It's 100% possible nowadays. Usually they reject due to some random issues like "a microphone button cannot be allowed, it can only be continued," some nonsense like that.

Due to their so-called privacy concerns or maybe the stability of App Store experience, which is nonsense. Currently we have an even better way to handle App Store rejections, which is basically to use AI to fix the issues they mentioned while keeping our app's functionalities. I recently got rejections about Apple sign-in support and some permission request wordings. AI can fix that within 10 minutes and I submit to the App Store for processing within another 10 minutes. So it ends up being hours or days waiting for App Store human review, which is pretty bad, right?

This was actually my life when I was working as a full-time professional at Microsoft because of random things as well. Sometimes it's a very important customer, sometimes the request is from my managers, my VPs, or even the CEO.

You won't believe this: most software job tasks are not that valuable. I think only 10% or even 1% are really valuable, really creative. The other 99% are just trash.

For example, Apple builds their review guidelines like red tape not for anything, just to prove their value of the App Store. I believe the world would be one zillion times better if there was no iOS App Store, if people could install whatever they want on their expensive devices.

So why waste our lives using AI to solve this kind of garbage? Why can't we outsource this kind of thing to AI? Just do it. You don't need anybody's permission to use AI.

Original content:

# How we vibe code at a FAANG.

Hey folks. I wanted to post this here because I’ve seen a lot of flak coming from folks who don’t believe AI assisted coding can be used for production code. This is simply not true.

For some context, I’m an AI SWE with a bit over a decade of experience, half of which has been at FAANG or similar companies. The first half of my career was as a Systems Engineer, not a dev, although I’ve been programming for around 15 years now.

Anyhow, here’s how we’re starting to use AI for prod code.

1. You still always start with a technical design document. This is where a bulk of the work happens. The design doc starts off as a proposal doc. If you can get enough stakeholders to agree that your proposal has merit, you move on to developing out the system design itself. This includes the full architecture, integrations with other teams, etc.
    
2. Design review before launching into the development effort. This is where you have your teams design doc absolutely shredded by Senior Engineers. This is good. I think of it as front loading the pain.
    
3. If you pass review, you can now launch into the development effort. The first few weeks are spent doing more documentation on each subsystem that will be built by the individual dev teams.
    
4. Backlog development and sprint planning. This is where the devs work with the PMs and TPMs to hammer out discrete tasks that individual devs will work on and the order.
    
5. Software development. Finally, we can now get hands on keyboard and start crushing task tickets. This is where AI has been a force multiplier. We use Test Driven Development, so I have the AI coding agent write the tests first for the feature I’m going to build. Only then do I start using the agent to build out the feature.
    
6. Code submission review. We have a two dev approval process before code can get merged into man. AI is also showing great promise in assisting with the review.
    
7. Test in staging. If staging is good to go, we push to prod.
    

Overall, we’re seeing a ~30% increase in speed from the feature proposal to when it hits prod. This is huge for us.

TL;DR: Always start with a solid design doc and architecture. Build from there in chunks. Always write tests first.