Published on
Time to read
12 minute read

Compass Adventures

Blog post image

As I sit down to write about my tumultuous first year as a Senior Staff Software Engineer for Compass, I can't help but still feel a little dazed. These past few months have been some of the wildest of my career. And that's saying something. I've been through numerous acquisitions, conference-driven development timelines, leadership shakeups, and rocket ship products at FAANG, but nothing has been quite like my Compass adventure.

The Timeline

I knew full well when I joined a real estate technology company in the middle of a pandemic housing bubble that some sort significant correction in equity value was likely in the near future. But I definitely did not expect the swiftness and extent to which the effects of this recent tech-specific recession has impacted my day-to-day work. Let me give you a brief timeline of what's happened, looking only at public information.

I joined Compass in November 2021, when COMP was trading at $13.10. Things were looking pretty good, the company had stabilized its stock price a bit after a shaky IPO, revenue was still growing, and I was excited to be playing a significant leadership role in their engineering org. But by the time the 2022Q1 earnings call rolled around, our profit margin sank to -13%, COMP dropped to $6.51, and things started to get rocky.

In June 2022, the first round of layoffs dropped, and COMP fell to $3.80. The round was relatively small (only ~10% of the eng workforce I think?), but the atmosphere in calls and Slack was still tense, to say the least. We all knew that more cuts were coming.

Sure enough, in August 2022 live on their Q2 earnings call, Compass announced further restructuring, with the intention of cutting ~$320M from the budget for FY2023, all from just R&D spend and agent signing incentives. Of course everyone rushed to the 10-Q to lookup this year's annualized R&D spend...$400M, damn. This one wasn't going to be surgically trimming waste with a scalpel; this was going to be hacking away with a machete.

By October 2022, the second round of layoffs was complete, and COMP sank to an all-time low $2.28. Only 11 months after I joined, the engineering budget had been gutted, four years of RSUs were sitting at less than a fifth of their grant value, and I'd gone through four different managers already. Ouch.

You might think that I regret joining Compass. And, if I'm being honest, there have been moments when I've questioned my decision. But in this post, I want to talk about some of the accomplishments we've achieved this past year, and why, despite everything, it's been an incredible personal and professional growth opportunity that I wouldn't take back.

Unification & Training

When I first joined Compass, I was excited to take on new challenges and grow as an engineering leader. I had previous experiences in small-scale people management (~5-10 reports, ~15-20 stakeholders to wrangle) and complex engineering (Google, Optyx), but large-scale engineering leadership remained a major missing piece on my resume bingo board. That's exactly what I was seeking in my last job search, and that's what I found here at Compass.

One of my first major challenges was to unite a broad organization of around 120 engineers that had recently been brought together during a reorg. These teams weren't used to working together, and each had their own workflow and engineering process. I developed a plan that would bring together these teams and get them working collaboratively toward a common goal.

The cornerstone of my approach was a unified architectural review process for any sizable engineering effort or cross-team work. While met with a fair amount of resistance at first (I get it y'all, I hated having to slow down to thoroughly document proposals when I was a young lad too), the benefits started to speak for themselves after the first few brave souls gave it a try and in under 5 months we reviewed 20+ major projects. We caught several potential problems before they could occur, looped in the correct teams months earlier than they would have otherwise been informed, and improved the quality of our designs in the process, not half bad.

For some engineers, this was their first time in a broad architectural review setting or even getting feedback on a design from such a senior engineer at all. As such, I felt it was important to provide some additional guidance along the way, I couldn't leave them high and dry now could I! To support the review group, I created a series of technical writing workshops with step-by-step instructions and advice on how to write a great design proposal. Giving these workshops was a lot more fun than I expected it to be and is probably one of my favorite Compass memories so far. They were a hit! The courses received a 9.4 NPS with 100% of respondents saying it was a valuable use of their time. Yes, you read that right. Engineers unanimously said a meeting was a valuable use of their time! Incredible!

Selling a Vision

While all that was going on, I had to satisfy my urge to code too though. I wasn't going to sit by and let everyone else have all the fun. Being the web performance and frontend development nut that I am, I set my sights on the vast collection of web applications powering Compass's business, and, boy, was it vast. With 1000+ engineers and the complexities of running an entire business on your platform in an industry where regulations change city by city, you end up with a lot of different tools. I counted almost as many different applications as there were hands to write them.

The root challenge here was organizational in nature and an excellent example of Conway's law in action, you ship your org chart. Many different, independent teams built these tools, and the technical mechanism available to them to do so was starting a new, independent application each time. To change the too-many-applications problem, we either needed to reorg the whole company again (nothing has ever gone wrong doing that, right? 😉), or find another way to address the symptoms. A fresh engineer who joined 6 weeks ago wasn't going to be changing the entire org chart across the company anytime soon, so option 2 it was. If we were going to continue to ship several hundred independent things for the foreseeable future, maybe I could at least suggest we ship something a little bit lighter than a complete, independent application?

I had a vision of what might lead us out of this quagmire, but I hadn't been in the trenches all that long yet. I needed backup. I sent up the bat signal for feedback. I wanted to learn from anyone and everyone at Compass that would talk to me. What problems were you facing? What incidents are happening? What slows you down? What drives you nuts? I aggregated the feedback of more than 80 frontend engineers across the company through interviews, surveys, and good old fashioned friendly chit-chat.

With this wealth of data at my disposal, I began to prototype different solutions, eventually honing in on one in particular, microfrontends inside a shared React monolith. I set to work crafting a manifesto outlining my vision for the future of frontend development at Compass. But given the company's culture of independence, I knew that getting buy-in from all 200+ frontend engineers wouldn't be easy. I worked tirelessly to refine my proposal, ensuring that it was clear, concise, and compelling. To help build support for my vision, I reached out to respected tech leads across the major organizational groups at Compass, seeking their endorsement and advocacy. Thanks to their backing, I was able to lock down the support of the most senior and influential frontend engineers in the company, paving the way for implementation.

After aggregating the feedback from the frontend engineers, I knew I needed validation from my senior staff colleagues as well. While I was confident in my proposal, I wanted to ensure that it aligned with the company's vision and that it would withstand the fiercest scrutiny. To achieve this, I sponsored a review through the highest level software architecture review group that included VPs and even the CTO. I made sure to address all concerns and answer any outstanding questions. Thankfully, there was resounding support, dare I say excitement, around the proposal, which gave us a much needed infusion of energy.

With widespread support in hand, I assembled a team, and we set to work implementing the new framework. We spent countless hours refining our approach and testing many different integration use cases to ensure it delivered on the promise of a reliable, efficient, and unified path forward. Finally, we had an MVP that we were proud of and that we knew would make a huge difference in the company's goals.

We found a few early adopters that were poised to benefit the most from our new framework. These engineers were excited to be a part of this revolutionary new direction for frontend at Compass and gave us invaluable feedback that empowered us to streamline even more. As a result, the new paradigm dramatically simplified their work and reduced their integration time by 80%. It was a significant milestone, and we were proud of what we had achieved.

But alas, this pivotal moment is precisely when that Q2 earnings call came down with the news of significant layoffs. I knew our project would be put on ice. For good reason too. Afterall, we were solving organizational challenges brought on by trying to coordinate many independent teams. If the new Compass was to have a significantly smaller engineering org, solving challenges only faced by massive orgs isn't really the best use of our time anymore.

Although the future remains uncertain for migrating more infrastructure to this exciting technical path, the experience was still full of incredible learning experiences. I've pushed open source changes through on projects with hundreds of contributors, but OSS is mostly lurkers and largely crickets in response. I've pushed through cross-team changes with lively debate, but that was just 20-30 people. This multi-hundred person discussion and consensus all the way up to CTO of a multi-billion dollar company was fresh territory for me, and it felt incredibly satisfying to see it through to (partial) completion.

Making the Tough Decisions

Speaking of the layoffs...

I obviously can't share much about the process itself for legal reasons, but let's just say it was a very challenging time for everyone involved. There was a multi-week gap between when the Q2 earnings call and when affected employees were let go. When the news dropped that the company was cutting the engineering budget by almost 80%, I was pretty sure that I was going to be one of the first out the door. As a director-level employee with the shortest tenure and expensive salary, I seemed like an obvious cut.

About a week after the initial announcement, I heard rumors about the direction the board was planning to go in. Regardless of my personal future, I figured they were still paying me for my professional opinion to ensure the future success of engineering (or at least for the next few weeks). So I pinged my fellow senior ICs to fish for support and made an appeal directly to the CEO, Robert Reffkin. The message was along the lines of, "Forget my job, it's fine, but as an engineer and shareholder, I believe INSERT_RUMOR is not in the best interest of the company. Please consider going a different direction." Robert had always had a larger than life presence, with an energetic, warm, and enthusiastic personality. To my relief, Robert in private entirely lived up to the public persona. He was receptive and took the time to speak with me and another engineer who had co-signed the letter about our concerns.

Shortly after that conversation, there was a change in engineering leadership. I remained in my position, and I was fortunate to have some voice in the direction of engineering at the highest levels moving forward. In the weeks that followed, I had some of most challenging professional conversations I've ever had, but honestly, after weeks of frozen timelines and uncertainty, the sense of purpose, energy, and urgency was invigorating. A few weeks later, the layoffs came down along with the strategic new organization structure that we had been planning.

Compass Engineering is now a much smaller group. The remaining employees from the 200+ group of frontend devs that I had to convince a year ago could now fit in a single conference room. Despite the struggles, I'm cautiously optimistic about the future. Given everything the executive team had to address in such a short time, I thought the reduction-in-force was incredibly well handled, and the experience has given me greater confidence in my engineering management leaders than I've ever had before. There's a lot of potential to come out of this leaner and stronger but with the same exciting upside. Only time will tell if this will all work out for me, personally, but at least for now, I'm happy to still be along for the ride.