Q&A with John Li: Engineering Manager of Design Services

John Li

Meet John

What is your current role?

My official titles are Senior Android Engineer and Engineering Manager of Design Services.  My roles include: 

  • Design Services Android Tech Lead 
  • Services Android Architect
  • Android Super League Lead
  • Android Tech Talk Organizer
  • Kotlin Conversion Captain
  • App Performance Captain

What does your team do? How does it fit into the world of Wayfair? 

Design Services is Wayfair’s online interior design service that connects home shoppers with real interior designers. We leverage Wayfair’s technology to create seamless online collaboration between customers and designers on looks that suits people’s unique lifestyles, spaces, and styles. Think industry-standard service, without having to get off the couch.

Design services offerings

How long have you been at Wayfair?

I’ve been with Wayfair since March 2019

What was the first 90 days like starting here?

Wayfair had the best onboarding process I have seen.  We spent the first two days really getting to understand the values and culture in orientation.  After orientation, I was provided a document with details on the team I will be working with, who’s the go-to person for certain things, which training workshops I should attend, and how to set up everything.

Everyone was super nice and helpful.  Design Services is a team that feels like a start-up.  The iOS and Android teams work very closely together because they share all of the same features.  The web and design team are available to support us, and the product team collaborates with engineering on prioritizing work.  The teamwork and collaboration is unbelievably amazing. I got onboarded fast thanks to all the help I received.

Three weeks after joining, I started a discussion on the Android architecture channel in which I suggested we should switch our architecture from VIPER to Clean Architecture.  I rewrote a feature with a completely different architecture to show off a concrete example. We engaged in a debate and I really appreciated getting to know the passionate people involved.

The discussion didn’t result in any sweeping changes.  What came out of it was the “Building Better Apps with Clean Architecture” tech talk that I gave internally four weeks later.  Those ideas that I brought up back then were also shared by the Wayhome team and we were able to collaborate on giving a tech talk on alternative architecture/design patterns.  

I find it really silly looking back at how I went about changing the architecture, but it was a great opportunity to learn and understand the motivations behind those important decisions.

How has your role changed since you started here?

I started out as a tech lead and now I’m an engineering manager as well as an Android architect.  I used to primarily work on features, bugs, and establishing better practices for solving Design Service’s challenges.  Now I spend time thinking about training and ensuring the growth & happiness of my teammates as well as developing broader technical strategies for the Services team. 

In the broader organization, I joined several workgroups aimed at improving community, onboarding, documentation, app performance, etc.  I also found the opportunity to develop the community at Wayfair by organizing the Android Tech Talks, Android Roundtable Discussions, and App Lightning Talks.  I do a bunch of community-related things here and I enjoy having the autonomy to engage in these activities.

I started out focusing mostly on programming and learning about the product.  Now, I balance my time between establishing technical strategy, fixing critical bugs, organizing educational initiatives, and mentoring.  


John’s Day-to-Day

Every day is different, but can you outline what a typical day looks like for you?

Wayfair has an amazing fruit and snack offering so I usually start the day off by eating breakfast at the office.  I always begin my work by checking my emails and messages before plotting my day on paper. I’m most productive in the morning so I try to get some technical work done early. 

Generally, my day is sprinkled with meetings for various engineering or community initiatives.  I try to find time to work on smaller tasks or documentation in between meetings. There are days where I have minimal meetings and I can focus on architecture or feature tasks.  

Are there particular seasons of the year that are busier than others? If so, why?

I’m always busy.  What I want to do aligns more with development than management so on the weeks where 60% of my time is in meetings, I make sure to find time to do something technical and fun.


Collaboration Across Wayfair

What are some of the different teams that you work with?

Design Services works with the Product Display Page (PDP), My Account, WayChat, Lists, Envision, Room Planner 3D, and other teams.  Being the organizer of community events, I end up working with a bunch of people from every team. The situation is the same with participating in the various work groups.

What is your role in your relationship to product?

I love working with the Design Services product team.  Shout out to Pam and Evan for being amazing product partners.  It’s so easy to work with you on prioritizing product work, bug fixes, code improvements, and fun tasks.  


John’s Favorite Parts of the Job

What is the most interesting problem you are trying to solve?

The big problem I’m currently trying to solve is how to take our code and practices to the next level and tackle the challenges of our scaling product and team.  A lot of technical issues that pop up brings awareness to the fact that we’re growing in many ways and we’ll have to innovate to continue to be successful. That starts with being proactive with education, communication, and adopting the best new ideas.  

A specific project I am working on that tackles part of this problem is figuring out and prototyping the release of internal Android libraries.  This will speed up build times and promote more modular design and consideration in our code.

What recent project are you most proud of?

I really enjoyed modularizing the Design Services code into a feature module.  It has greatly improved build time and enables us to develop faster with new features.  We haven’t moved all of our code over, but the foundation has been set. Our modularization efforts will keep us mindful of code cohesion and communicating with our partners and clients.