After a year of recovering, I finally decided to return to the job market in mid October. It's been 8 years since I last looked for a job, and my outlook on the tech industry has changed so much that past experiences don't seem relevant anymore.
When I left GitHub last year, a number of friends had already reached out with opportunities, so I started the search by talking to them first. For phase one (which ended up being the only phase), I shared the news in just 3 places: my microblog, ex-GitHubber Slack, and Instagram. I also tweeted about starting to look, but without explicitly asking for connections.
About 20 companies reached out, and I picked 12 to talk to. Out of the 12, 1 reached out from my microblog, 1 from Instagram, 5 from ex-GitHubber Slack, 3 from Twitter, and 2 from Conversations With Friends™ (by Sally Rooney). I ended up pursuing 3 all the way, and luckily managed to get an offer from all 3.
After getting all the details on the offers, it took me about 2 weeks to make the final decision.
My criteria were as follows:
- Global remote.
- Small company. (<200)
- Big enough to have some infrastructure to support employees.
- Small enough to not be plagued with bureaucracy.
- Senior front-end position (potentially +fullstack/design).
- A developer-facing product.
- And more.
The first offer
Within the first two weeks, I got an offer in writing. I was really tempted to just accept it, simply because job hunting isn't a fun experience. However, I ended up following through with the remaining leads I was interested in. There were many times in the past when I believed I was in the best position I could be in, simply because it was the only thing I knew was possible. If I had taken the first and only offer, I think I would inevitably wonder if there was something better.
Fortunately, the company had no problems waiting for me, and even encouraged me, saying that I should do whatever's best for me.
Global remote
Global remote opportunities unfortunately still aren't that common, despite the existence of services like deel, oyster, and remote. Even with supposedly global remote companies, two out of the twelve I talked to still told me they couldn't hire in Taiwan, and both were referrals from friends employed there who weren't aware of the limitation on the HR side. It wasn't surprising, since GitHub also doesn't hire in Taiwan (I was legacy'd in). However, one of them eventually reached back out and told me they will be able to make an exception for me.
Geographic pay
Two out of the twelve companies I talked to pay based on employee location. I decided to not move forward with one after they told me the exact range, and the other said they were location-adjusted but "can make a competitive offer". They ended up giving me an offer that was very low, but after negotiation, it became the one with the highest base salary.
Salary negotiation
I have not negotiated salaries before, and did not feel comfortable doing it at all. I read the famous piece by @patio11 and disagree passionately with the first paragraph—To me, salary negotiation is 100% not just slightly more challenging than “totally trivial”. It makes me want to vomit violently. However, that is not to say I disagree with the rest of the article. I actually do agree and wish to cure myself of the vomiting tendencies. Unfortunately I didn't find a cure. But I did find a work around—having multiple offers.
Once I had offers to compare, salary negotiation became a matter of eliminating the differences between them. It is very difficult to compare offers when every single aspect is different. Through negotiation, all 3 of the offers ended up being in a similar range, and I was able to make a decision purely based on the work I'd be doing.
This experience was eye-opening to me. After negotiation, the company that does geographic pay came back with a new offer which was a whopping 60% increase from the last. Imagine if that was my one and only offer, and if I had taken it without negotiating!
The decision
I was very fortunate to have 3 offers, but that also made it a very difficult choice. The 3 positions each had a unique strength, and judging from the numbers and job description, were almost equally good, just technologically different. I truly believe I'll be able to make meaningful contributions as well as find interesting technical challenges that'd fulfill me at any of those places.
Not being able to make up my mind, I probably talked to 10+ friends about this, and found myself leaning towards a different option after each conversation.
Then my friend Julius gave me the game-changing advice to do a trial period with each of the companies, so I'd have a much better sense of what a day-to-day would be like. Given the time constraint, I decided instead to ask for an hour-long call with an engineer I'll be working closely with, and have them give me an overview of the issue tracker, product roadmap, documentation, communication channels, as well as some code reviews.
This turned out to be invaluable. It made the decision clear as day. In the end, 3 things made the difference: autonomy, asynchronous communication, and DE&I (Diversity, Equity, and Inclusion).
Autonomy
People who are not used to remote work often ask "how do you know people are actually working when they're not in an office?" and that to me, shows they're fundamentally not ready for it. Because first, being physically somewhere really has nothing to do with doing work; second, it shows a complete lack of trust in people to work when unsupervised.
In a remote work setting, "being online often (green dot)", "providing frequent check-ins", and "attending all hands" are similar to the requirement of being physically in an office. They by no means represent actual work done, but might nonetheless be requested of you. To me, they are signs of distrust when excessive.
Autonomy and the trust that comes with it were something that I came to take for granted. The trust that was put in me in early GitHub scared me immensely, but now I can't really imagine otherwise.
Asynchronous communication
Another thing I took for granted was the quality and the type of code reviews I used to get from my teammates. A good code review, especially when it's for people with little to no working hours overlap, should be so detailed and complete that it unblocks the other person. It'd also serve as documentation on technology choices for posterity.
In the calls, I saw a clear difference in the level of thoroughness in code reviews and asynchronous communication. It might simply be that they haven't had to work with people in opposite time zones, but it speaks to how much context I'll get from other people's work and the degree of institutional knowledge that I can obtain without asking. I believe I'd be better supported by people who are already experienced and fluent in asynchronous communication, and put thoughts in written communication regardless of their peers' whereabouts.
Diversity, equity, and inclusion
Not being the only woman, or the only person of color, makes a big difference in the work environment. There's no amount of guarantees that can offset this. Like many, I have worked in all male teams for the majority of my career so far, and I was lucky to have met a lot of great allies along the way; however, no number of allies will make micro aggressions go away when you're the only person from underrepresented groups, and nothing can replace having people who share similar experiences as you. The emotional labor required otherwise would be incredibly draining.
There were a lot of issues at GitHub, but I nevertheless had a generally positive experience which I would attribute to luck. If I were to work in a similar environment again, I am confident that I can survive with a bit of luck. But I'd prefer something better than surviving, and to not have to rely on luck. This means that I have to work with people who are fully aware of the importance of DE&I and are already putting efforts in building a diverse team.
Commitment in DE&I manifests plainly in the team's makeup. In the case of non-diverse teams, I asked what they think caused the problem (assuming they do think it is a problem), and what steps they're taking to make things better. In the case of small teams, I talked to people who are the most like me, and asked if they think the company is going in the right direction, and if they think their voices are heard and acted upon.
One thing is for sure: nothing will change if no one is responsible to fix things.
Evaluating companies
I believe you can gauge how well a company will take care of you from the amount of thought and effort that goes into the interview process. If they'd given you a bad offer to begin with, how much would you have to advocate for yourself for future promotions and raises? If they'd been unwilling to be flexible on trivial things, how much support would you get when personal problems come up in the future? If they failed to be forthcoming on things as basic as your compensation, how much trust can you put in their ability to communicate sensitive issues well?
Here are a few things I liked in the interviews that I think would be good if more companies have:
- Paid technical exercises. One of them paid $750 for a day.
- Coding exercise without screen sharing; alternatively, they checked in on my progress every 20 minutes.
- A diverse interview panel.
- Proactively addressing common concerns like the lack of diversity and time zone issues.
- Questions like "what can we do to make sure you succeed here?"
- Detailed offer that includes number of outstanding shares and exercise window.
In conclusion
Even though I talk a lot about leaving Twitter forever and the uneasiness with social media, being visible online and in open source definitely helped me a lot in this job search. The fact that I didn't have to cold apply for jobs was something I didn't think was possible. I am very grateful to the folks who made internal referrals for me, as well as friends and people in those companies who took the time in their day to talk to me.
Some friends who followed along my experience this time thought that I was exceptionally good at this thing, but I wasn't. I just had a lot of help from very experienced friends. Some helped with drafting email replies, some helped with coming up with questions to ask, others simply offered different perspectives that highlighted my own blindspots. Friends! They're wonderful.
All this being said, I’m happy to share that in January I will be joining Rewatch, and work with some of my wonderful ex-coworkers again (join us).
P.S. Many thanks to Monica, Jessica, Eric, and Alex for giving me feedback on this post.