Han Yuan is the Senior Vice President of Engineering at Upwork. He is an experienced programmer and engineering leader with time spent contributing at Saba, eBay, Netflix, and Upwork.
Han also co-founded a social network, buddystumbler, which was acquired in 2008. As an engineering leader, he is an advocate of “extreme transparency” and frequently shares thought-provoking essays on engineering management and leadership. Currently, Han is “on sabbatical for hackers” and is focused on his incubator, Post-PC Labs LLC.
Short on time? Here are four key takeaways from Han’s interview, which outlines his take on being a senior manager of an engineering team with a focus on the importance of documentation:
- Building technical teams is not like being an engineer: you are creating a structure of people, not a website. In transitioning from engineering to leadership, Han learned that he had to focus on understanding how his engineering team’s operating systems worked, and that mentorship plays an essential role in empowering leaders to make good decisions.
- Written communication is fundamental in a distributed teams. When technical teams are spread around the globe, written communication is essential because it is fundamentally asynchronous.
- Leaders should humanize themselves with their engineering teams through transparency. To encourage trust and open communication, leaders need to be transparent with their technical teams by clearly stating business goals, as well as personal successes and failures.
- To scale an organization, you must put systems in place to move authority down into the organization. Senior engineering leaders must learn to bridge their authority to the people who are doing the actual work. If successful, the system you build can run without you.
What follows is a long-form write up of the key topics we discussed in our interview.
Upwork is a marketplace that connects businesses with high-quality freelancers. Before serving as their VP of Engineering, Han had leadership roles at Netflix and eBay. He has also worked as a developer at various companies and co-founded a startup.
Han has been in Silicon Valley for two decades — “it has been an interesting 20 years. We have gone through the ‘.com’ boom, the crash, the financial crisis. So, I have seen a few ups and downs.” His current focus is on consumer-facing enterprise solutions.
Building organizations is different from building software
When Han started at Upwork, he was responsible for anything that had to do with a computer — from IT to data science, to quality and development. Although he still considers himself an engineer, being in engineering management showed him that “unlike an engineer, where you are building a website, there is also a mentorship role. It is my responsibility to make sure that my leadership and engineering leaders across the organization … are empowered to make good decisions.”
As an administrator, you are first and foremost building a team of people, and really trying to understand how that team’s operating system works. “Dealing with people and process was different [after moving to a leadership role].”
Written communication is the key to managing a distributed team
Han’s engineering team is around three to four hundred people spread across forty countries, making it the most distributed team he has managed. While it has been an inspiration to him, it has also been a challenge. Because Upwork is a marketplace for freelancers, about two-thirds of the development team consists of independent contributors from around the globe. This forced Han to answer the question, “how do you build a community when everybody is at home?”
“Written communication is fundamentally async. That allows you to scale your communication.”
What has worked for Han is adopting written communication as the primary mode of moving information around the organization. He then tries to democratize ideation through the use of a process inspired by the python enhancement proposal process. He has also worked on trying to understand the cultural challenges of managing people in different countries, especially when he isn’t able to get body language cues.
A fanatical approach to transparency
Just before the interview, Han posted an article on LinkedIn about being transparent by sharing his management principals with his organization. This is part of Han’s commitment to being radically transparent. He takes this approach because “one of the challenges that I’ve experienced in engineering management is that you have to figure out ways to humanize yourself a little bit. At some point, people are afraid to give their supervisor feedback.” So he creates and publishes a document that outlines his management principles, the leadership experiments he is undertaking, and the mistakes he has made.
“If the head of engineering can make mistakes, then everyone can admit their mistakes.”
The principals outline the values and goals that Han has and the rules that guide his decision-making. In the experiments portion he documents “an explanation for what you are trying to do, and what you are trying to achieve so you become more predictable.” And the last segment, the error log, captures his mistakes and what principles he feels he violated along with the feedback he received. He was skeptical about how leaders or companies would take his fanatical approach to transparency, but it has worked in his organization.
Know when to step in to fix problems
When asked to share an example of a mistake from his error log, Han relayed an experience where a team was ill-equipped to succeed and it was not making enough progress. He learned that when you “misread the task-relevant maturity for a program owner or project owner, what you end up doing is delegating too much of your understanding.”
“You can end up potentially allowing your customers to pay for the tuition of your own staff.”
Instead of letting them run off the tracks, Han will step in and fix things rather than let it be a learning experience. If he does not fix things, then the customers end up paying when they try to use the software. It also gives him a chance to understand the cause of the mistake.
For Han, the idea of stepping in also includes the need to be decisive in a crisis. Although he is a champion of an open meritocracy most of the time, “there are times when things have to have a single decision-maker.” He has put in place clear protocols for those crisis situations. “When you go into autocracy mode it is a function of how much time you have and how bad things are. If you don’t have a lot of time and the stakes are high, you have to be bias towards a speedy decision-making process.”
Full-stack engineers who can think diagonally provide greater flexibility
When it comes to hiring software engineers, Han has a preference for bringing in people with multidimensional skills. He feels that many engineering leaders prefer to bring in specific experts in each development discipline — and that this is a preference and “there is no right or wrong answer.”
“I personally have always preferred to hire full-stack engineers. The preference comes from the ability to scale up and down.”
With this type of technical team, Han can move people around as needed, leveraging generalists over specialists. He explained that being multidimensional goes beyond their software development expertise. “I would prefer to work with engineers who have a broader viewpoint on the world. I like working with engineers that care about the business and have some business sense, and who care about the user experience.”
Delegation enables scaling
The one piece of advice that Han would like to pass on to other high-level engineering leaders is that leaders need to bridge their authority to the people who are doing the work. “You are never going to scale if you end up making all the decisions yourself.”
Han advises managers to put measures in place that move authority down as far as needed in an organization. Doing so allows the team to scale and makes it more resistant to failure. He concluded by pointing out that a successful engineering department is one that can run without the leader — “that is the ultimate goal of any leader, to be able to manage themselves out of a job.”
Codility provides tools to help hiring teams find, screen, interview, and hire top developers. Get additional insights on effectively managing technical teams by subscribing to our blog or chatting with an expert today!