Avi Das

Home for my work, ideas and else.

Reflections on WeWork: Relentless Change and Unrealized Potential

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.

Finding the Right Team at a New Company

The larger a company is, the more choices there can be for teams to join. In a small company, you could meet your teammates during the hiring process. However, in large companies hiring for generalist software engineers, you may not get the feel for the team before you join. The team matching process has a large variance across the industry, from companies interviewing for a specific role in a team to joining an org within a company to joining potentially any team with an open role across the whole company.

Being able to talk to manager and team members before joining the company is great. However, if that choice is not present, it is important to understand that internal transfers are commonplace in most companies. The inertia of staying in a team which is not the right fit is suboptimal when there are many opportunities internal and external.

Quotes I Have Loved

A brilliant and succint quote that says so much about our being.

The negativity bias is a well intentioned learning disability.

Tara Brach

Two quotes from the best book I have ever read.

Everything can be taken from a man but one thing: the last of the human freedoms—to choose one’s attitude in any given set of circumstances, to choose one’s own way.

Between stimulus and response there is a space. In that space is our power to choose our response. In our response lies our growth and our freedom.

Viktor Frankl Man’s Search for Meaning

I have been a long time admirer of the way Feynman lived his life.

The first principle is that you must not fool yourself, and you are the easiest person to fool.

Richard Feynman

Anais Nin should be more well known.

Life shrinks or expands in proportion to one’s courage.

We write to taste life twice, in the moment and in retrospection. We write, like Proust, to render all of it eternal, and to persuade ourselves that it is eternal. We write to be able to transcend our life, to reach beyond it.

Anais Nin

Naval may be the most quotable person around today.

Thriving Under Siege

Besieged

That one word captures the reality of living in NYC during the Covid-19 pandemic. It feels like being surrounded by an invisible, encroaching army, with no end to the siege in sight.

Everyday we are exposed to terrible news, how immigrants are hurting in my beloved Jackson Heights neighborhood, mass burial grounds either locally or abroad in Italy and China. Bustling businesses in NYC have been reduced to laying off hard working employees.

There is no how-to manual for this current crisis, so devastating and foreign to all of us. Despite that, resilience is human nature. If there’s one place where our collective faiths have met, it is that better times are ahead. Is the thought of thriving during the age of Covid-19 heretical? It is perhaps more so to not attempt to.

Like many others, I have struggled with being quarantined in my apartment since March. I have immersed myself with the energy and drive that permeates NYC, and losing that has felt like being in withdrawal. At times, it has been a fearsome cocktail of loneliness, helplessness and concern.

Alone

I am a rational optimist. I like to think that better times can be ahead, but we have to strive towards it. While my framework of life has been shaken by this crisis, it has yet to be broken, and it has definitely opened up more opportunities for self discovery.

Thanks to the internet, social media and on demand entertainment, simply passing time has stopped being a challenge. Rather, boredom has been a foreign concept to many of us surfing the world of dopamine rushes. Yet, deep inside, many of us feel that they fail to aid deep seated needs of purpose and self-actualization.

So how do we deal with our current consternation? Can we come out on the other side of this and be proud of what these last months meant for us? When we look back into this in five years, how will we think of this time?

Invest in community

It’s more important than ever to be there for your friends and family. Deepening relationships with our closest people have a way of giving back to our lives. That could just be video chats, and I have noticed myself talking to my folks a lot more since this began. There was also one night when, after some silly games on the House Party app, I realized I haven’t laughed this hard in a while and how necessary that was.

Continue voting for your best self

As the dust settled and I got more used to realizing that this is my life for the foreseeable future, I wanted to dig into things I could do but have been putting off due to the busy-ness of life. Not being as busy can be a positive thing, and opens up more time for things I have wanted to do more of.

Mindsets for Tech Behavioral Interviews

Axiom: Any software engineer writing a blog on tech will eventually write a post about interviews. - Yours Truly

Interview Day

You walk into a room with one or two people, who may be taking notes in a notepad or a laptop. The most common starter question is tell me about yourself.

Interview Chair

This used to be a question I didn’t know where to start or end. A possible interpretation of this question is to provide a succinct summary of your career.

The opportunity here is to prime the interviewer towards directions which would highlight your best career experiences. What part of your experience would be the most pertinent for this job? Doing this thinking beforehand would be helpful for the latter part of the interview.

As an interviewee, we are in a sales role and the product is our skills, experience and future potential. For engineers, this is not a natural part of our workflow. The best sales, however, is based on truth. Being honest and talking proudly about your best career achievements will aid you in this early phase.

A very common follow up is what your ideal next role would look like? You’ve just given them the path which got you to where you are. It is now time to lay out what you want for the future.

The opportunity in this question to highlight areas where you want to grow. Do you see yourself going into engineering management? Do you want to become really good at javascript and browsers? Or do you prefer to become an expert in server and cluster management? Again, it serves you to be honest here since this question helps you to evaluate if the growth opportunities you are looking for would be possible at this company.

Go in with a win-win mentality: It is a lot more about finding a mutual fit rather than getting through a cross examination.

After this point, the interview can go in a lot of different directions. Companies may dig deeper into your past experience or go through example scenarios to understand your thinking process. Knowing your resume and being able to talk in depth about each part will be important.

Before The Interview

Chicago Marathon 2019 Race Report

A big step forward and lessons learnt along the way.

Race Day

For goal races, I usually wake up before the alarm goes off. October 13th was no different. Despite the 3:30 am wakeup, I slept unusally well considering it was the night before the race. I KT taped my foot carefully, which I had to do throughout the training cycle to defend against feet issues. After the usual overpacking of gear check bag, I joined my Dashing Whippet housemates on the train ride to the starting line.

Pre race

In the race village, I watched the sea of green feet (nike Next %s), and waited till it was time to get to the start line. The race corral was already busy over half hour left before race start. I went through the motions of shedding extra clothing, doing warmups in the cramped environment and holding back the nerves. It was colder than I expected, which wasn’t a bad thing at all. It would stay cool during the whole race, which meant overheating never became an issue.

At the start line, I felt good. No major injuries have cropped up since March, and training went as well as it could. Despite that, I wanted to stay committed to running a smart race. Marathon is too long of a race distance to predict an outcome and I wanted to stay within myself as long as possible.

I saw the 3:15 pacemaker, and realized I was in two minds whether to go with him or not. I decided to trust my training and focus on running my own race.

The race began, and in the beginning mile I stayed attentive to what my body was telling me. The surge of adrenaline wanted me to speed up, but I held back and moved with caution. At mile 1, I heard my name from a friend cheering and immediately felt better. It is so valuable to see familiar faces during a race.

As early as mile 2, my GPS was completely haywire. I had to stop paying attention to the speed that the GPS was showing me and decided to count every 5k interval instead. I knew those times by heart from training.

23, 46, 1:09, 1:32, 1:55, 2:18, 2:41, 3:04…

I got to 5k within the limit without much issues. Chicago is one of the best marathons, and crowd support is a big part of that. The first half of Chicago is electric, with non stop crowd support, and they showed up strong on an overcast, windy day. It feels as if hundreds of thousands of people are on your side, and you want to run well for their sake.

Then next 5k also went fairly quickly. I have found the miles between 8-12 mentally tough during training and it was definitely no different during race day, injecting some doubt into my race strategy. Every person racing at their limit must battle negative thoughts, there is really no other way.

Chicago 20k

At 15k, I was able to keep a buffer of over a minute. It wasn’t clear to me whether the pace was sustainable the whole course. I wasn’t looking at the watch until a 5k interval, so there wasn’t much to rely on other than how I felt running. I kept repeating the words in my head.

Smooth. Calm. Relaxed. Metronomic.

Stay as calm as a Tibetan Monk.

Only a couple hours or so and I can go run trails.

Around mile 11 or 12 during the race, another runner cut sharply into my path, a near collision. As I looked at him, I went from bewilderment to anger to laughing out loud in the period of a second. “Wherever you are trying to go dude, I hope you get there”, I said silently as I shrugged and carried on.

React Amsterdam 2019: Takeaway

  • The case of GraphQL (Peggy Rayzis)
    • Productivity boost across teams
    • Smaller payloads
    • Fewer client/server round trips
    • Preventing over fetching
  • Great Developer Experience (Peggy Rayzis)

Life Lessons From Improv

I think life should be more like improv and improv should resemble life.

On a whim, I went to hideout theatre in Austin, TX for a improv beginner class back in 2016 but I have only been consistently doing improv for the past year. In the process, I have tried short and long form improv, and dabbled in musical/rap improv. Having zero theatre/stage background, it has been amazing to me how the lessons learnt from improv apply to life broadly.

Improv

  1. Yes, and..: A 101 on improv would begin with the encouragement to accept whatever the other person is bringing to the scene. We may have a great idea in mind, but the scene is ruined if we do not accept the other person’s ideas and bind the scene in a cohesive way. Taking this attitude to life can frame anything in life as a gift. This in turns lends us to be less critical and cynical about our day to day interactions.

  2. Go with the first thing that comes to mind: Perfect is often the enemy of the good. Overthinking can stand in the way of action when spontaneity may have been the right choice. In improv, trying to think of a funny punchline can ruin an act, taking away from it the natural flow of the scene. On the other hand, going with the first thing that comes to mind often leads a scene to wonderful surprises. Real life decisions do involve more thought, but the training against overthinking still holds and can help us live a more spontaneous life and overcome the fear of taking action.

  3. Embracing failure: Making a fool of yourself is encouraged and celebrated in improv. The very act of complete unpreparedness on stage, taking the audience’s suggestion to theme a scene and strangers as partners means that you don’t have any semblance of control. There is no guarantee that an improv scene will be funny to the audience or reach a satisfying closure. But everyone in improv understands this, and supports your choices on stage regardless. This empowers improvisers to be authentic on stage. It also makes us realize that the consequences of failure may be less than we realize. This training is so important in life where fear of failure can hold us back.

  4. Make others look good: In improv, we succeed when we have made the others on stage successful. Supporting their ideas, pointing out the authenticity of their actions and emotions goes a long way into making a scene feel natural and relatable to the audience. When working with improvisers who are gifted in building out storylines, a great way to complement their work is to add other dimensions to the scene such as a location, timeline or other context to create a richer, vivid scene. This prioritizing of win-win mentality is a great habit for teams, since an effective team should be greater than the sum of its individuals.

  5. Make statements, don’t ask questions: Making statements adds material to a scene, whereas a question puts the burden on the other to come up with the material. This is why it is encouraged in improv to limit questions and respond with statements. This is great for your communication skills, making conversations feel less like interrogations. People feel more at ease in a conversation when they feel they don’t have to do all the work. A related advice is to try and use every sentence in improv as if it would be a closing sentence, since a scene could end at any moment.