While you're here: I'm building a new company and hiring engineers. Email me to learn more: omar@center.app, or reach out on twitter.

This is part 2 of my Silicon Valley story. Part 1 is here.

Part 1 finished with "and it felt like things were starting to work;" if you zoom out far enough, that was indeed one of the moments things started to work. But I'd be remiss if I made it sound like it's been all positive all the time. For me, few good things have ever been a linear process.

I've gone back and forth on publishing this post because it was a really difficult time for me. Some reasons to, lots of reasons not to. I guess after a certain point, your inner scorecard matters more. And sure, there are people out there who seem like they have a perfect track record. I think that means that either 1) they're lying, 2) they're not sharing something, or 3) they could be taking on more risk.

Of all things, it was a Dr. Seuss book that convinced me to press publish.

I'm sorry to say so
but, sadly, it's true
that Bang-ups
and Hang-ups
can happen to you.
I'm afraid that some times
you'll play lonely games too.
Games you can't win.
'cause you'll play against you.

Ok, let's get into it.

In 2015 I couldn't fight this feeling that I didn't know what I was doing. My past few endeavors had gone OK, but I didn't yet have my spectacular "win" that I could look back at and say that this was the right choice. I hadn't yet found the "great" that I was looking for, and like that scene from Pulp Fiction: "if you were gonna make it, you would have made it by now."

In our industry, it's a common meme that nobody knows what they're doing, and while that's true of any fast-evolving field, there are gradations to it. I had done a lot of cool things: I had scaled a music streaming company (FratMusic.com) from 0 to 2 million monthly streaming audio users (in 2010). I helped start and ran Priceonomics for a few years. I did some massive web crawling projects. I had a lot to point to that I was proud of, but it felt like my title was "startup engineer" and not "software engineer." I felt like I could build things by pulling packages together and integrating them, but I felt like I didn't know the "core" things.

I'd never run a >5 person eng team before. I'd never worked closely with product managers. I didn't know how to sell to big companies. And while "any fool can learn from experience," what if I could go somewhere, learn a lot, get "big company" experience, and then go start my next thing?

So that's what I did. I joined a mortgage lending fintech startup (not Coinbase, this was a few years before); it was roughly 100 people, 20 of whom were in engineering. And for the first 18 months, everything about it felt right: a tight-knit engineering team with just enough process to get by. It was also easier than starting a startup since I could work outside the existential threat of whether you're making something people want. It was nice to never have to think about product market fit, and just focus on a smaller problem. The lack of existential fear was nice.

Lots of good things happened along the way, but this post isn't about those things.

As the company continued to grow, I did start to noticing small thing changing. Looking back at it now, this phenomenon experts refer to as "growth," but to me it felt like we were losing our way and starting to "act like a big company." Both of these things were true, both felt bad, but only in retrospect did I realize that neither are bad. Things that worked when we were a 10-person eng team weren't really working at 30.

I have lots of ideas on what happened/what went wrong, but this isn't a post about managing eng teams; it's about how I learned to manage myself. If you're interested in the former, read this. There's no such thing as a good strategy or a bad strategy; you have to consider the situation you're applying the strategy in. After all, even the smartest fish of all has 0 value if you're evaluating it on its ability to climb up a tree.

Here's something I've learned: if you're an early employee at a startup, by doing your job properly you're setting yourself up for obsolescence. If you do everything right, you'll be in a situation where you have to adapt or leave. Adapt to what? Things that you thought were reserved for "big companies" are now things you have to do. Things like JIRA, stand-ups, 1:1s, performance reviews, etc.

Expecting that your engineering team will grow but look exactly the same that it does when you're small is like expecting a baby to grow into a bigger version of itself, instead of an adult. Things that grow take different shape, and this is normal and to be expected.

I use this 2x2 matrix a lot since it's a useful framework when thinking about a growing company:

Processes:

  • Are good / Feel good
  • Are good / Feel bad
  • Are bad / Feel good
  • Are bad / Feel bad

Back to my story.

What was previously a relatively flat org became hierarchical and full of process. Part of these changes was getting two more layers of managers. I reported in to a director who I didn't really like that much. To be honest, I never really gave him a chance and judged right away. This was a mistake. I'm not going to share more about him specifically. But there were just a lot of things I valued that he didn't really care about. He didn't understand the business and wasn't willing to put in the work to learn about it. He called people "leaf nodes." And he couldn't spell. We had a recurring daily standup meeting and the title was "Dialy Standup." And this wasn't a one-time thing, it repeated every single day.

Things were fine at first but started to deteriorate over the next few months when I didn't get in line. Our relationship got more and more tumultuous, and I was insistent on winning every argument and feeling like I was coming out on top.

Ok, so around this time I was also in a long distance relationship. My (then) girlfriend became was at Yale. New Haven is pretty far from California, but fortunately I never had an issue working remotely some of the time. I could go whenever I wanted and nobody would ask questions; after all, I was getting my work done. Work was mostly on autopilot, all was fine. Until one Thursday in June. I still wasn't investing time in building a good relationship with my manager.

This same guy who previously misspelled "daily" in the recurring "dialy standup" calendar invite was sending these perfect emails summarizing my 1:1s with him. The guy who previously did not formulate a proper sentence was using words like "ostensibly" and "allegedly."

Here's a pro-tip I learned: if your manager normally cannot spell and does not use proper grammar or capitalization, and then all of a sudden starts writing memos that are formulated with perfect punctuation and spelling, it's not because he just installed Grammarly. No, he's building up a case against you.

Here's another thing to look out for. The team I was on got disbanded, and I got put onto a different part of the system. At first glance I thought this was good because I wanted to get better at diving into project source code and ramping up on code someone else wrote. As expected, several-year-old startup code has its own complications.

We'd be in our sprint estimate meetings where each person would estimate effort for their work. Except when I'd give an estimate, my manager would then turn to the person who also wrote that piece of the architecture and use their estimate instead of mine.

In June, two couples we knew had weddings, both in New Haven. I missed the first one because of increasing pressure at work. I sort of got pulled completely from one part of the company and tossed into a completely different part. And at stand-ups, my manager would ask everybody to estimate how long something should take, but when it was for my tasks, he'd ask the lead architect for that part of the system to estimate, then tell me to do it in that amount of time.

Stressful times. I listened to this one song on loop that's designed to make your heart rate go down. But every time I'd try and make a code change, rspec would take 2 minutes to set up fixtures and it was a shit-show. Then sometimes there were these 30/360 interest calculations that would be off by 1e-32 that would only ail after the test suite got 90% of the way through. But I pushed through and got my work done.

This was a Wednesday and I had missed the wedding the prior weekend. And I wasn't sure if I was going to make it to the next one, but on Wednesday morning I decided I'd go. So I emailed my manager to let him know I was going to be working remotely and updated my calendar to show that I'd be working remotely on Thursday and Friday, and partially unavailable on Thursday morning when the flight didn't have wifi.

I send the email, and a few minutes later get a calendar invite for 4:30pm that day with my manager. Weird. He wasn't in the office that day, so I wonder why he'd be coming in to talk to me at 4:30pm. I know a lot of seasoned folks will read this and see the writing on the wall, but honestly at this point, I didn't really expect it to be anything.

He shows up at 4:20p and we're both awkwardly standing outside the big conference room. I try to make small-talk but he responds with one-word answers. The room frees up and we walk in. He sits across the table and starts talking.

Then a few minutes in, I hear a knock on the door.

And it's the HR rep.

...

I still remember how that conversation went. There was some small talk of "I know you're going to go on to do better things" but the truth is, I don't think that's anything more than a platitude. It's so easy to say that to someone.

Anyways, we go through and I'm asked to sign some papers. I do and keep my cool the whole way through. What was going through my mind at the time? I had recently read Man's Search for Meaning and was inspired by a lot of the ideas. Especially about being able to take adversity. Obviously, getting asked to leave a cushy corporate job is nothing compared to Frankl's experiences, but at the time, this was a big deal for me at the time. It's not about how big of a deal something is to you - it's about how big a deal it is to the person experiencing it at the time. And to my well-sheltered, happy life, this was probably one of the top 3 scariest things I'd been through at the time.

I didn't really want to be there anymore, but I also wanted to know the specifics as to why I was being asked to leave. I read through the papers and there was something written about working remotely without giving sufficient notice before working remotely,. So I asked why.

Me: I've gone and worked remotely a dozen times, including while you were my manager and you never had an issue.

Manager: Our policy on that changed last week.

We both knew that was bullshit, but I didn't feel like fighting it. I think I made the HR person a little bit uncomfortable when I didn't flinch or get animated. I still remember her saying "you're the calmest person I've ever seen go through this." Fuck that, it wasn't worth losing my cool over them.

I put my stuff in a box. Some pleasantries were exchanged on the way out, I got strange/sad looks from coworkers, but just stayed focused on keeping cool. I (got) walked out of the building, and that was the end of that chapter. I did stop for ice cream on the way home because why not.

Newly unemployed and due to get married in four weeks, I decided on the following:

  1. I wouldn't tell a soul about this experience until I figured out what I was going to do.
  2. I was going to the wedding and was going to try my best to have a great time.

The next morning I was on my flight to the east coast. Somewhere over Utah, I got an email from manager's manager (the CTO). Apparently lots of people were asking about the circumstances around my departure and we agreed I should send a farewell email. I thought about writing something clever, but these types of communications are best kept polite and cordial. My advice: don't be an asshole. Just write the note and move on.

I drafted a short note, got it approved, and hit send. My email account got deactivated again a few minutes later; even some of my (now former) coworkers responses bounced. I could have chosen to get upset about it, but instead I called the stewardess, ordered a stiff drink and started making a list of people I should reach out to and opportunities I thought were interesting. I sent 20 emails to generate some consulting business and found a project within a week.

I showed up to the wedding and it was a blast. I started camping out at the Yale Libraries and got into a good routine. This was going to pass.

A sidenote: within 12 months, both my manager, and also his manager had something in common with me: none of us worked at that company anymore.

Recurse Center

Another thing I did: I applied for the Recurse Center. I'd always heard great things about it from others, and I figured this would be a good chance to try it. So, I applied and got in. Even there I was afraid to talk about what had happened, so I embellished the story of how I got pushed out and reduced it to "I decided it was time for something new" but sort of omitted the fact that the circumstances weren't great.

Here's something really important that I learned. When somebody asks you why you left your last company, you can say absolutely anything you want with ONE important rule: do not say anything negative about your past employer.

  • Instead of: "I didn't like my manager," say "we had differences of opinion and we're the average of the five closest people we spend time with"
  • Instead of "there was too much tech debt," say "I wanted to join a company at a different stage"

I've been on the interviewer side of the table before, and you'll never win anything by being negative during an interview.

Those next few months were pretty great. I had spun up another consulting project, this time with a big bank that you've definitely heard of. This project paid twice what I was making at this last company. And trust that I worked my butt off for this project. I was putting in roughly 50 hours/week on this project, another 40 at RC, and generally wondering what to do next.

Earn

A few weeks later, I was out in San Francisco for a meeting with said bank. My phone buzzed at 5:30am; it was an Earn.com push notification. It was from Balaji and it said "are you interested in an engineering role at Earn.com?"

I didn't know much about Earn.com and didn't know much about Balaji, but I'd followed him on Twitter for a while and knew he seemed interesting. So I responded "yes" and a few days later got sent a HackerRank puzzle. I finished the hiring exam and got back to what I was doing before. I later found out that out of 250 people who had taken the quiz, I had gotten the highest score.

Later that day I did two quick google hangouts, one with John and another with Ali. And later that day, Balaji called and asked if/when I'd be interested in flying out to San Francisco to work with the team for a week. I had another trip already scheduled out there for my consulting engagement and was going to be there in two weeks.. so I asked if two weeks worked. Balaji's response was "what's the soonest you can come out."

That really left an impression. Get it done now. A lot of people ask what it's like to work with Balaji, and this is one part of what makes him so effective. If we can do something now, let's do it now. Move quickly and compete. But all this was extra, I was just happy I was working with someone who didn't mis-spell "daily."

The next day I was on plane to San Francisco.

Earn had a product called the Greenlister which relied on the Gmail API. This project started off as a hackathon idea and ended up getting some adoption. But there was a problem: it grew quickly but wasn't the company's core focus. It was taking ~2h for the email server to process a push from the Gmail API. And when a worker did get the notice, it'd spend lots of time waiting on DNS requests to resolve. Lots of blocking IO and my goal was to make it really fast.

Feeling hungry for an opportunity to prove myself, I worked pretty hard that week. I started on Monday; by Wednesday afternoon I had solved the core issues and had a lot of the service written using asyncio primitives. I also did a deep deep patch of the Gmail API where I rewrote every network call to support coroutines. What I thought would be a month-long project took a few days. Maybe I had learned those core things that I thought I was looking for two years prior.

Later on that day around 4pm, I got a 4:30pm calendar invite with Balaji.

This time I walked in and there was also lots of paperwork on a conference table, but this time the paperwork was an employment agreement, an Earn.com NDA, and a Coinbase NDA.

Coinbase

Working at Coinbase was a brilliant time. I'll write about that some other day.

Epilogue

For now, though, I'm starting a new company and you should reach out if you're an engineer and want to learn more: omar@center.app.