Posts
- Mar 3, 2024
I worked at Airplane, an internal tooling startup, for nearly two years. Earlier this year, it was announced that the company was being acquired by Airtable and that the product would be shut down. In this blog post, I want to explain what happened from my perspective as a former employee.
(Read more)
- Jun 18, 2023
After nearly 10 years of living in San Francisco, I decided to
leave at the end of last year. In this post, I explain what
motivated my departure and how the city can improve in the future.
(Read more)
- Mar 27, 2022
I recently had the opportunity to invest in a venture capital
fund. In this post, I want to explain how these funds work and
what I've learned from the experience so far.
(Read more)
- Dec 30, 2021
A lot of companies, both in tech and other industries, are having trouble
retaining employees at the moment. In this post, I want to describe the various resignation waves
that I've seen in my career thus far and what companies can do to respond to them.
(Read more)
- Oct 3, 2021
I recently got back from a vacation to the East Coast of the US. For two days during my trip,
I biked around New York City and explored various neighborhoods, parks, and bridges.
In this post I want to share my routes and also my observations
from the perspective of someone who has done most of their biking in San Francisco Bay Area.
(Read more)
- Sep 6, 2021
Every company I've worked at in the last 9 years, from small startups
to multi-thousand-person public corporations, has used Jira for managing software
projects internally. In this post, I want to explain what Jira is and why
interacting with it at work makes me feel frustrated and unproductive.
(Read more)
- Aug 7, 2021
Over the last few years, many tech companies have embraced "core values"
with religious fervor. In this post, I want to explain what core values are, why
most are meaningless, and what can be done to make them better.
(Read more)
- May 31, 2021
Looking back over the last decade, I've had a lot of great experiences in the offices
of my employers and for the most part these spaces have been comfortable. However,
there are certain office features that I've encountered at company after company that are not
optimal and end up unnecessarily lowering productivity and happiness. In this post, I want to
call these features out and describe how they can be fixed.
(Read more)
- Apr 18, 2021
In my previous post, I described how migrating to Kubernetes involves transitioning an
organization's infrastructure from a legacy service platform (LeSP) to a Kubernetes service
platform (KuSP). In this post, I want to go into more details on why this migration is hard and
what you can do to reduce the pain associated with this transition.
(Read more)
- Apr 17, 2021
Over the last few years, I've worked on migrations at several companies- Airbnb, Stripe, and
Segment. In this post, I want to talk about why these migrations are done and what they involve
from the platform standpoint.
(Read more)
- Apr 11, 2021
At many companies the "senior engineer" level is fairly straightforward to get into, but hard to
get promoted beyond. The difficulty in advancing past "senior" can cause a lot of frustration and
make people feel stuck in their careers. In this post, I want to share some observations about this "senior engineer plateau", why it causes frustration, and how to navigate out of it.
(Read more)
- Feb 15, 2021
Software engineers are an interesting bunch. While quirks are fine, and I have a few myself,
there are certain traits that show up on the personality side that can be genuinely counterproductive to my team's work. In this post, I want to explain what these are and how I
try to deal with them.
(Read more)
- Jan 31, 2021
The go standard library is fairly rich. However, there are certain pieces of functionality
that are either missing or insufficient and that, as a result, require the use of
third-party libraries in nearly all of my projects. In this post, I want to go through the
main "batteries not included" in the standard library, and the alternatives that I typically
use for each one.
(Read more)
- Jan 24, 2021
In my last post, I discussed how companies can make their onboarding processes
better for employees. In this post, I want to turn the tables and talk about the
strategies I use personally to get up-to-speed when I'm starting at a new job.
(Read more)
- Jan 17, 2021
Starting a new software engineering job is hard, and making this process
successful requires a lot of effort from both the employer and the
employee. In this post, I want to focus on the former, and in particular
how companies can make their onboarding processes better.
(Read more)
- Jan 10, 2021
Every now and then, I get asked how I made this blog from a technical standpoint. In this
post, I want to share how my content is generated and hosted, and then describe some
commonly-used, alternative approaches that I decided not to take.
(Read more)
- Jan 1, 2021
Two years ago, I did something that I'd never done in my career before- I left a job
(at Nuro) only a few months after starting it. In this post, I want to explain
what happened and what I learned from the experience.
(Read more)
- Dec 25, 2020
I spent 5 years of my life getting a PhD, but like many others who've gotten this degree,
I decided to leave academia after graduation. At the time, I explored several career choices
but ultimately decided to take a Product Manager job at Google. In this post, I want to discuss
why I think tech is a great destination for people with technical PhDs.
(Read more)
- Dec 24, 2020
Many software engineering interview loops include an "architecture interview", where the
candidate is asked to develop a high-level design for a software system. Over the last few
years, I've given many, many of these interviews. Based on these experiences, I'd like to share
what it takes to succeed in them, and some common behaviors to avoid.
(Read more)
- Dec 6, 2020
In an earlier post, I listed out signs that your employer is about to be acquired. In this
one, I want to talk about how the tech acquisition process works from end-to-end, based on my
personal experiences.
(Read more)
- Nov 29, 2020
Since I switched into engineering 8 years ago, I've witnessed a few productivity and
organization tools that have really been "transformative" in terms of how I do my day-to-day
work. In this post, I want to share my personal, before-and-after experiences with these.
(Read more)
- Nov 8, 2020
Over the course of my tech career thus far, I've been through two acquisitions. In each case,
I was just a normal employee without any special inside knowledge, and found out only a few days
before the deals were publicly announced. In retrospect, however, there were some clear signs
in the weeks leading up to the announcements that something unusual was going on.
(Read more)
- Oct 18, 2020
Equity in one's employer is a large part of the compensation for Software Engineers.
In this post, I want to describe how the different kinds of equity work and why I strongly
prefer one type, restricted stock units (RSUs), over options-based alternatives.
(Read more)
- Sep 26, 2020
As a software engineer working in the San Francisco Bay Area, I get a lot of
unsolicited recruiting emails. I recently decided to dig through my email archives
and do some analysis of the long-term trends. Here are the results.
(Read more)
- Sep 20, 2020
Service meshes look great on paper but can be a huge pain to roll out
and manage. In this post, I want to share some of my war stories
and caution against diving into the service mesh hype too quickly.
(Read more)
- Jul 23, 2020
Last year, I open-sourced golines, a tool that automatically shortens long lines in go code.
This post explains why I developed the tool and how it works.
(Read more)
- Mar 29, 2020
Most tech companies, even those without formal job titles,
assign "levels" to engineers. Despite the importance of levels for determining compensation
and job expectations, many companies prevent non-management employees
from seeing anyone's levels besides their own. In this post,
I explain why this is a harmful practice that should be
discontinued.
(Read more)
- Oct 6, 2019
Over the course of my career, I've had many jobs which implies that I've also left many jobs.
Leaving a job can be awkward and emotionally draining, but, depending on the circumstances,
also liberating and life-improving. In this post, I want to provide some guidance on why, how,
and when to leave a job based on my experiences so far.
(Read more)
- Sep 7, 2019
I began my career as a product manager (PM)
but then switched tracks and became a software engineer (SWE) three and a half years later.
In this post, I want to describe how I started as a PM, why I made the decision to switch, and
how it worked out.
(Read more)
- Aug 31, 2019
In my most recent job search, I used a service called
Triplebyte to connect with potential employers. I wanted to share my thoughts
in case others are considering using their services to find a job.
(Read more)
- Jun 9, 2019
In a previous post, I discussed preparing for coding
interviews as a candidate. In this post, I want to flip to the other side of the table
and talk about conducting better interviews from the interviewer perspective.
(Read more)
- May 27, 2019
Having switched jobs a few times over the last few years, I've done a a lot of software
engineering interviews. In my most recent job search, for instance, I did around eight phone
screens followed by six on-sites.
(Read more)