Category: Guides


Ultimate Productivity Hacking Guide Part IV: Energy Management

Energy Management

Not having sufficient energy or motivation undermines everything else in the guide since most productivity interventions require some level of energy and commitment to execute. If I feel depressed, no amount of verbal self-encouragement or TED talks is going to get me to do my homework or check my to-do list. This section of the guide is basically how to live a healthy life, because even if health weren’t the most important part of your life (which I believe is), without it you certainly would have a really hard time getting things done. Time to get healthy.

Sleep, Exercise, & Diet

Diet, exercise, and sleep are the trifecta of energy management. The summary is that if you eat right, exercise regularly, and sleep well, you will pretty much have enough energy to get all the things you want done. Sleep Sleep is so important because it’s the only time your body and mind gets to rest. Studies on sleep deprivation indicate a swath of intelligence and mood impacts in participants . You spend 8 hours a day sleeping, so any marginal improvement of sleep quality and duration has very high yield. When I started measuring my sleep with my Fitbit, I was appalled by how little high quality sleep I got. Compared to my peers and family, I’m a really sensitive sleeper. I can’t share beds with people, and I have a hard time falling asleep. Seeking ways to improve my sleep quality yielded some subjectively high results in memory, focus, and mood. Start with the basics. Make sure your bedroom has the right lighting, temperature, and noise levels. White noise machines and earplugs help with the noise, black curtains help with the lighting , and fans and heaters can help maintain an optimal temperature. Install flux on your computer and configure Night Shift/Night Mode on your phone to filter out blue light at night that is detrimental to sleep quality. Design a sleep hygiene routine. I have a physical post-it on my wall that is a series of steps to get me in the mood for bed. It helps because I’m pretty mindless by the time I’m sleepy, and may end up doing dumb things instead of getting ready for bed (browsing reddit, checking my phone, playing video games, etc). Here’s my post it:

  • Drink 16oz warm glass of water. (3 mins)
  • Fill bedside thermos and water bottle (5 minutes)
  • Brush teeth (5 minutes)
  • Floss/Mouthwash/Retainers (5 minutes)
  • Bathroom if necessary (5 – 10 minutes)
  • Take melatonin pill with some water
  • Pack for next day (5 minutes)
  • Stretch if necessary (10 minutes)
  • Read on bed. (20 – 30 minutes)
  • Pee if necessary (2 mins)
  • Read More


    Ultimate Productivity Hacking Guide (Part III): Behavior Management

    “I hate writing, I love having written.” — Dorothy Parker

    I would not consider myself especially good at exerting willpower. I have a hard time saying no. I don’t exercise much self control in most domains of my life (e.g. diet, finance). Even now, I’ve had bouts of egregious non-productivity playing video games, watching television, or procrastinating on work.

    What I am good at is designing systems that don’t require exercising self control. Self control is a finite and unreliable resource to depend on when producing behavior, so you should find ways to either to limit the amount of willpower you need to exercise to produce a behavior.
    We’ll talk through some general themes of good systems of producing behavior, roughly ranking in terms of easier to harder to implement.
    Read More


    Technical Recruiting Guide for New Grads & Junior Engineers

    Note: The views and opinions expressed in this article are those of the author and do not
    necessarily reflect the official policy or position of Scratch.

    Other note: There are a few referral links for Hired and Triplebyte. Feel free to just go to the site if you don’t like going through referrals, but we both get free money if you end up getting a job on the platform 🙂

    Your career is a big deal, no matter how you think about it. You spend about 35% of your waking hours (not including the commuting time and all the logistical stuff surrounding work) working. You’ll spend more time with your company, your boss, and your co-workers than you do with your best friend, spouse, or family. Your career is also your livelihood. Whereas some people can work leisurely hours with six-figure salaries, some people struggle with mid five-figure ones working overtime week after week.

    With something as important as your career, it’s worth investing time into maximizing your opportunities. One of the highest leverage things you can do is to figure out how you can put yourself in a place where you’re happy and can grow.

    I’m a relatively inexperienced engineer, so I can only speak about the experiences I’ve had so far. But my lack of experienced hasn’t stopped me from systematizing various verticals of my life nor doing pretty well in my career so far. So I will lay out how I approached my last job hunt.

    Although I believe my advice applies broadly to most new grads and junior engineers, I understand that there are advice and observations that may not apply to you. Just to lay out my cards upfront and give you chance for bias correction, here was my background before my job hunt.

    • UC Berkeley 2016 Graduate with 3.6 GPA
    • Experience interning at Lexity, Yahoo, and Pinterest
    • Worked at Reddit for 2 years on ad-related technologies
    • Live in Berkeley

    Here’s my LinkedIn.

    Preparatory Work

    Time Commitment and Scheduling

    One of the most important prerequisites to get right is figuring out the logistics of your interviewing schedule. Interviews take time, and doing enough interviews to have a healthy amount of options of table takes considerable time. Finding my 2nd internship in my career took approximately 120 hours spanning 9 weeks. My recent job move took approximately 110 hours spanning 7 weeks. It’s a big time commitment to do recruiting right, and it’s going to be worth every hour of your time to get yourself an awesome job. At least 50 hours+ of work should be the bare minimum of due diligence I think new grads and junior devs should put in.

    Most interviews these days are:
    1 recruiter screen (1 hr)
    0-1 take home assignment (3 – 6 Hrs)
    1-2 technical phone screens (1 – 2 Hrs)
    1 full day onsite (8 Hrs)
    = 13 – 17 hrs/company

    Not only that, there are some preliminary exercises and research that you are going to want to do:

    1. Values reflection (2 – 5 hrs)
    2. Company research and lead generation (5 – 10 Hrs)
    3. Interview practice (15 hrs +)

    So you have to figure out how you’re going to dig up 50-120 hours of time in your current schedule. For many of you, you’ll be in school, which offers some flexibility with phone screens and onsites. But some of you have full time jobs, in which it is much harder to schedule and coordinate recruiting calls.

    Some questions you might want to address when thinking about where to find time to interview:


    1. How much can my academics suffer in order to find a good job?
    2. Am I taking on too much school work this semester such that I cannot put into time into recruiting? Should I drop some classes?
    3. Am I doing too many extra curriculars that will distract me from spending time recruiting?
    4. How am I going to take days off for onsites?


    1. Should I quit my job to recruit full time?
      1. Upsides
        1. You don’t have to worry about scheduling
        2. You can concentrate full-time on recruiting. Trust me, you’re going to get busy
        3. You’ll have more clarity when deciding
        4. You don’t have to keep things undercover from your existing boss


        1. You don’t get paid
        2. You have to maintain your current work responsibilities while recruiting
        3. You are considering staying at your current company as an option

        Should I tell my current manager that I’m recruiting? This was one of the most emotionally draining decisions I’ve had to make. In a small-sized poll amongst my friends, 70% of my friends say you should wait until you have an offer to tell your manager, the other 30% thinks I should tell my manager out of respect for your manager.
        How will I be able to take time off for onsites? Ideally you’ll be able to do at least 3 – 5 onsites for your next role to have a healthy number of options on the table.

        However you decide to make the time to do your recruiting, it’s important to get that set aside as early as possible. Now that you have time set aside you’ll understand approximately when you’ll have a job lined up. With due diligence, you can reasonably expect something to happen within 8 weeks.

        Scheduling is a bit of an art. There are two general considerations when it comes to scheduling — how much do you like the company and how long each company interview process takes.

        With preference ranking, you want to backload companies you’re most interested in towards the later stages of your interviewing season. You’ll naturally get better as you start interviewing, which means you’ll be closer to peak performance right when you’re talking to companies that really interest you.

        If you want to know how long the interviewing circuit takes at each company, Glassdoor has interview reviews that will give you good sense of how long the whole process takes. You want to line up all your onsites as closely together as possible, since it lines up your offers around the same time and is slightly easier logistically to handle. The coordination also helps you move fast and avoid exploding offers. My interview experience so far has been that even though Google and Facebook are great places to work (and therefore should be backloaded for some people), their interview process can sometimes take multiple weeks. Some companies didn’t even get back to me when I accepted my most recent offer.

        Work Values

        Beggars can’t be choosers, but thankfully it’s an engineer’s market. If you don’t think you’re in a position to choose, make sure you exhaust all the resources listed in the “Recruiting Skills” section to make yourself a top-tiered candidate. You want to market yourself as best as you can.

        I somewhat regret not going through this Work Values exercise when choosing my first full time job. I never realized how important certain qualities were until I spent some time reflecting on it (and some experience living out my preferences).

        For a sample model and writeup of ranked values here’s the one I wrote for my previous job search. I highly suggest reading the example doc, as some of the values on there were only discovered when I talked to other peers about what they look for. I didn’t realize I had some criteria until I had polled other friends.

        Another consideration you probably want to nail down in your doc is exactly what you want to learn. “Learning a lot” is not a meaningful objective as your learning goals will be entirely shaped by business needs, which often ends up in some weird, esoteric crannies. Do you want to do front-end, backend, machine learning, devops, product management, or something else entirely? If you leave those to chance, you might end up going down a career path that you’re not happy with. If you’re unsure, it’s also worth noting and trying to find jobs that resolve those questions as quickly as you can (e.g. working at startup to try many things, joining a rotational program, etc).

        There are a few write-ups that evaluate opportunities based mostly on business success. I personally like this one.


        Lead Generation
        Lead generation is knowing what great companies exist out there. I think the classic list to scrape is Wealthfront’s Career Launching Companies List. I think their evaluation criteria overlaps a lot with some of the values you seek in a company. It’s worth looking through all the companies, understanding what value their deliver, and what their engineering culture is like.

        If you’re still in school, asking your respected peers is also a great way to find interesting companies to join. Seeing where all the 10% of graduates join is a good proxy for know which companies are sought after.

        Angelist also has search criteria for you to find companies that match your interests. They’re much more focused on smaller companies and startups though.

        I’ve also scraped top VC firms to see what companies they’re funding. Andreessen Horowitz, Sequoia, and Kleiner Perkins Caufield Byers (KPCB) are great places to start scouting companies.

        If you’re looking for smaller companies (think <50 people), here’s my favorite technique for finding small startups to join: Go to LinkedIn, sign up for a $70/month premium membership (you’re only going to have it for a month or so), and then go to this custom search query I created. Although crude, it’s a search query that scouts out where all the smart people in the industry are working, filtering out all the trendy, big players. “Smart people” here being defined by people: 1. who attended a top tier CS school and 2. who worked a trendy company before. I found some strong candidates for startups to join by scouring the search results.

        Just because I know you’re lazy and probably not going to do it, and because it’s pretty easy for me to do publicize it, here’s my lead generation spreadsheet. YOUR SITUATION IS NOT THE SAME AS MINE. DO YOUR OWN RESEARCH.

        After you’ve generate more leads than you can handle in your schedule, you’ll need to start paring down the list. I found Glassdoor reviews to be a great site for getting a peek at company culture. If there are any red flags that stick out there, you can feel comfortable removing them from your lead generation spreadsheet.

        I found most of the signal that comes from preliminary research here to be very noisy. For example, it’s very hard to evaluate engineering culture by reading a company’s website, or understand how viable their business model is without someone internal showing you the numbers. Most of the information you’ll extract will actually be from the interview, but getting a sense of the company here is important to weed out any companies that have some immediate red flags.

        Finding the right channels to getting in touch with companies is a high leverage activity to maximize your chances of getting hired. Some of these channels also double as a lead generation tool too, so I would recommend jumping into some of these early.

        Here are the company sources from the most to least likely to land you a job.

        1. Referral
        2. TripleByte
        3. Hiring Platforms/Talent Portals
        4. Head hunters/Recruiters
        5. LinkedIn
        6. Cold email
        7. Applying online

        Referrals are probably your best bet to getting an interview at a company. A cold referral from someone whom you’ve met once at a party is still better than most of the other channels on the list.

        You can dig up referrals in surprisingly places. Searching on your LinkedIn and finding nearby connections is a great start. Otherwise even consider getting referred to places that you’re not super interested in. Sometimes your friends can see a valuable opportunity that you’re missing.

        Triplebyte deserves its own mention because of how pleasant and comprehensive I found the interview to be. Triplebyte is a hiring platform that acts as a gatekeeper to a bunch of other great companies. Triplebyte will give a comprehensive interview to you and (if you pass the interview) will be your promoter and introduce you to other companies. You skip all phone interviews onwards and go straight to the onsite. They have scheduled calls with me that asked me about what I look for in a company and matched me with companies they thought would fit my preferences.

        Triplebyte is a lot harder of an interview than most company phone screens (I think the statistic is that only 15% of applicants pass), so I would suggest acquiring some practice before going on Triplebyte. However, the company matching process can take some time so I wouldn’t delay scheduling your interview too late into your interview schedule. Scheduling your Triplebyte interview approximately 2.5 – 3 weeks before your expected onsites is most ideal.

        Hiring Platforms/Talent Portal
        Hiring platforms like Hired or AngelList’s A-List are a great way to increase your presence in the job market. Think of these platforms as scalable ways to get your resume out there. I would do the due diligence of comprehensively filling out each profile to maximize reach.

        A hidden gem is that most VC’s have talent portals too. Greylock has a talent network for both students and full time engineers. I know A16Z has one too, but requires some networking to get in touch with their recruiters. Literally search “[VC firm] talent” and try to join all the hiring platforms you can, either by applying online, reaching out to a recruiter there on LinkedIn, or attending their workshops/events.

        Headhunters and recruiters who act as a middleman can be great ways to get in touch with companies. Although I will say that 50 – 70% of these recruiters are a waste of your time, I’ve worked with a select few who have been phenomenal at matching me with companies I liked.

        Next time you receive a pesky email, I would suggest responding to the recruiter. My rule of thumb when dealing with recruiters is that if I ever felt like they aren’t listening to what I’m looking for, but instead pushing their clients on me, I would immediately drop them.

        LinkedIn is most likely going to be your largest source of incoming interview requests. There are going to be good requests and bad requests, but the most important thing for you to do right now is to go to LinkedIn’s career interests setting page, and check that you are indeed looking for a job. This switch will signal a miniature beacon to all the recruiters that you are indeed available, and since freshly available talent generally doesn’t stay in the market too long, there will be a lot of emails.

        Cold Email
        If there’s a company you’re particularly interested in and they’re not in any of the channels above, it’s worth writing an email to a hiring manager to signal your interest. It helps to tailor your email such that it doesn’t sound like a shotgun email.

        Online Application
        The very last resort. You should only use this option if you’ve exhausted all other options, don’t have a particularly strong interest, or don’t have enough time to write a cold email. Beware, response rates could be anywhere from 5 – 20%.

        Feel free to employ more than one channel for large companies. Sometimes you’ll slip through the cracks in one channel but get picked up in another. I’ve applied to companies online and never heard back from them until I reached out to them through a different channel.

        Recruiting Skills Read More


    Ultimate Productivity Hacking Guide (Part II): Time Management

    “It is not enough to be busy… The question is: What are we busy about?” – Henry David Thoreau

    Time management is process of aligning your time with your priorities. The strategies discussed in this guide are to address the following questions: How do you spend your time? Does the time you spend every align with your goals? The people who benefit the most from this section are people who have diverse set of goals and workloads and consistently need to allocate their time. Conversely, people whose goals are singular (e.g. I’m going to focus on taking care of my child) and have a strong conception of direction will benefit the least from this section.

    Planning Your Time

    Daily Planning

    Every day you should set aside 15 minutes at the start of your day to plan your day. Take out a post-it. First, figure out what obligations you have for the day. Do you have classes to attend? Friends to meet? Appointments to go to? It’s worth writing the ones that aren’t part of your regular schedule down. Then, figure out what you’re going to do for the day and assign an upper bound estimate on the amount of time you think it’ll take. You can comb through through your gathering points in the “Priority Management” section to figure out what you need to and want to do. Examples could be “Read chapter 5 of Intro to Probability (1.5 hrs)” or “Respond to recruiter emails (30 mins)”. Add up all the hours of your tasks and double check to make sure it doesn’t fill up more than 70% of your daytime outside of strict obligations. Now stick this post-it somewhere visible like your laptop, your planner, or your desk.

    Weekly Planning

    At the beginning of every week you should give yourself an overview of what larger tasks or goals you have. If you have a diverse workload or a diverse set of goals you generally should write these goals in a spreadsheet. If you have math homework due every week, you should make a note on how many hours you expect it to take. I also take tasks off my project management software and throw them onto this spreadsheet. I found it useful to write down what I expect to complete by the end of the week and make sure I’m not overloading myself.

    Example of my master calendar

    Once you take note of your weekly goals, you need to start blocking out time on your calendar to work on these tasks. I generally have a recurring weekly schedule, and just modify events as necessary at the end of the week. Here’s the calendar I have:

    Example Google Calendar

    It’s quite a lot to take in, and I’m not asking you to plan every hour of your life. I’m going to break down different milestones you’ll reach as you begin to start blocking out times for goals and obligations. Take your time to reach each milestone. It took me two whole years to go from the easy milestone to overkill mode.

    Easy: Put only obligations on your calendar. These are appointments you have, friends you promised not to flake out on, classes you need to attend. This prevents double booking your time with your obligations.

    Medium: Put on time blocks to work on goals with hard deadlines. These are homeworks you need to turn in, work projects you need to complete, tasks you just have to do.

    Hard: Put on time block to work on goals in general.

    Overkill: Not for the faint of heart — put on everything else: sleep, shower, mealtimes, transportation. This will give you insight into how you want to spend your time across all verticals of life.

    Let’s talk through the calendar methodology. Putting time on your calendar is a great way to visualize how you’re going to spend your time. It’s also a great litmus test to check whether or not you’re being overly demanding on yourself or trying to do too much in a week. Because you’re laying it all out on a calendar, you’re not double counting any time period and overcommitting your time.

    Here’s what the different colors mean:

    1. Sleep (Blue)
    2. FoShoTrans (Red/Pink): FoodShowerTransportation. This is the time you spend to get ready in morning, to get from place to place, to shower, and to eat. This can also be named “Essentials”.
    3. Break (Yellow): The time you spend resting or taking a break
    4. Exercise (Turquoise): Time spent exercising or healthy living
    5. Social (Orange): Time spent with friends or engaging in a social activity
    6. Work (Purple): Time spent working
    7. OutsideEd (Brown): Education I pursue outside of my usual obligations
    8. Blogging/Journaling (Grey): When I journal, blog, or self reflect.
    9. Read (Blue)
    10. Miscellaneous (Green): Miscellaneous tasks and obligations.

    Even something like rest or break time should be planned in. Break should let you rest and give you energy. If an activity like playing videos games doesn’t make you feel better after having done it, it doesn’t count as a restorative break (more on this later).

    Every morning you’re going to go through all the tasks on your to-do list and make sure they have corresponding events on your calendar. If a task takes <5 mins long, it’s better to do it right now and not have to bounce mental reminders in your head.

    If your task takes from 5 – 15 minutes, then group them together under an event called “Personal Errands”. These tend to more shallow and mindless, and I would put the event at some time which you are not at your peak energy level, like in the evenings.

    Everything else goes on your calendar as individual blocks/events. If they aren’t on your calendar, you’re not being intentional about how you’re going to spend your time. If you don’t have space on your calendar, then you’re asking too much of yourself, and should review the “Priority Management” section of the guide.

    Why it Works

    A calendaring system reduces the cognitive load with planning. If I didn’t have my calendaring and task tracking software, I would have to keep all the information in my head. “What should I be doing right now?” “Should I study or work on interviewing?” “Do I have the time to go to Jay’s party or would that ruin my morning run the next day.” Those are the dialogues that happen in my head ALL THE TIME  if I don’t set aside 30 minutes each week to just lay out all my time visually. Those thoughts are extremely draining, and when you have to overcome the issue of “what should I do?” before starting to work, you’re going be more likely to make poor decisions (I’m looking at you, Facebook, Instagram, Reddit).

    Putting everything on a calendar (as opposed to say, a planner) also forces you to specifically allocate time towards your goals, values, and obligations so you don’t double count your hours spent. Time is your most finite resource, so it makes sense to set aside time to figure out how you’re going to spend it wisely, rather than haphazardly deciding on the whim.

    When you follow the system, you end up consolidating a lot of gathering points and merge it into one place. Instead of checking 20 places to figure out what you need to do, you just check 1. A calendaring system can be used to consolidate gathering points, like gleaning emails to throw to-do’s on your calendar or to copy homework due dates from your classroom website.

    “What if you go off track?”

    Going off track of your schedule is not a crime. It’s more important to notice that you’ve gone off track than to judge that you’ve gone off track. Judging your behavior at this point only brings about negative emotions, but the noticing helps collect useful information to help us understand how we can do better next time.

    I think of my calendar less as a behavior enforcer, and more as a ledger of intentions. Without it, I simply wouldn’t know what to do with my life, and I’ll probably meander aimlessly with a constant fear of forgetting something important.

    I actually change my schedule frequently, maybe 3 – 5 times a day, to account for any possible changes. Sometimes it’s a disruption, or a task that took too long. Other times it’s a riveting conversation with a friend that went over an allotted time. I don’t see deviations of my schedule as transgressions. As I like to say, it’s easier to change plans than to make them, so plan first and change if needed. Planning my day forces me to be more mindful about how I spend my time, which doesn’t leave a lot of room for mindless activities.

    Planning Tips

    Potpourri of tips I’ve had working with a schedule for 7 years:

  • Avoid doing any mentally straining work for more than 1 – 2 hour chunks at a time and more than 5 – 6 hours a day. Despite my best efforts, I can probably focus for at most 3 hours before needing some kind of break.
  • Do the hardest things first: Willpower tends to decline as your day progresses. Some tasks become extremely difficult as you reach the akrasia zone of 2 – 4 hours before their bedtime. Because of that, I try to schedule the most cognitively or energy demanding things in the morning and menial tasks before bed.
  • Try to fit your habits in the morning: Especially post-graduation, most of your social time will occur in the evening. It’s hard to uphold a workout routine if you’re friends with people who make plans on the day of. One way to avoid this pitfall of making hard choices between your habits and your friends is to move your habitual stuff to the morning, where people have less of a chance to interfere or interrupt your schedule.
  • Find ways to double up your time: You can save some time by doing two things at once. For example, reading a book during your commute saves you from spending all your time commuting. Eating a meal with friends can fulfill your social and dietary needs. Just be careful not to mix two cognitively demanding tasks, and not to give up break time in order to squeeze in more activities.
  • Set plans are about 1.25-2x the cost of normal times: Any set plans that cannot be moved (like any appointments, obligations, or engagements) should be treated as costing about 1.5 to 2 times the amount of the time they take. For example, if I wake up earlier than expected for a 9am coffee with a friend, I’m wouldn’t be able to adjust my schedule nor squeeze in something other activity before my engagement. Concrete plans cannot be moved and I find that the flexibility of the schedule I lose is approximately 50 – 100% of the time of the obligation. This means that I generally treat concrete plans as costing more and try to do more things that are flexible, like running by myself over joining an intramural sports league.
  • Identify high variability factors that can throw off your schedule: My biggest hidden variable is sleep. My sleep duration varies quite highly, and I have to adjust my schedule accordingly. I try to avoid concrete plans in the morning to avoid my sleep from clashing with my other plans.
  • Read More


    Ultimate Productivity Hacking Guide V2 (Part I): Intro & Priority Management

    Note: I can’t believe it’s been 5 years since I first wrote my productivity hacking guide. I was a freshman at Berkeley when I published that article. Now I work full-time and still juggling various aspects of my life. A lot of productivity methodology has changed, and yet a lot has stayed the same. I’m rewriting this guide from scratch, and organizing the information in a more referential manner. That way, people can reference material that’s relevant to them and ignore everything else. I’m also releasing this guide in 5 parts, as not to overwhelm people too quickly. Read More


    My Favorite Book on Friendships is a Book About Polyamory

    I recently read a book called “More Than Two: A Practical Guide to Ethical Polyamory” by Franklin Veaux and Eve Ricket. I didn’t know about polyamory before, and always lumped “poly” people with the rest of the sexually deviant groups of society. Because polyamory is a relatively new concept for most of the monogamous world, the authors spend a great deal of time outlining a guide for navigating in the world of polyamory. The upside of being so detailed in helping neophytes navigate complex relationships involving more than two people is that I learned a lot about relationships in general. “More Than Two” is probably my favorite book for navigating my friendships.

    Friendships involve multiple people, and our relationships with our friends can interact in similar ways as polyamorous people. For example, jealousy is discussed at length in the book, but jealousy is equally frequent amongst close friends. So are long distance friends, or friends who grow apart. Friendships, like poly relationships, can have many shapes. They can be a V shape in which one person knows two friends who aren’t friends with each other. What kinds of problems can occur in these structures? What kinds of problems can occur in an hierarchical friendship? Polyamory people spend a lot of time and energy figuring this out.

    Poly people also don’t have any cultural norms or scripts to support their claims. We all know what a monogamous committed relationship looks like. We know about fairness, trust, commitment, and consent in the 1 to 1 relationship. But what does a V-shaped romantic relationship look like, and what does “fairness,” “trust”, and “commitment” look like in those relationships? Poly people reason about these issues from first principles that are laid out upfront, instead of hidden behind hidden assumptions. .

    Before I dive in on why I find polyamory material practical for my own relationships, I should mention that the authors really want to make this clear: Polyamory is not the same thing as casual sex with multiple partners. Proponents of polyamory are adamant that though polyamory, like swingers, does sometimes involve multiple partners, polyamory is completely different in many other aspects. The book focuses less on the lifestyle of polyamory people and more on how the individuals in these poly relationship interact.

    How to Win Friends (But Not Keep Them)

    The most iconic book “How to Win Friends and Influence People” by Dale Carnegie sparked a flood of self-help books that followed afterwards, all focused on how to make friends. Those resources are fantastic and give good prescriptions for making friends.

    The subject of making friends is also easier to study in an academic study, as it’s easier to find subjects who don’t know each other interact with other subjects in a short, self-contained study. Studying any relationship longer than a year is just a logistical night, hidden with confounding variables everywhere. No psychology professor will ever stake their tenure on making such an experiment or study happen.

    Because of all these factors, I rarely come across compelling material for how to keep friends. No one seems to know how to interact with close friends, or everyone assumes they know how to do it properly (accumulation of experience doesn’t always equate expertise). Most books on friendship involve learning to interact with acquaintances, and many of them are filled with trite aphorisms reminiscent of the original “How to Win Friends” book. Be kind. Be generous. Compliment people. Reach out to folks.

    No one seems to know how to deal with interpersonal issues that involve more than one person. There are some informative resources for conflict management, two of which come to mind are “Nonviolent Communication” and “Crucial Conversations.” They both prescribe amazing advice with communication between two people. But unlike those books, our day-to-day relationships are less compartmentalized and more entwined. I know how to talk about my feelings and make compromises with a friend, but what if the compromise involves or affects another close friend of mine?

    Putting it concretely in an example, Alex has two close friends Bob and Claire. Bob was Alex’s childhood friend. Claire is Alex’s college dormmate. Unfortunately, Bob and Claire don’t like each other, and Alex desperate wishes they could just get along. Alex has been busy lately with his job, and Claire confronts him that she wishes they spent more time together. Should Alex spend more time with Claire if that time spent is at the expense of Bob? Where’s Bob’s share of voice in this? Friendships can be complicated, and when they involve more than 1 person it can get really hairy really fast.

    It’s also difficult to find material in romantic relationship books that transfer well to our own day-to-day friends. Relationship materials only involve one person, who is implicitly the most important person in the world. Unfortunately, I can’t rank my close friends from best to worse. They each have a special place in my heart, so I can’t draw good advice from the books that assume there’s only one person that takes priority in your life.

    Polyamory material fills this niche on the subject matter in which they discuss situations no books on the market currently talk about. They talk about relationships problems that 1. Are high emotional stakes and 2. Involve more than one person. The authors have done an amazing job walking through real examples that are transferable to my personal life.

    Love: The Most Overloaded Word in Human History

    It was only recently that I realized that “love” is the most overloaded word in human history. It’s use to describe so many different type of interactions and so many different types of relationships. Yet many people talk about relationships as if there’s one universally agreed upon definition. It makes answering questions like “are they in a relationship?” give very little information about the nature of two people’s interactions. Does a relationship mean being exclusive? Does it mean “with the eventual intention of getting married” or just “we enjoy each other’s company”? Does a relationship mean sharing a bed, money, or a child together?

    Most books on relationships rely on a core, implicit assumption of what an ideal relationship is supposed to be like, and those assumptions contain the author’s value judgments. For example, one recurring assumption that reveals itself often is Gary Chapman’s conception of a biblical relationship in his book “The 5 Love Languages.” His implicit assumptions bleeds into his prescriptions of the various relationship problems he encounters. One jarring piece of advice I’ve found in the book was around a mismatch of sexual appetite. The advice nudges a female patient to be submissive to her partner for a couple of weeks in order to smooth out a disagreement between a husband and a wife.



    Being smart by itself doesn’t get you very far in life. After all, when companies hire for senior or executive positions, they often care more about how much relevant experience people have over how smart candidates are. If I’m a company looking to hire someone to build a payments platform, I’m going to choose someone who has successfully done it before rather than a new grad who’s smart and eager to learn.

    At the end of the day, companies care about results. Skills and experience that can deliver results are the currency of the intelligence economy. Skills to acquire more skills (metaskills) doesn’t do squat until you gain those value-delivering skills, which requires a lot of relevant experience that isn’t just sitting around like shoe boxes in a clearance aisle. Companies don’t like waiting 3 – 4 years with the hope that someday you’ll be in that position to contribute.

    The sad thing for young adults like me is that there seems to be no shortcut to experience. There is no substitutable skill that can replace relevant experience. It feels like when your manager says you have to work 4 years at a company to become a senior engineer, you have to wait patiently at your desk for 4 years like a good doggy waiting for a treat. Contrarily, she’s also not saying if you sit at your desk for 4 years, you’ll be promoted into that coveted position. “4 years” is a crude metric for saying you need to acquire the skills and knowledge that the experience of working 4 years in industry would confer you. Could we cut down the number of years working as a junior engineer somehow? Yes! Probably.

    There are a few inefficiencies I’ve identified in experienced people that I think, when optimized, can cut down the amount of time required to become more senior. See, the issue with most experienced people is that the percentage of experience that ends up shaping their skills or informing their knowledge is very minimal. If I had to guess, it’s probably less than 20%, most likely below 10%, and definitely under 50%. For one, not every experience contributes to an experience’s person’s Pool of Valuable Experience. Not all previous work experiences contributes to someone’s marketable skill set. Sometimes very senior people work on things that don’t contribute to their skill set, and sometimes people spend months to years in a career dead ends. Similarly all the manual labor and grunt work don’t make people better at their jobs, and we spend more time on those activities than we would like to admit.

    Secondly, people forget most of the experiences they’re exposed to. People have poor memories, and their memories decays in an exponential fashion. For example, one study cites that people forget over 50% of material presented within an hour, and over 77 percent over six days.  Most people aren’t proactive about which experiences they want to remember, and the underlying mechanisms of memory ends up only haphazardly retaining random knowledge.

    Third, most people don’t apply personal productivity and meta-learning to skill acquisition, making them inefficient learners.

    Relevant Experience

    Let’s start with the most important factor — relevant experience. Unfortunately, most junior employees don’t get to control this variable in any large margin. Most junior employees have work assigned to them. Even if given the choice, these people can’t even identify which experiences are relevant to their growth. It’s a common fallacy to believe X, Y, and Z are relevant skills to becoming senior, when in fact it’s A, B, C.

    For example, it’s common for new grad engineers to believe that being technically competent is the core component to being an engineering manager. Many junior engineers strive to be a master of their craft in hopes of acquiring that experience to become an engineering manager. But as they gain more experience and learn more about the role, they realize that even though technical experience will get you closer to being an engineering manager, what ends up being more relevant are people skills, coordination skills, and prioritization skills.

    Do you know what skills are needed to be 3 career moves ahead of where you are now? What observations and assumptions makes you believe that? It’s probably the most important question you can answer right now if you want to cut down the amount of toil you do.

    Once you know what skills are important for you to learn, you will have a much easier time identifying experiences that contribute or don’t contribute to those skills. At this stage you should both be proactive and opportunistic about spending as much of your work time acquiring these experiences. Mention the skills you want to develop to you manager, and ask if you could work on a value-delivering project that will feed you the relevant experience. Integrating relevant experience into your work is probably the highest yield thing you can do, since if you’re not in that position, you’re effectively spending 40 hours a week for a paycheck. Wouldn’t you want to get something more out of those 40 hours besides a paycheck? Wouldn’t it be great if you got 40 hours worth of salary AND 40 hours worth of experience? That’s 40 hours of time you save by not having to gain those experiences outside of work.

    But I’m being a bit idealistic, it’s not always an option for all entry-level employees to have these opportunities, but you still need to seek them elsewhere. I recommend taking classes outside of work, either online or in a real classroom. Classes are more structured than other autodidactic projects and require very little upfront cost to get started. I also recommend finding any way to commit yourself to attending these classes, even if you have to pay money for it.

    Another approach would be to design your own project. This is a bit more difficult, but much more flexible in response to your learning needs. Want to learn how to build a payment processing system? Design a project to try to build parts of it on your own time.


    People generally have horrible memories, but human memory can be mitigated or solved. One tried and true way to overcome this is through the spacing effect. Spacing effect studies have reliably demonstrated that repeated exposures of information near the horizon of “forgetting” reinforces the memory of that information, beating uniforming spacing information and stimuli treatment. So if you can review the things you learned in your work, you acquire a stronger memory footprint of those lessons. Here’s a video that compares information retrieval practices by simulating the forgetting curve

    I’ve had a hard time making spaced-repetition flashcards with the stuff I learned at work, so I had to design a separate system. I would consistently take notes of what I learned throughout my work. If I have a hard-earned lesson, I make sure to jot it down, along with any contextual information surrounding the situation. In my line of engineering work, I would take screenshots of error messages I see and write down resolutions to those error messages.

    At the end of the week, I would write a weekly review, actively trying to recall what issues I ran into during the week and how I resolved them. The review at the end of the week helps solidify some of the understanding I have around certain issues. I sometimes write quarterly reviews and reflections and reread my notes.

    Another important benefit of taking notes is that unlike human memory, notes don’t decay or die. They are effectively permanent. We can also utilize a remarkable trait of the human brain to effectively connect our brain into this persistent data store — our exceptional capacity to recognize things.

    Humans are remarkable at recognizing things. A study consisting of participants being shown 10,000 random pictures over 5 days, participants scored an 83% success rate when presented images they have and haven’t seen. Similar studies with 1,000 random pictures elicited a 93% success rate.  Often when we encounter a familiar problem, we recognize we’ve solved it before without knowing all the details. If we have old notes available, we can look up the information in the notes without ever having to keep it in our heads. That’s why it’s important to take notes. I often forget very hard earned lessons, and it pains me that I spent 20+ hours figuring out a solution and then forgetting that experience by not taking notes. I would then have to commit a 5+ hour expenditure to rediscover that lesson. Had I spent 5 minutes writing down what I did, or what the crux of the insight was, I would have saved those 5 hours of toil.

    Your knowledge and skillset doesn’t have to live inside your 3 pound brain. It can be in your notebook, where you can openly access it. It can be in your social or professional network, living in other people’s brains that you have access to (networking is important!). Amassing and retaining knowledge in a strategic way is the second most important thing you can do.


    An experience is like a lemon. When we reflect on our experiences, we are figuratively squeezing the lemon for juice, and that juice are the skills and lessons we learn. The more we squeeze, the more juice we get, but only up to a certain point with diminishing returns. The better we get at squeezing, the more effectively we can extract juice from lemons.

    When life hands people lemons, people don’t bother squeezing. They let all these lemons go to waste, and then complain how they don’t have enough lemons to make lemonade. Squeeze the lemons!


    Let’s talk about the concrete logistics of squeezing lemons. I suggest people spend at least 10% of their time reviewing and reflecting. I timebox some time every week to reflect on some problems I’ve encountered. I review all the issues that sucked up a large portion of my time, and I reflect what strategies worked and what didn’t. I try to pick up methodologies that my coworkers teach me. I try to generalize the lessons as much as I can to other domain.

    For example, if I had an experience in which I fixed a software bug by reading the memory layout of data instead of print statements, I might spend some time pondering some questions like:

  • What were the strategies that I’ve tried before this? Why did it take me so long to use this strategy? Should I have done this first?
  • Are there other places in I should be reading the memory layout instead of printing things
  • Why was this strategy the one that resolved my issue? I wasn’t having any luck by print debugging, because by the time the print call was reached, all these side effects occurred. Maybe I could reason about the code more effectively by working an abstraction layer deeper, or higher.
  • Read More



    Source: Poorly Drawn Lines

    Your surprise-o-meter is an internal light bulb that lights up when you encounter new evidence or experiences contrary to your beliefs or assumptions. Epistemic surprises are conveniently valuable for learning because 1. They tend to indicate large shifts in your understanding of the world and 2. They tend to evoke emotional responses, which alerts us to pay attention to what’s causing the surprise. Cashing in on surprising experiences through self reflection can have major positive impact on your ability to learn from experiences.

    Even though surprise is considered a universal emotion, how humans deal with the physiological response of surprise varies from person to person.

    I’d like to argue against two attitudes towards surprise I see often. The first are people who never appeared surprised. People who never appear surprised signal strong hindsight bias with lower introspection into their epistemology. Faced with new evidence that shapes their understanding of the world, they are capable of quickly changing their model without noticing what has changed. Sometimes worse, they have vague internal models that don’t make specific predictions, and therefore are resistant to contrary data that can be agents of surprise. Expecting the economy to crash in 2016 leaves room for surprises when it doesn’t in 2016. Expecting the economy to crash at some point in the future doesn’t give opportunities for surprises.

    Another type of people treat surprise as a fleeting emotion. They say “wow!” and “interesting!” and “that’s so cool!” when they encounter an interesting fact, and then the train of thought ends there. It’s frustrating for me to watch because these people drop the opportunity to extract more insights right when the reflection can begin.

    Tuning your surprise-o-meter involves some deliberate practice and some experience. Some low-hanging fruits you can do right now are making more specific predictions (i.e. Make Beliefs Pay Rent (in anticipated experiences)) and bookkeeping them.

    So what should you do when you’re surprised? The first thing you should do is try to capture your previous epistemology. Your mental model of the world is about to change, you should capture a snapshot while that understanding is fresh. It’s going to be important for the next part of the exercise.

    Afterwards, compare your previous understanding with your current understanding. Highlight the differences and measure how much your beliefs have changed. Think about downstream conclusions or beliefs your new understanding might produce. Recurse your surprise exercise if any of those conclusions are surprising.

    When I do this, sometimes I will miss some coverage not covered by the original incident, and capture some more surprise. For example, I might be surprised to find out that cyclists experience a 40% decrease in drag when drafting behind a group. I may uncover other surprises through that initial surprise. “Wait, that makes following a group super important!” -> “Wait, that makes having a group to follow super important!” -> “Wait, that makes it super important to make friends in your race!”.

    Now retrace to your old beliefs and notice how the new experience *caused* the change in beliefs. Pay special attention to how this new experience fits into your new mental model, and what new prediction this new model will produce. Sometimes in this stage I will catch that the new information incorrectly updated my belief model, and that is cause for further reflection and interpretation of my experience.

    Interleaved in the mental process of reflecting on your surprise, you will review your old state of beliefs. When comparing past and present beliefs, I recall what series of assumptions and evidence has caused me to believe in past belief X.

    Afterwards think very hard and carefully of how you could have arrived at your current state of beliefs without the surprising event. This brainstorm constraint is super important because we cannot call upon surprising events to happen anytime we wish. Surprises, by definition, escape our foresight. So if you want to learn how to reach your current beliefs quicker, you can not rely on surprises.

    You *can* find ways to reach surprising events earlier, and when you do that, you avoid the trap of relying on surprising to make epistemic progress.

    As a taster, some of the things I discovered through this exercise are:

  • “I pattern matched too quickly on a known solution without evaluating how the differences in this particular scenario can change the final solution.” (e.g. thinking that being a good swimmer would automagically make you a good water polo player. Both sports exist on the water, but differences like the end objective and the player interactions outweigh the skills of being a good swimmer).
  • “I should have come up with more adversarial examples when presented with belief X. If I had done that, I would have thought of surprising edgecase Y during that exercise instead of now.”
  • “I heard this from someone else and just assumed it was true. Maybe I shouldn’t have trusted this person’s claims as much.”
  • Read More


    Detecting Magic

    People throw too much magic in their explanations. How does an individual detect magic in their explanations?

    What is Magic?

    I think of certain technical jargon as “magic” because its intended function doesn’t educate the audience and often acts as a curiosity stopper. I call these words Magic Words because you can substitute any magical term with the term “magic” and still walk away with the same level of understanding.

    To use jargon and acronyms that people don’t understand can cause poor side effects. Using Magic Words can make people feel dumb for asking and mental models built on Magic Words as premises can be faulty and lead to errors.

    We’ll talk about how technical words can sometimes unintentionally become Magic Words and how we can detect it and combat it.

    Magic Words as Knowledge Asymmetry

    Technical words abstract complexity so that two people with the same level of understanding of something can use the word as a shorthand in conversation. Technical words become magical words when there is there is no previous agreed-on understanding of what a word means.

    When someone learns a new word without given a formal definition, they tend to contextually guess what the word means, which can lead to poor abstractions of the word and a faulty mental model. For example if I don’t understand what the acronym ACID means and heard this sentence:

    “Two-phase commit maintains ACID properties so we don’t have to worry about data integrity.” Read More


    What 200 Hours Buys You

    Today, I attended UC Berkeley’s Korean 10A class. Korean 10A is the 3rd level Korean class in UC Berkeley, and would normally require you to take 2 semesters of Korean classes at Berkeley (Korean 1A and Korean 1B), but I blew through both level’s material through the course of summer.

    I started learning Korean at the beginning of summer. I had started taking classes at the local Korean community center in San Francisco. I started out in the introductory course, Introduction to Hangeul. By the end of summer, I had skipped four levels and finished the fifth level of Korean. How did I do it? Simple, I spent over 200 hours studying Korean.

    During my internship in the summer, I lived in Berkeley and commuted to San Francisco every day. Commute takes about 40 minutes one way, and during my commute, I worked through a spaced-repetition flashcard deck on the BART instead of browsing my Facebook news feed or Reddit. In 60 weekdays of commute I have accrued 80 hours. Korean class is three hours a week once a week for 15 weeks, giving me 45 hours of practice. The rest of the hours I completed in my own time. It took about an extra hour a day, and a lot of the time was completed by eating Korean food and practicing Korean with my Korean friends.

    I’m not any smarter than any other Berkeley student who has spent two semesters studying Korean nor any other fifth term Korean Center student.

    The Berkeley Korean class is five days a week for an hour. Class is 15 weeks, and you can expect three hours of homework a week. Do the math:


    (5 weekdays/week) * (1 hr/ day) * (15 weeks) + (3 hrs/week) * (15 weeks) = 120 hours of Korean


    Double that number for taking Korean 1B class and you end up with 240 hours of Korean, within the ballpark of the amount of time I spent learning Korean.

    The KC Student takes an “Introduction to Hangeul” class that spans two hour sessions over 12 weeks. Subsequent classes are three hour sessions a week for 15 weeks with half an hour of homework every week, and there are four of them that span the topics roughly covered in the completion of the Korean 1B class in Berkeley.

    Again, do the math:


    (2 hr/wk) * (12 wk) + (4 classes) (3 hr class/wk + 0.5 hr hw/wk) * (15 wks/ class) =  234 hours of Korean


    As you can see, they all roughly land in the same number of time spent studying Korean. Of course, there are differences. Because I studied more on my own, I probably have stronger command of vocabulary, reading and writing, but have more trouble listening and speaking.

    So where can you dig up these 200 hours? Easy! According to my RescueTime stats, I have already spent 80 hours watching Youtube, 80 hours watching Netflix and cartoons, 130 hours on Facebook, amongst other distracting things this year. This doesn’t count the amount of time I spend on my mobile phone, since I don’t have activity tracking on my mobile device. I’m sure 200 hours is not difficult to dig up.

    Screen Shot 2015-08-23 at 4.36.10 PM

    I didn’t intend to write this to teach you how to learn a new language. I documented my progress to illustrate 2 main points:

  • I believe it is unmotivating to measure progress by any other measure. Our modern generation is extremely impatient, and extended periods where no progress is made frustrates the modern man, even when that frustration is often part of the learning process. Measuring progress by time prevents people from wasting their time trying to find the “best” learning methods and resources when usually those methods and learning processes are discovered and refined as you work through sub-optimal solutions.
  • “I spent X years doing Y” gives me little information about how skilled someone is at something. Three years of Spanish could mean once a week for two hours or living in a Spanish speaking country for three years. Yet we expect two people with “three years of Spanish” to reach the same level of fluency. The best way I can think to measure skill level is the number of hours people spend.
  • Read More