Recently I was reflecting on my career journey thus far, both in academia and in the industry. Looking back, I realized I sometimes went about my career like a ship adrift, carried along without direction. So I wanted to realign myself and find a more focused path forward.

I came across a series of career development talks from established engineers and researchers that really resonated with me, Michael Nielsen’s “Principles of Effective Research,” Richard Hamming’s “You and Your Research,” and John Schulman’s “An Opinionated Guide to ML Research.”

Here are my main takeaways. The descriptions include other nuggets of wisdom I’ve learned from design thinking and reading about simplicity. These principles can be generalized beyond ML engineering and scientific research.


Map out a meaningful career

Aim high, then work incrementally towards it. Forget passion. Find fun, interesting, and challenging big problems to focus your time on. Once the problem is set, you can start to visualize and work through the intermediate steps needed to get to the end goal. Attacking sub-problems with the intention of solving the problem sets up a natural cadence in the problem-solving cycle. Each milestone will have a start (ideation), a middle (implementation), and an end (celebration). This rhythm helps maintain momentum and prevent you from boredom or exhaustion.

Be mindful of what, how, and why you do things. Keep these in mind to avoid losing your way, especially during the hard days.

Set aside time to develop a taste for important problems. In the 2 x 2 urgent-important matrix (Eisenhower Matrix), we often fall into the trap of spending most of our time in the urgent but unimportant tasks, maybe because it feels more fulfilling, or because it’s easier to just focus on the present. But to derive real meaning from our work, we need to align our efforts with the important, long-term goals. So regularly take time to zoom out and think about the larger important problems that may not be in your immediate field of view. It also helps to regularly “defocus” your mind’s filter to let new ideas come through. For instance, when talking with others, ask, “what are the important problems in your field?” Regularly take on asymmetric bets could have an outsized payouts. Admittedly, the process of discovering and defining personally important problems is more art than science, and this is some thing I’m still figuring out myself.

Progress from easy to difficult problems, and always keep a portfolio of both. As a novice, you should attack more manageable problems to build up what Warren Buffett called one’s “circle of competence.” Overtime, as your skills and confidence grow, you should take on increasingly challenging problems to expand your zone of proximal development. One gotcha is if you’re always over-challenged and hitting walls, you may become deflated and give up. To avoid this, you should always keep multiple projects of varying difficulties in your portfolio, and jump on promising ones when the time is ripe. Great scientists always have 10 to 20 important problems on their mind, and when the opportunity arises to solve a big problem (e.g. new tools become available), they attack it relentlessly. While waiting for that opportunity, they stay busy by working on smaller, albeit less exciting problems, just so they’re always contributing to and staying relevant with the scientific community.

Good problems can be defined, are feasible and challenging/interesting. If the problem isn’t already well-defined and scoped, it should at least be definable with some effort. It should also be technically feasible, and achievable with your skillset, or be just outside of your circle of competence so you can realistically rise to the demand. Lastly, to keep the fire burning and momentum moving forward, the problem must be personally interesting and important, i.e. how is the problem relevant to you? Do you have a stake in the outcome? A similar design thinking concept in the business context is the triad: desirability, feasibility, and viability. Is the product you’re building desired by the end users? Is the product realistic enough to be built with existing technologies? Will the product generate sufficient return on investment to make the effort/money worthwhile?

Extra effort is needed to achieve great things, but be careful about misapplication of effort. This is an important, but often overlooked point. I think there are few things worse than to put in maximum effort into a problem, then to not only fail, but to fail at the wrong and unimportant things. In the end, you just have absolutely nothing to show for your investment. Of course, an easy way to avoid misapplication of effort is to do nothing! This falls into the classic loss aversion and endowment bias. So like all things in life, there is a balance to be achieved, and a lot of times it comes down to how you feel about the situation. When you get to a point where you need to put a stake in the ground, follow your intuition and make your decision, but frequently check with your internal compass to make sure you don’t go astray.

Make a meaningful career

Solve for the general solution. Sure, brute force solutions can solve the specific problem you’re working on now, but it doesn’t generalize to other similar problems. So next time you need to solve a similar problem, you basically need to start over again. Instead, reframe your challenge as solving for the most general and extensible solution, such that it can solve a variety of similar problems, and others can build on top of it (i.e. so they can “stand on your shoulder.”). For instance, theoretical physicists formulate first principles that fundamentally describe the universe by starting from established laws of physics, and not make assumptions such as empirical models or fitting parameters. Software engineers build software systems that are extensible and scalable so that new capabilities or functionality can be added on top. This concept also shows up in the business world. Michael Gerber’s “The E-myth Revisited” advises entrepreneurs to build toward a “turn-key operation” – essentially treating the business as a product that can be orchestrated, automated, and scaled (with SOPs, repeatable processes, etc), like McDonalds or Coca-Cola.

Make your work part of a larger endeavor. The road to doing meaningful work is filled with unknowns and dead ends, and even though failure is an expected part of the journey, we nonetheless want to turn that learning process into some form of success, no matter what the outcome. This could be achieved by making your work part of something greater. This could come in the form of deliverables such as lecture notes, code repositories, seminar talks, etc. The goal is to add to the pool of knowledge and share the fruit of your effort in a form that is usable and extensible by others.

Actions lead to insights. Self-development happens while solving problems. This idea echos one of design thinking’s mottoes, “bias towards action.” When action results in small wins, you enhance your self-efficacy and creative confidence. Contrarily, when action ends in failure, you learn from the process and improve next time. This concept is discussed at length in Peter Sims’ “Little Bets” and Tina Seelig’s “Insight Out.”

Re-implement ideas you read to gain a deeper understanding. You don’t own what you read until you implement and tinker with it. Only after you do that will you make the ideas your own. And as you gradually learn your way to the state-of-art, you will have sufficiently knowhow to go beyond.

Read books for foundational knowledge, and theses/papers for frontier knowledge. Different sources provide different perspectives on the same subject. You don’t need to read every paper in the field to completely understand the field, and in any given field there are usually only a tiny number of papers that are really worth reading. You are almost certainly better off reading deeply in the ten most important papers of a research field than you are skimming the top five hundred. So identify the important works and dive in. This concept of effective learning reminds me of the Pareto principle (i.e. the 80/20 rule) and Tim Ferriss’ DiSSS-CaFE framework.

Simplify your work and learning by abstraction. Working clean is so important, yet is often neglected in favor of hasty delivery. Working with simplicity and minimalism in mind is a north star I’ve been following for a long time, and recently I’ve been applying it in the context of ML engineering. What if the ethos behind Apple’s IDg is applied to building AI software products? Dieter Ram’s “Less and More,” John Maeda’s “The Laws of Simplicity,” and Dan Charnas’s “Work Clean” come to mind.