Introspective on Being an Architect, Tech Lead, Team Lead

Ken Yee
4 min readJan 4, 2020
(from https://www.careermetis.com/essential-qualities-team-leader/)

It’s the end of another year and a time to reflect on the meaning of life (also known as annual reviews). This is my third company that has had 360 Degree Reviews and writing a self review always has meant a deeper self reflection/introspective that I usually don’t have time to do during the course of the year.

When I left KAYAK earlier this year, I wrote a farewell/thanks memo and unusually signed off with a few nicknames that I was surprised no one asked about before I left (though the team lead did hilariously ask whether I misspelled the CEO’s name deliberately which I guess management believed because my farewell lunch was at the mall food court :-)

Little did I know, these nicknames were attributes that Wayfair quantified and documented as things that are expected of their architects. The nickname a.k.a. list included:

“I Bleed So My Team Doesn’t Have To”

For taking care of issues while the teammates relax (e.g, fixing a crash spike in code I didn’t write during Thanksgiving).

For testing all the alphas/betas of tools before they need to use them including Android Studio, Gradle, and Kotlin (and setting up ktLint/Detekt to keep help them transition from Java).

For helping fix CI/CD issues so the team can operate smoothly.

“Iceberg Navigator”

  • For trying to steer everyone towards the future without hitting icebergs on the way.
  • For pushing hard to get Kotlin into the app (and server-side but they steadfastly refused to use Kotlin even though over the next year, Spring added huge amounts of support for it thanks to Sebastian Deleuze) before and after Google approved it.
  • For steering the use of Android Arch Components as our official architecture from a mix of BBOM (Big Ball of Mud) and an acquisition’s MVP architecture.
  • For trying to add UI integration testing two years before it was asked for by management.
  • For working on early features like App Slices before management asks because it looked important to the business.
  • For warning our team and legal about GDPR in June 2018 because other app devs were freaking out over it, but we weren’t told to implement it until Jan 2019 when a privacy story blew up.

“Google Liason”

  • For working with Google on various Early Access Programs like Google Pay and Firebase performance and helping improve their UX and APIs.
  • For working with the Crashlytics/Beta folks on testing their migration tools to Firebase and helping improve their UX via various focus group sessions.
  • For pre-alpha testing various Android libraries including the Arch Nav Components and Arch ViewModel SavedState to see whether they should be used in our architecture.
  • Filed bug reports with Google and provided repro code.

“Bridge Builder”

  • For working with the API team by helping test their early checkout APIs and reviewing code and identifying APIs that could be improved.
  • For working with the iOS/mWeb teams by comparing API usage with them and warning them when finding idiosyncrasies.
  • For bridging the Android developers in Berlin by getting up early to help with anything they needed before my Cambridge coworkers were awake.
  • For building bridges to the acquired Momondo Copenhagen Android team to acclimate them to our development culture.
  • For bridging the UX team by helping them understand what is needed for Android Vector Drawables, Android Material Theming, and Tablet Layouts; and by attending an After Effects course with them to improve their understanding of Lottie.
  • For bridging w/ the Data Science team in a great in-house data science course to see whether we can apply ML to predictions in-app by looking at device usage to see when people would like to travel. It didn’t hurt that our mentor from the DS team was an avid Kaggler…we ended up winning the competition at the end thanks to Remi ;-)

“App Janitor”

  • Because being an architect, tech lead, team lead is not always a glamorous job.
  • For cleaning up 3000+ lint warning despite management saying “no one looks at them so why bother”.
  • For updating all the libraries that were years up to date and doing multiple 300–2300 file PRs to bring the app up to date.
  • For bringing our crash rate from 96% to 99.96%.
  • For providing a better way to help solve crashes than just looking at stack traces.

This can be summarized into these simple guiding principles that I’ve always lived my life by:

  • Always help others become better because it makes you better: mentor, do code reviews, help out in “not your expertise” areas, write wikis, write blogs, do presentations, help at local meetups and conferences.
  • Never stop learning because you never know everything and the more you learn, the better you can see; share what you learn (see the previous point) because it makes people around you better.
  • Be a good role model so people can respect you and follow your lead; always be professional, courteous and friendly and call out things that are illegal or morally questionable.

These are all attributes anyone with these titles above should have and should cultivate…they’re definitely ones I’ve tried to improve and live by through my career.

Hope everyone has a great New Year!

p.s. yes it was a typo…one ‘f’ not two. I’d blame it on the crappy Mac butterfly keyboard but I didn’t have one at the time :-)

--

--

Ken Yee

Mobile (Native Android), Backend (Spring Boot, Quarkus), Devops (Jenkins, Docker, K8s) software engineer. Currently Kotlin All The Things!