Mentored an Engineer
Coached an Engineer
Shipped an app
+1
Led a team of 8 engineers, for Khan Academy's 3 Test Prep products!

Gosh, I loved this product team. It was led and mainly staffed by women and people of color; it had a strong mix of experienced and brand-new engineers; and held a strong commitment to understanding our learners and doing what's right πŸ’œ

Test prep is a complex ethical space! Our goal was to help reduce the inequity in testing, and combat the predatory test prep market, with a free test prep app: designed to help learners with limited time and resources still have a competitive practice experience.

During my time as engineering lead, we were in a pivotal moment: continuing to support and improve our SAT app full-time, while also building new LSAT and Praxis prep on a new platform. There was a lot changing at once, and a lot for everyone to keep track of!

So, my main contributions were coordination and glue work: high-level technical planning, code review, and making sure everyone's work came together coherently across two codebases!

I think this surprised people who have different expectations of a "senior engineer"? I didn't actually write that much code myself at all! But we frequently finished ahead of schedule, including our LSAT launch, while keeping a particularly happy, healthy teamβ€”and that's what I measured myself on 😊

🌻 The work I'm proudest of, was helping create space for our brand-new L1 engineers to become trusted leaders and experts.

We started as a relatively project-siloed team, where the eng lead drove most of the decisions and others just worked on their tasks; and where conversations were dominated by the louder voices, and it was hard to speak up and share.

But by the end, we were so much more collaborative 😊 People frequently got together for pairing, everyone confidently contributed to discussions, and our L1–L2 engineers drove more and more of our key technical decisions, with the team's support.

Personally, my contributions were mostly about setting the stage:

  • We overhauled our team's weekly "Eng Brainstorm" meeting, to be easier for everyone to follow along and contribute. (Clearer agendas with more context was a big one! It helped invite everyone into the conversation.)
  • We encouraged folks to share their work and decisions with each other, and get feedback early. (I listened in 1:1s for specific opportunities for people to work together and share their changes more proactively!)
  • We helped people find tricky technical decisions at the edge of their skill level, and gave them the right balance of support and autonomy to practice for themselves!

Anyway, this is mostly a story about the wonderful team, and all the amazing work and growth they achieved by their own strength!! I'm just honored to have had the chance to help find the space for it, and I hope I have more chances like this in the future πŸ˜ŠπŸ’œβ—

πŸ’­ My main learning is, I wish we'd considered a refactor, instead of a rewrite.

Our SAT app had been created quickly, and was hard to maintain. A rewrite was a tempting way to clear away tech debt! And we wanted to support new exams, and make major design changes, so a clean-slate rewrite felt like a major product opportunity.

But we didn't really understand what we were getting into. We tried to build a totally-general "plug-and-play" platform from day one, without really knowing what it would need πŸ˜… And we assumed the SAT app would migrate over quickly, but it ended up living on for years! Turns out, legacy apps have inertia 😬

If I were in a similar position today, I'd suggest a safer alternative:

  1. Refactor the SAT app into a stable codebase that actually can support major changes going forward! (Probably a lot of small rewrites, instead of one big oneβ€”all within a safe, stable product framework.)
  2. Then, experimentally add one new exam to the platform, before aiming for total plug-and-play.

That way, we'd learn what a general platform would need to support, before fully committing. And the refactor work would pay off, even if we changed our minds and went in an SAT-only direction! A lot less risk, and a lot more feedback, as we explore this new product space πŸ’–

Anyway, our team did a great job with what we knew at the time! But now I've learned: Rewrites are sometimes the right choice, but they're often a bigger commitment than expected, especially for new ideas. Make sure you know what you're getting into, and consider whether thoughtful iterative changes could have the same effect!