I spent three years as a software engineer at WeWork. Three years is north of 6,000 working hours and this post is an account of my time there and key takeaways. If you are interested in what the experience of working in a hyper growth company feels like, this account may interest you.
Getting There
Working for WeWork is difficult to summarize in a single sentence, or even a paragraph. A fervent energy permeated the whole company, driven by the charismatic CEO Adam Neumann. There has been a lot that has already been written about WeWork, but every viewpoint provides something new. Mine is that of a software engineer in WeWorkâs tech org, shipping software during the ups and downs as WeWork attempted to blitzscale the world’s fastest growing real estate business.
Having joined WeWork from Braintree, I had more experience with established companies with proven business models, operating at the scale of web commerce. The relative stability and nature of industry meant that an engineer’s contributions would be making small and incremental progress with few opportunities to build something from the ground up. I was recruited by a longtime friend who was a director of engineering at WeWork. It felt like a good opportunity to experience engineering in a hyper-growth company.
I remember my onboarding day, easily the most boisterous one of my career. The host had an insatiable level of energy and it was fascinating to see people working in a whole host of disciplines, legal, architecture, design, real estate, tax all brought together in one room. At the end of the day, Miguel, one of the co-founders, came and spoke about how WeWork started. Having seen tech culture in past companies, there was already the sense that this company would be different from anything I had seen before.
Trial By Billing
The first team I joined was building billing in house at Wework, and it was a challenging experience for my first six months of tenure. We were working in a monolith with poorly defined domain boundaries. During its growth phase, WeWork optimized for flexibility offered to members in terms of lease agreements, discounts, and payment methods. However, the infrastructure felt the weight of this product growth, making ongoing development a challenge. The team had doubled in size in a very short time, resulting in a high proportion of engineers new to the company. Everyone I worked with was smart and genuine, and there was great camaraderie across the team. It felt far more familial than I’ve ever encountered before in my career.
Wework tech org managed to hire a group of genuinely good, talented people. This cannot be taken for granted at any company.
My job was to tug away the billing codebase from the rest of the monolith. This was an exercise that was doomed to failure, not least due to an arbitrary deadline that was laid down on us. We toiled hard, made a valiant attempt at taming the Spaghetti monster codebase responsible for processing hundreds of millions in recurring revenue.
By January, leadership saw things differently, and decided to take the work from our humble four person team to the Tel Aviv office and dedicate an entire new department towards solving WeWork’s billing conundrum. That department would eventually grow to over a hundred people, engaged in a multi year effort to architect billing at WeWork.
Your view of the work you and your team is doing may be wildly different from how the key stakeholders see the work. Leadership changed their priority often during WeWork, making it a constant guessing game when the product direction would change or a re-org would happen. For a company of WeWork’s valuation, the rate of change was that of a small startup struggling for identity. This caused stress for those engineers who wanted to focus and specialize in a product area for a long period.