summer reading list for you

i’ve been following a goal of 1 book a month for the past several years, and it’s improved my life tremendously. here are some of my favorite reads.

  • Bob Martin – Clean Code – i was worried old wisdom wouldn’t apply to the speed of tech, but i was proven wrong – this book truly made me a better coder
  • Martin Kleppmann – designing data-intensive applications – everyone recommends it, and rightly (especially if you’re interviewing for an SDE role)
  • frederick brooks – the mythical man-month – amazing essays on software engineering
  • Cal Newport – so good they can’t ignore you – a good reminder of what it means to be ‘talent’ and deliver market value
  • Cal Newport – Deep Work – emphasis on reducing context switching, increasing focus/flow, a bit repetitive so free summary
  • tim snyder – on tyranny – super short read, always useful to know the danger signs to look out for
  • brene brown – dare to lead – how to show up in life and work more authentically
  • Antonio Garcia Martinez – Chaos Monkeys – an entertaining retelling of a portion of the guy’s life, sheds some light on tech startup and early Facebook
  • Chris Voss – never split the difference – excellent book on how to negotiate
  • Angela Duckworth – Grit: The Power of Passion and Perseverance – great message but book too long
  • kepner-tregoe – the rational manager – highly-effective theories and methods for decision-making
  • Ray Dalio – Principles – generally good life and business advice (e.g. radical transparency, idea meritocracy)
  • Michelle Alexander – the new Jim Crow – how and why America is racist
  • Kendi X. Ibram – How to be antiracist – build empathy for the black body and culture, and how to be an ally
  • Isabel Wilkerson – Caste – helps understand the roots behind caste/class/race systems

Switching roles at Microsoft

As promised, I am writing a blog post about switching jobs. I am actually changing roles  and cities: from a (support) escalation engineer in Charlotte to a software development engineer in Redmond.

Let’s start with the why. The decision to move to Seattle has always been in my plans. Somewhere between fear of the intellectual challenge and the hesitation to leave a comfortable position, I stayed in Charlotte for twice as long as I intended to. The city of Charlotte is a great place with its space, cleanliness, and low cost of living. I love my friends and the ultimate community. I was in a good job with great compensation. These factors combined made it hard to leave. A few months ago, I married my wife Fan and the support org started restructuring so I felt it was the perfect time to move. I committed heavily towards switching roles.

How did I go about the switch? I had actually looked internally and externally for the past year – applying to jobs here and there – but my intent wasn’t fully serious. A few months ago, I actually set a goal: I would change to a Seattle-based Microsoft role by summertime. I came to this goal after some introspection that I enjoyed working for Microsoft and I believed in the company. I started telling people my goal so that they could help me by referring me to job openings and professional resources, and by shaming me into taking my goal seriously (I’m big on people keeping their word).

The plan to switch was formulated after I did some research on the internet. Blind, the anonymous forum app, was especially useful. How did others study for and pass a coding interview? What engineering roles was I interested in? What does the compensation look like? The general answers are: study data structures and algorithms for 3-6 months, do mock interviews, and expect $110-140k base depending on your (Microsoft) level.

I then applied to something like 80 internal Redmond-based roles. I targeted software engineering, program management, and service engineering. From those 80, I got ~10 informationals and phone/technical screens. From those 10, I got ~4 official interview loops. When I got an offer from the team I liked, I accepted.

Here’s what I learned during this whole journey:

  • Study not just hard, but efficiently. Each time you interview, you understand your strengths and weaknesses so you can calibrate your studying plan. I failed my first SDE interview because I did not study enough data structures & algorithms; I bought a copy of Cracking the Coding Interview (great book, by the way). During a second interview, I learned that I can talk easily through behavioral questions; I doubled down on studying compsci as that is clearly my weakness.
  • Be honest in everything you do or say. Let’s flip it the other way around: would you want a company to lie to you about what you will be doing? Why would you lie to the company about what you want to do or what you’re capable of doing? Being honest in your interactions will lead to less stress, increased interviewing performance, and better fit with a team.
  • Rejection is a part of the interviewing process. Don’t let the rejections determine your value as an individual. You simply did not fit with the team, or you were not ready for that role. Don’t stress out. Grit your teeth and grind forward.
  • Patience is a virtue. When you’re applying for roles, the task becomes not just your job but almost your existence. You want the company to run on your clock and get you an answer ASAP – so you check your email hourly – but they are continuing on their rhythm of business. Try to relax and keep yourself busy while you wait for interview results.
  • Stay relevant in today’s global workforce. I realized a lot of my coding skills had atrophied even though I looked at code on a daily basis. It’s because my work consisted mostly of troubleshooting and debugging code rather than writing code and designing software systems. An analogy might be that my biceps were really strong but my triceps were not. From now on, I’m going to stay constantly enrolled in at least one educational course (probably online) so that my marketable skills do not fade with the passing seasons.

I hope this post sheds on light on the interview process, and how to approach switching roles. If you’re on the same journey, good luck!

Advice for the modern millennial

I’ve been watching Terrace House on Netflix (both the original set in Japan and its Hawaiian counterpart Aloha State) and it made some realize something: I mostly have my shit together. For those not in the know, Terrace House is a show where they throw 3 girls and 3 guys into a furnished house without a script, i.e. reality television. Witnessing a bunch of 18-30yo millennials bumbling their way through life and romance is fun. I think reality TV is so addictive because humans are naturally social and voyeuristic. My excuse for watching reality TV is that I am learning social skills. Disclaimer: reality TV is something that should be consumed in small amounts (as it probably has the ability to make you dumber and/or more prone to seeking drama in your life).

Reflecting back on my youth and studying some of my peers, I realized that some people could probably use some nudges to optimize themselves. I write this blog post to convey all the advice I’ve collated in the past several years of being a working professional in the tech industry. My sources range from personal experience, feedback from mentors, books I’ve read, and random internet articles. I hope you enjoy.

  1. Be organized. If you have never heard of GTD, today is your lucky day. I am an atheist, but if I had to subscribe to a religion, GTD would be it. I never read the book by David Allen, but rather I stumbled upon a related and possibly subset philosophy called Inbox Zero one day, which led me down the rabbit hole. To achieve this task-based lifestyle, I personally use Google Inbox and Google Calendar. Doctor appointments, chilling with friends, weekend trips – everything gets logged. I hold myself to a stringent standard of never missing a deadline or meeting. I mean, who should if you’re organized?
  2. Be responsive. Eric Schmidt of Google talked about some rules for emailing but this one stood out for me. How many emails have you sent that went into the abyss? How did that make you feel? Perhaps you were wondering if your email was eaten by a spam filter, if your target recipient is way too busy, or if they simply did not care enough to reply. Side note: if it’s the last reason, it’s still unprofessional not to respond. Please take the minute to give the recipient an answer if some action was requested. Psychologists have proven that uncertainty causes more pain than the known bad. When you get that email and you’re too busy, just let them know it might be a while before you get back to them because of X. If you don’t know the answer to a question, don’t ignore it; just reply saying you don’t know. If an email needs to be processed after the weekend, schedule it to reappear then. You’ll be surprised as more people come to you seeking collaboration simply because you’re more responsive and thus reliable. The best part of this responsive style? It meshes perfectly with Inbox Zero.
  3. Make S.M.A.R.T. goals. Make realistic goals with a deadline so you are held accountable. Easy example: instead of saying you’re going to lose weight by summertime, aim to lose 10 pounds by June 1st. From that measurable goal, you can break your goal into sub-goals. If it’s January 1st, that means you need to lose 2 pounds per month. That means 0.5 pounds per week. 1 pound is roughly equivalent to 3500 calories so that means reducing your caloric intake by 1750 calories per week – basically, a bacon cheeseburger, side of fries, and some beers.
  4. Use empathy. This is a big one for me. I studied psychology 101 in college where we learned about mirror neurons but I feel like perhaps mine don’t fire all the time, haha. I highly recommend reading some of Dr. Travis Bradberry‘s writing. As I’ve improved my capacity for empathy, so has my life improved. Being able to understand your fellow humans is important in seeking resolution to conflicts in any scenario. While some of my success in life has been due to hard work, my success would not have been enabled if not for those emotional connections with people. A promotion? Good relationship with my manager. Happy girlfriend? Able to validate her feelings rather than winning the argument. Getting propped up by coworkers? Caring about their work AND LIFE struggles.
  5. Keep your work-life balance. I forget where I read this, but it was a humorous quip that gets to the point: nobody ever says on their deathbed that they wished they had worked more. I live by the credo that we should work to live, not live to work. Your job will always be there demanding more, especially in corporate America where they will take as much as you give. A good work-life balance not only allows you to perform at your best at work, but in all aspects of life – and to do so in a sustainable fashion. A side note: if your job sucks, find a new one because it’s never worth it to stay unhappy.
  6. Your health is top priority. When I injured my lower back, I came to realize how much I took my health for granted. Youth fades, beauty fades, and health fades as well. Be extremely cautious whenever you trade health for something else. Sure, you could pull off that all-nighter to “finish” studying or get some more work done on your project. At what cost though? Perhaps you just took off an hour off your life. Not that significant, right? Think long term. Those lost hours will stack up. Let’s throw money into the equation: would you trade your health for additional financial compensation? Let’s say you can double your salary tomorrow, but you’ll be overweight and riddled with self-inflicted diseases like hypertension and high cholesterol? While no one sees the extreme form of this question, they are faced with it every single working day. Don’t trade your health away.
  7. Keep your finances in check. The average American is in a boatload of debt. Don’t be one of them. I understand that modern society is a giant clusterfuck because the gap between the wealthy and the impoverished is still growing. Socioeconomics aside, make smart decisions regarding your money. The world population is only going to increase meaning the world’s resources are only going to become scarcer. If you are not using a money management tool like Mint, you should start right now. I personally use Pocketsmith.
  8. Always be learning. The common advice is to keep reading books. As I am a tech dude, I understand if you think reading text off thin pieces of wood is antiquated so I am okay if you get your information from electronic devices as long as some of it is in long form. That means for every 9 memes, you best be reading an article of substance. Think of the content you consume as junk food versus veggies. Your brain will not thrive (or perhaps even survive) if you keep feeding it junk food.
  9. Buy less stuff. Aside from the fact that consuming less will save the environment, it will yield you more happiness. By having less stuff, you will appreciate what you have more. It is definitely cliche but financial success and materialism won’t give you that life you’ve always dreamed about. Look on Quora for answers from wealthy people on what life is like; life is not greener on the other side, it’s just different. Humans are ridiculously adaptable creatures, and you will adapt to your new wealth and your happiness will plateau. The 2 biggest sources for this nugget of wisdom is Marie Kondo’s book about tidying up and a documentary on Minimalism. If you want to buy something, buy memories by going on vacations and taking pictures and videos.
  10. Remember that we’re all humans. This seems like a ridiculous piece of advice, right? I am telling you it is not. I’ve spent years studying and troubleshooting computer systems. Obviously that has suggested me to think about each human as one giant complex system that runs on a multitude of algorithms. While it’s useful to break people down into components for the purposes of troubleshooting, most of us aren’t doctors and we should be viewing our friends, family, colleagues, and neighbors as whole living entities – each with moods, emotions, stories, dreams, and social connections. Once you’re able to recognize this fact and embrace it, you’ll start to connect with others and that’s when magic happens. You start unlocking happiness (hello primate brain wired for social interaction!) and other rewards, such as increased compensation at work. We’re raised from childhood saying we need to hit all these milestones in order to achieve success: graduate from high school, college, earn top grades, etc. Try as hard as you want to be the best in the world technically. Be that genius asshole. Be that shining star in whatever department you’re in. The truth is: no one cares. If you go back to kindergarten, you’ll find all you need to do well in the world, and that’s to play nice with others. I’ve wrestled with this paradox for many years: why isn’t the merit-based system the ideal one? Why is it not working? Well, it all comes down to the fact that the weak link in the chain is us humans, subject to unconscious biases. You will view people you like in a better light, and thus reward them more with whatever resources you have. I’m not saying to go out there and be a ruthless manipulator (see point #4) but play the politics game a bit; hell, you may even have fun along the way.

North Carolina Driver’s License Cheat Sheet

i gathered all this information from a bunch of sources. hope this question dump helps potential test takers on the ridiculously stupid and irrelevant exam that is the NC driver’s license exam.

  • In densely packed snow you should use chains or snow tires.
  • If you must drive during heavy snow / fog / snowstorm, use your low-beam headlights (NOT high-beam or parking lights).
  • Alcohol-related highway deaths account for 38% of all traffic fatalities.
  • If you accumulate 7 or more points on your traffic record you may attend a Driver Improvement Clinic to deduct three points from your driving record.
  • The traffic conviction that adds the highest number of points (5) to your driving record is passing a stopped school bus that is loading or unloading children.
  • “Secondary roads” are roads where hills are more likley to be more steep and curves are likely to be more sharp than on primary roads.
  • Unless otherwise posted, the speed limit in cities and towns is 35 miles per hour.
  • To have a revoked driver license restored, you must visit a driver license office, pay a restoration fee, and reapply for a license.
  • When three vehicles reach a 4-way stop at the same, the right of way belongs to the car on the right.
  • If you have a leaky exhaust pipe, it can cause harmful fumes to enter the vehicle.
  • If a vehicle sways freely, leans heavily to one side during a turn or seems to bounce continuously, there may be a problem with the suspension system.
  • If you experience a breakdown, you should call a law enforcement officer (NOT pull to the side of the road).
  • To maintain a safe driving distance between your car and the car in front of you, you should use the two-second rule.
  • If you take any medication before you drive, you should find out what effect the medicine has.
  • If you are planning a long road trip, you should stop and rest every 100 miles.
  • Before passing another vehicle, you should look ahead to ensure that there is enough room for you to pass.
  • When driving down a very steep hill, you should shift into a lower gear to control your speed.
  • If you run off the side of the road, you should gradually take your foot off the gas pedal.
  • When travelling on rural highways, farm equipment usually travels at its maximum speed of 15-20 mph.
  • If you are driving into a circle you should yield to cars already in the circle.
  • If you are in a crash, you should move your car off of the road.
  • School buses are required to stop at all railroad crossings.
  • In city traffic, you should be alert for drivers who make quick stops.
  • Truckers have serious blind spots into which cars can disappear from view.
  • Unless there is a sign indicating no turn on red, you can turn right on red after stopping and making sure that the turn can be made safely.
  • For any underage person who aids or abets another attempting to purchase any alcoholic beverage, the law requires a one-year driver license revocation.
  • Your license will be revoked immediately for 1 year if your blood alcohol concentration is at least 0.08 percent.
  • When aproaching a road that is blocked from view you should stop and proceed with caution.
  • Defensive drivers check their rear view mirror and side mirrors roughly every 10 seconds.
  • Bikers sustain more injuries in a collision with a car (forgot the rest of the question).
  • If going 45 miles per hour, how far ahead should you signal before turning? 200 ft.
  • If you plan to turn and are not in the proper lane to do so, you should continue to the next intersection, then turn.
  • The most common type of accident on a highway is a rear-end collision
  • When driving behind someone you should not use your high beams
  • To dry wet brakes, gently apply the brakes
  • “Don’t hang out in the No zone” refers to not be in truckers’ blind spots
  • When approaching a railroad crossing slow down and prepare to stop
  • If you pull up to a red arrow, the turning lane is the only lane that should stop
  • if you are a pedestrian walking along side the road at night, you should carry or wear something white
  • Use high beams when driving on a highway and no car is approaching
  • Slippery roads are most likely to occur when it has just begun to drizzle or rain
  • When traveling behind a farm vehicle on a two-lane road wait until the farm vehicle has the chance to pull over to the side, then pass with caution
  • Large trucks (tractor trailers) have large blind spots to the side and rear
  • When preparing to make a right-hand turn turn on your turn signal and approach the right-hand side of the road
  • A “shoulder check” is a quick glance over your shoulder on the side in which you intend to turn or change lanes
  • When you get tired on a long trip, you should stop and rest
  • When taking a long trip, you should plan to stop and rest every 100 miles
  • If you are following a car at night, how do you know if the road is bumpy? You watch the tail-lights.
  • It is dangerous to drive slowly after the crest of a hill.
  • What causes the biggest hazard on the road… Women drivers, slow drivers, elderly drivers?
  • Littering is … punishable by a fine not less than $250 and not more than $1000.
  • All registered motor vehicles in NC must be inspected every 12 months.
  • Most accidents occur at… intersections.
  • Why should you pay close attention on country roads?
    • Scenery can be beautiful
    • Cows have the right of way
    • Slow moving farm machinery may use the roads
  • If your car broke down on the highway, you should…
      • lift up your hood
    • stay in front of your vehicle
    • stay behind your vehicle
  • When a school bus stops for passengers, all traffic from both directions must stop at:
    • Two-lane road with center turning lane
    • Divided highway of four lanes or more with a median separation
    • Road of four lanes or more with a center turning lane
  • When do you adjust your rear and side view mirrors? Every time you’re about to drive somewhere.

After reading this list, I highly recommend taking this practice exam. You can hit your browser’s back button and redo each question until you get it right.