Big companies can’t afford to take a chance on you. Small ones can – and they have to.
Before starting my current job at YC I worked for Google. I was on an incredible team, and my manager in particular was first class. A highly competent software engineer in his own right, he also sincerely valued the wellbeing and career progression of his team. From the day I started, he made it clear that I was free to work on anything that I felt might help the development of our product. Taking him up on the offer, I spent most of my second week parsing session data, and produced a report that, while not particularly deep, was an important analysis of the usage of one of our product’s key differentiators.
My boss loved the report, and forwarded it to a couple of other team leads. I felt great – I could actually contribute something of value! Unfortunately, over the coming weeks and months that feeling began to fade. While I was slowly gaining the trust of my manager and teammates, that didn’t translate into greater input about product direction. In fact, my peers didn’t seem to have much influence on what we were building either. I knew every single implementor of the product – there were about 12 of us, split across iOS and Android – but beyond my direct manager and our assigned PM, I never even found out who sat in the meetings to decide what features we’d be building next. Based on the stories that PM shared about the difficulty of shepherding proposals up and down the hierarchy, I imagine this distance was meant to protect us from the slog and guantlet of building consensus. Reportedly, individual features had to be approved by the VP of Engineering three levels up, and sometimes even got input from the CEO of YouTube herself.
I paint a dire picture, but I must emphasize that everyone I interacted with at Google was intelligent, professional and generally striving to ship product with a minimum of politics. The extended and remote nature of the development process was a fundamental byproduct of the depth and breadth of the organization, not the work of unnecessary gatekeepers. When four levels of management and three sister teams have to sign off on a change, change comes slowly.
I’ve had the opposite experience over the months I’ve been working at YC. As at Google, I have a supportive and competent boss. Unlike at Google, that’s all it takes to make an impact. As a small organization we have the luxury of moving fast and experimenting frequently. Small changes and new features are built and shipped with nothing more than a code review. Major software changes (like transitioning our entire codebase to a monorepo) require approval from my manager but can be conceived, approved and implemented in a day. Significant changes to user-visible functionality require some buy-in from the organization, but the general flow is (1) implement, (2) ask/wait for feedback, (3) deploy. Step (2) takes a few hours to a day and I know exactly who’s likely to have an opinion.
Both organizations are full of smart people trying to do the right thing. But the smaller one (YC) is structurally capable of presuming I’m competent, while the larger one (Google) simply isn’t. That’s part of the reason why I’m now happily at the former.