So when it comes to learning from their experiences, a great place to start is with the problems they've encountered. In the realm of software engineers, you'd be hard pressed to find a more compelling problem solver than Nicholas C. Zakas, 37, a principal architect at Box who also led the design of Yahoo's homepage.
1. When you're in over your head, be unafraid to ask questions.
In his first nine months at Yahoo, Zakas felt overwhelmed by the high level of talent around him. "I felt like the intern knew more than I did," he notes. He rose to the occasion, he says, by being unafraid to ask questions. Even then, he says, it took him about 18 months to find his stride.
2. Teaching makes you a better leader.
Here, Zakas isn't referring to teaching in a classroom, but teaching his colleagues his modus operandi as a lead software engineer. "I started thinking more of what it means to be a tech lead and a lead software engineer versus someone who just does what they are told," he says.
3. Translation is only the start of designing for a global audience.
The sequence--and shape--of the letters and languages has a profound effect on the front-end design, too. For example, when designing Yahoo's homepage for Japan, "where the topography of the characters is much more compressed," Zakas's team had to figure out what to do with all the extra white space. "We also had to account for languages that are written from right to left without requiring for a whole new homepage design," he notes.
4. The first step to fixing bugs is fixing your communication.
When he started at Box, Zakas noticed the coders often disagreed about how to make fixes. The good news was that they had strong opinions. The bad news was that the bickering slowed down the fixing. So one of the first things he did was align the team around a style guide for small fixes. "Then we were able to focus on higher level problems," he says.
5. Starting from scratch is seldom an option.
"You rarely get to rewrite something from scratch that brings in a lot of revenue," notes Zakas. That's because if any of your tinkering creates a major error, the company will start losing money. So one of Zakas's early initiatives at Box was finding new ways for his teams to make changes without worrying about breaking something unrelated to the fix. Zakas was able to decouple some key pieces of the site's architecture, so his team could work on them in a worry-free way--like a mechanic working on an isolated component, rather than the entire car.
6. Work-life balance really is as important as everyone says it is.
To avoid burnout as a freelancer, Zakas, who has suffered from Lyme disease since 1998, began limiting himself to a 9-to-5 workday. "It is important as a human being to focus on other things besides coding," he notes. He used his leisure time for meditation, cooking classes, pilates, and yoga. And likewise, at times he needed to lean more heavily on work to take his mind off of how tired or sick he felt.
"Looking back, I can't say it has been fun having Lyme disease," he adds, "but having these constraints on me has been the driver that has enabled my success."