Photo by Joey Kyber on Unsplash

By Josh Callender and Andrew Hao


In 2019, Lyft’s frontend architecture needed a reckoning. We were growing quickly as a company, and new teams were creating new software systems daily. At that point in time, we were generating new frontend services from a service generator template — complete with a copy of our bespoke, zero-config frontend build platform. Having such an easy means of service creation led to an explosion of new services with heterogeneous code built upon our React-based frontend architecture.

At the same time, we were running into headwinds trying to maintain our own frontend platform — an…

Diagram showing human avatars in the loop of Systems, Models, Metrics and Funnels
Diagram showing human avatars in the loop of Systems, Models, Metrics and Funnels
How do we keep users at the forefront of our ML systems?

ML model development is hard and is full of challenges — not only is it difficult building data pipelines that can furnish a large data set that’s properly formatted, preprocessed, scaled, and trained on, there’s problems of balance, bias, out-of-training performance, and overall model performance.

All this work can cause us to miss the forest for the trees.

The deeper, more fundamental questions we should be asking

Developing the right model architecture and data pipeline, though flashy and news-article-worthy, is only one part of the process. …

Wejoinin has been a passion project of Hsiu-Fan and myself for over 10 years now, and this month we celebrate its 10th birthday! From back in the days when we launched it as a passion project as UC Berkeley students, we’ve always seen it as a tool to solve the problems that we were facing getting people coordinated and organized for events.

We’re 10 years old!

The fun thing about this story is that we’ve grown the product while working on it completely as a side project. …

I want to discuss a topic near to my heart, a topic I believe to be the crux of effective software design. No, it’s not a new functional language, it’s not a fancy new framework, it’s not a how-to guide to do micro-services, nor a quantum leap in the field of machine learning.

It’s much simpler. It’s about names.

Names define us. They give life to abstract ideas and concepts and yet also stand in for real, physical objects. They’re language concepts, but more than that, they’re units of meaning. …

In Part 1 and Part 2 of this series, we introduced the engineering team at SuperStartupCorp. They had built a reputation for delivering quality software, fostering a culture of trust, and developing healthy learning practices. Read up on the first two parts, then join us to discover the final secrets to their success.

7. They play well with the product team

Effective teams have healthy dialogue, mutual trust, and co-ownership of the product development process with product owners and designers.

Having a problem-solving attitude with product owners

Ryan, a former product manager with Carbon Five, appreciates it when developers respond to product owner questions with helpful alternatives instead of stonewalling. He says:

Some developers can…

In Part 1 of this series, we introduced a high-performing engineering team at SuperStartupCorp that had automated repetitive tasks, codified its engineering practices, and adopted a learning mindset, resulting in happy engineers and happy stakeholders. Read on to learn more traits and practices that make this team so successful, and how they keep their bus factor high.

The Bus Factor. It’s real, folks.

4. They spread knowledge around

SuperStartupCorp engineers were well-rounded engineers, each familiar with multiple aspects of the codebase. The team was familiar with the “bus factor,” the slightly morbid term for the number of stray buses that could take out members of their team — and perhaps their…

Behold the engineering team at SuperStartupCorp: their steady delivery of features, humble reception of feedback and crafting of well-architected software systems earn them praise up and down the company. The team greatly enjoys working together, and consistently leaves the office feeling accomplished, empowered, and happy.

High performing teams codify practices that build their culture.

How is this team able to consistently deliver features for the business, while maintaining morale in a changing sea of fluctuating product requirements, leadership changes, and unplanned site emergencies? It wasn’t always this way.

Read on to learn the first three steps to this team’s journey towards engineering happiness…

1. They automate the easy things

SuperStartupCorp engineers liked to argue. In…

Hiring begins with culture.

It’s a common scenario for tech companies: Your hiring pipeline is dry and you can’t seem to attract new talent. You notice companies touting long lists of superficial benefits. Instead of improving your internal team, you find yourself worrying about getting a pro-grade ping pong table for the break room.

You don’t need helicopter rides or Massage Mondays to bring people into the fold. Instead, focus your energy on making lasting changes to your company’s DNA. It won’t be easy, but the results will keep your existing team happy, which translates to positive conversation about your organization. …

Andrew Hao

Engineering @lyft, @carbonfive alumni, co-founder @Wejoinin. Trail runner and coffee lover.

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store