Multipliers
March 2024.
Since starting university, I've often faced a sense of regret, when thinking about missed opportunities. Focusing on missed opportunities is not a healthy habit to have, though it's something that's I've been living through for some time.
Ever since about grade 9, rarely did a year go by where I decided to take the year "easy". In my later high school years, while doing full-time schoolwork, I'd also spend time with my schoolmates hosting hackathons and coding events, and spent countless hours in front of a computer writing code for science fair projects - all while commuting 2 hours to school every day on the city bus/train. In CEGEP, aside from schoolwork full-time, I would spend hours every week as part of student government in meetings and projects, and more hours organizing coding events as hackathon season approached. And during my first two years of my undergrad, while taking a full-course load every semester, I worked part-time for an early-stage startup, was deeply involved in hackathon organizing with sponsorships, and worked on design and research projects - while taking part in startup programs at one point.
For the past many years, during the median work/school day, my working hours extended beyond class hours. Yet, in spite of these hours, I've often felt pained by missed opportunities during this time - opportunities that I missed due to mistakes I made in the process. I feel that this is a shared experience for many people: the reality of putting in hard work year after year, and to encounter select failures, over and over again, on a set of goals that you really wished to attain. I also realize that this will be part of a new reality in the years after undergrad: in an eventual field where everyone approaches the upper limit of workable hours per day, how can you excel, contribute to breakthroughs, and do so consistently?
In retrospect, you need to ask baseline questions. For me, I've struggled many times with courses in my undergrad - though the results aren't so unpredictable, given questions such as:
- How many exercises do I solve on a daily basis?
- How many minutes per day do I spend reviewing my course notes?
- Did I attend office hours or extra problem solving sessions?
You need to first answer these baseline questions: even if you are extremely passionate about what you do, if you cannot answer "yes" to baseline questions in your field, you need to make these a priority.
Another way of maximizing success is to think of success as a conditional probability function \(P\):
$$
P(A|E_1)=?
$$
Using a coursework example, what is the probability of a student getting an 'A' in a course, provided that they averaged three solved exercises per day (\(E_1\)) during the entire semester? If you can identify meaningful daily acts to integrate using this mode of thinking, you should be able to further solidify your baseline of actions to take.
However, there exists an upper limit: when you join a field where everyone is working all the workable hours in a day, how can you continue to contribute to meaningful breakthroughs, if you are limited by workable hours?
We need to think about leverage, about having "multipliers" for our work:
$$
O(h,m) = m\times h
$$
where the output \(O\) depends on \(h\) the hours you put in, and \(m\): multipliers.
Multipliers cannot be an absolute substitute for hard work, but can generate noticeable gains when you feel like you are reaching the upper limit of workable hours per day.
Using a Jared Friedman tweet about BFS/DFS in startups as an analogy, I believe that people can encounter multipliers in two different ways: either via a depth-first search (DFS) route where you happen to learn about multipliers for you work organically (almost as a secondary effect of your work itself), or via a breadth-first search (BFS) where you learn about a set of multipliers from a source or from someone else.
Consider writing your resume for job applications: the DFS approach would involve you sending your resume to employers, and tweaking your resume based on job outcomes or feedback you get along the way. The BFS approach involves you finding a centralized document or video with a set of rules for your resume, and immediately applying those rules.
DFS is organic with respect to your work as a primary objective, but time consuming, as multipliers are a secondary effect.
BFS is artificial, but allows you to learn about multipliers all at once.
To implement BFS for multipliers, the trivial heuristic is to look up existing documentation or resources on multipliers that people have already discovered (or that exist publicly). However, to obtain a more complete solution, a second approach involves asking: given the work I put in today, how can I further improve my work?*
There are undoubtedly many good multipliers. From my experience, these ones should be implemented early on:
- Set Goals. Having clear, quantitative goals on paper (as opposed to nothing on paper) makes a difference.
- Attitude. One way of building the right attitude is by start with small wins, and by increasing the scope of your work, you begin to build the right attitude for your field.
- Practice the ask. For some time, my way of thinking was that results should be a direct product of the primary work that I put in. However, practicing asking for things - whether it's a cold contact or someone you've been worked with before - can often lead to leaps in returns. Asking can be hard, but it is a multiplier.
- Practice follow-ups. Follow ups are multipliers.
- Commit to recurring meetings to share updates. Find a supervisor, client or advisor, and commit to sharing updates on a regular basis. The idea of finding a quiet place and writing code is blissful (and one that I was drawn to), though from personal experience, my rate of work produced has been most effective with external deadlines or recurring project updates.
- Choose your environment. Your environment matters: your place of work, the organizations you join, the places where you spend most of your time and most importantly, the people who you interact with and learn from.
- Know when to collaborate. Having a second person work on the same project reduces the workload by 50%. Three people reduces it by ~67%. And so forth. There will be a point of diminishing returns at the early stages of a project, though know when to collaborate, and how large (or small) the group should be before the overall project gains get overshadowed by the cost of coordinating the team itself.
- Find a coach/mentor. This can be hard, though find someone who can provide honest feedback on your performance, and identify ways for you to improve.
- Ask what are the main problems to solve in your field. While this may seem an obvious question to ask, from personal experience it's easy to focus on details or sub-topics and miss the direction of where the current field is headed towards. ("You and Your Research" by Richard Hamming is a great read on this topic.)
- Similarly, filter out the signal from the noise. Perhaps there's something that many people are spending time working on right now, but ask yourself instead: what are the top X most important things I should focus on, that will define my next 5-10 years?
- Know how to avoid common mistakes. I had a tendency to want to discover things by myself, though as someone in my 20s, avoidable mistakes can come at a large cost in terms of time spent.
- Upgrades. I used to write with pens that cost 10 cents apiece. After upgrading to a pen just under $5 (the cost of a slice of pizza), it made my writing experience much better.
- However, do not confuse multipliers with buying things for the sake of displaying them for social validation.
- Evaluate cost and opportunity: Can I justify cost X for probability Y of acquiring opportunity Z?
- Join a group that produces great work. This applies more for undergrad life. One such example are university labs.
- Surround yourself with people who are smarter or better than you. Don't just be there physically, introduce yourself and ask questions - if possible, ask to be involved in a project that they are working on.
- Delegate. Years ago, when I would work in a team in a lead role, I often wanted to set a creative direction for the team to follow, and also felt insecure if I wasn't the main contributor for every single facet of a project. When you work with a team, very often your team members are enthusiastic and want to contribute. Delegate tasks. As a general heuristic, build a team where people have skills that exceed yours. It is easier said than done, though in a lead role, your goal isn't necessarily to author every single line of code or email sent: your role is to bring people together to get the job done, and to support each person in your team such that they can grow and develop. This doesn't mean you should sit back: you should also commit your share of the work, whether it's writing code, sending emails or the things that your team is doing.
- Rapid feedback. Find ways to obtain rapid feedback, and iterate on this. This can take the form of client meetings, Q&A during presentations, or meetings with your supervisor.
- Make a name for yourself. This then leads to the question, how? The answer is different for everyone, though from my experience, posting on relevant social platforms (i.e. LinkedIn), keeping an online presence, and delivering results on time are good places to start with.
- If it scares you, strongly consider it. This is a good heuristic to implement, when deciding what next steps to take.
- Do not take failure or incompletion as an answer. Many projects I started often stalled or encountered some failure of sorts. Do not let that be a stopping point. From personal experience, some of my personal work that I consider most significant was due to the fact that after failing, I felt even more motivated to work harder to do things right. (My first science fair project didn't make it to provincials; my next two projects made nationals two years in a row. Had I taken failure as an end point, nationals - which was an inflection point in high school - would not have happened.)
- Necessity is the mother of all creation. Perhaps not all creation, though necessity has pushed me to think differently, and commit to projects that I wouldn't have if everything was going smoothly. After my second year of undergrad, I struggled academically and realized that if I wanted to be relevant in research, I needed to go above and beyond what I had.
There are also some more practical multipliers for some life stages that I've been through. These examples are more biased towards my past trajectory (leaning towards research), though I believe the takeaways can be generalized to any field:
- School
- Join a lab or research group, and commit to contribute to a publication
- (More general) join a group that puts you in an position where you need to learn things you weren't capable of.
- Like "necessity is the mother of all creation"-type environments.
- The Pmarca Blog Archives by Marc Andreessen touches on this topic. Marc Andreessen's advice can be very direct, though the takeaway is his approach to identifying what engagements to commit to in school.
- My recommendation: commit to roles where you interact with the real world (i.e. sponsorship), or develop a technical skill by contributing to a technical project you can't yet build on your own (i.e. learning about locks and multithreading for a neurotech project).
- Go to office hours
- Meet with advisors to strategize applications (i.e. university admissions) and career paths
- Go to conferences and guest lectures
- Study and work with people smarter than you
- Ask someone older than you for advice
- Apply to scholarships and funding opportunities
- Join communities (i.e. science fairs, groups with strong alumni presence)
- Programming and math are multipliers
- Startup
- Find a mentor.
- Find clients early, and meet with them regularly.
- Join an accelerator program, as long as you and the program share the same objectives and expectations.
- Build a team by surrounding yourself with people who have skills that are better than yours.
- Jobs + Professional Career
- Maintain your LinkedIn, and post updates regularly
- Get feedback on your resume
- Practice direct outreach
- Research
- Join a research group
- Ask for feedback regularly, and commit to feedback
- Look for opportunities to present and publish
- Read papers consistently
- Build a profile, such as your Google Scholar
- Pursue goal-driven research as opposed to idea-drive research ("An Opinionated Guide to ML Research" by John Schulman)
- Finance
- Sign up for reward programs that have no sign-up cost
- Don't treat your bank account as a black box: identify your sources of income and expenses carefully.
- Social
- Take group photos when you meet, and share photos
- Personal development
- Start your own organization
- Launch your personal website
- Write and upload things you create to the Internet
- Read
- Exercise
Once again, multipliers are not a substitute for baseline tasks that you should complete, nor are multipliers a substitute for hard work, strong work ethic and grounded morals. Though for all those who work hard, hit the upper limit of workable hours per day, and still encounter one failure after the other - keep on pushing, and integrate multipliers in your work processes. Don't be bound by the past. My personal take is that if I got this far with all the mistakes that I made in the past, just imagine how far I will go by improving my current self.
Things may be hard, but as you continue to value hard work, good morals, and integrate multipliers in your work, I have confidence that you will produce significant work, and I look forward to the good that you will contribute to our shared world in the coming years.
Neovim Analogy
I first met terminal-based code editors from a good friend that I look up to, many years ago. In recent years, I've used Neovim as an editor to make quick edits, though found it cumbersome to use for larger programs or HTML/JSX syntax.
However, earlier this year, I figured out how to install Neovim plug-ins: in about 10 minutes of work time (excluding non-working time), installing only a few plugins (parenthesis autocompletion and a custom color scheme being the significant ones), Neovim suddenly became a much more pleasant tool to use.
The same applies to multipliers: what are things that you can set up in just minutes, but can multiply the expected results with the same work hours?
Additional Guiding Questions
- What are multipliers that we can easily implement?
- What are the most important multipliers that I should consider?
Additional Note
*Credit for this second approach goes to a social media post I read somewhere, which a friend of mine reacted to beforehand if I recall correctly.