20 months after posting my first non-hello-world article to this blog, it’s time that I have something (hopefully) valuable to share: my job hunting experience.
A little background about my post-graduation experience: I graduated from University of Waterloo with a Bachelor of Computer Science degree in December 2013 and started taking trips to difference places: Asia in January and February, U.S. in March and Europe in May and June. (If you are interested in the trips and can read Chinese, check out my Chinese blog. In June, I shipped four personal projects: RSS Subscriber, Save All Tabs to Pocket (Chrome Extension) and Pace Converter. In July, I prepped myself for job hunting and started actively looking for a full-time developer job. It’s been three weeks since my first application and I have received one offer and lots of rejections.
Here are a few lessons I learned from the job hunting journey.
Rejection Hurts (But Let’s Make It Quick and Clear)
It hurts to be rejected or to reject someone.
Confession: fears to be rejected accounted for a lot of my pre-job-seeking activities: I travelled and did the projects because I feared job hunting. I knew I could land a job somewhere but I was worried that it would not be a job I would be really passionate about so I would end up having a bad performance. In the first three weeks of July, the fear intensified so much that I couldn’t even begin the job search: I spent all of my time reading novels, reading the backlog of my Pocket projects (my projects sent me 5,000+ articles) and watching TV shows… Until one day the guilt of wasting time felt too overwhelmed so I had to start the search.
The Story with SG
The main tool I used for search is AngelList because I wanted to join a small to mid-sized company and almost all of them are on AngelList (Thank you Dingding and his friends for recommending the site). The first company interested in me was SG, who offered to have a quick Skype chat with me. To prepare for the chat, I researched the company, wrote up a self-introduction, some questions to ask and thought I was ready. With that, my heart was still pounding at 2x its normal rate for the half an hour before the scheduled time. During the chat, when asked about why I was interested in the company and what I was looking for in the job, I felt lost of words: I had a vague idea of what I wanted (joining a growing company with meaningful impact) but had a hard time expressing it. The interviewer asked for some code examples and explained that they did this because they found that some people just write really bad code.
The RSS Subscriber was the proudest code I had because it solved my pain point as a long time blog reader (Keeping up to date with what other people are thinking fascinates me). At the same time, it was my first experience dealing with Node.js, Parse, OAuth and APIs so I had a lot of
console.log and other bad practices in the code and there was no testing. Nevertheless, I thoroughly enjoyed writing it as I was even dreaming about it every day at that time. Since basically I was the only person using it (along with TODO: stats) and the core functionality worked like a charm, I didn’t find the need to improve the code (I would rather move on to another project because it provides more utility).
SG got back to me a week after I submitted my RSS Subscriber code and told me they had decided to move forward with another candidate without explaining the reason behind. I guess the only explanation is I just write really bad code.
- Write down what you are looking for in the ideal job and align them with the company you’re interviewing with. Here’s mine:
- Working on a practical product that make lives easier and more efficient
- Being part of a fast-growing, collaborative team; learning a lot from it
- Using new technology (new languages, tools) in the process
- Good code practice should start from day one
The Story with VT
VT was the first company that invited me for an on-site interview. The interview started well: I was first asked some theoretical questions, which I answered okay. Then I was asked a few coding questions which I didn’t do well because my code was sloppy (TODO: should I say I was sloppy?): forgetting important syntax with the language I claimed to be most familiar with, didn’t come up with satisfactory answers until given hints, etc. Then I was asked if I had questions for the company and it took me quite a long time to even come up with the questions (because they had already explained everything very well and I was still in the regrets of not answering their questions well enough). From that you could probably guess the result: I was rejected because my technical skills and drive were not good enough.
- Fail to prepare = prepare to fail.
- Try to see things from another perspective.
- Be detail-oriented.
The Story with TH
TH was the first company I saw myself joining after an interview: the interview process was enjoyable, challenging and not stressful; the company culture was great; I really liked their vision; the product was practical and meaningful. But seems like the feeling was not mutual: I was rejected.
- Good companies have high bars: I’m still not good enough but it would be so much better if they would let me know which area I could improve on so someday I would come back stronger.
The Story with SA
SA was the first (and currently only) company that gave me an offer and I’m really grateful for that. However, I turned it down because I didn’t like the industry it was in (even though the company was fast-growing and promising, its technical stack was very interesting and the job was challenging). It was hard for me to say no to the offer because I felt like I had wasted their time in the process.
- If for some reason you know you’re not going to join a company even if it offered you a position, thank them and carry on.
The Story with Many Others
There is (a large number of) another type of company: companies that don’t bother to reject you. I know rejecting someone is hard, but let’s make it quick (please send out a note when you decide not to move forward. It shouldn’t be hard with all kinds of good applicant tracking solutions you’re using) and clear. Being in the dark feels like having a dangling pointer.
Communication is Crutial
The Story with FS
I saw a open position posting on FS’s website and was thrilled to apply: I have the skills listed in the requirements and it’s a product I use everyday and will be useful for a lot of people. One of the optional fields in the application was cover letter. I had a feeling that my skills listed on the resume is obvious enough to let them know I would be a good candidate for the position so I left the field blank. You might have guessed the outcome: I never heared from the company since. Looking back, I realized that no matter how obvious you think your feeling is, you got to communicate it.
The Story with Many
I always ask companies why they are hiring and what technical challenges they are facing. I find myself learning a lot about the companies about their vision and culture from answers.
There are countless times I see the importance of communication so I will keep working on it.
My Hopes as a New Grad
I have noticed that a lot of startups are hiring for senior positions and hope they could consider junior candidates as well because most founders are experienced so having a mix of people with different experiences will probably sparkle more innovations as people learn from different angles. Wouldn’t it be great if employees are as fast-growing as the companies?
It’s true that competition is good but it just seems a lot of companies are onto ads, analytics, marketing and payments and their products are so similar. I would really like to see more innovative and disrupting companies on other areas.
Job hunting has been a growing experience already. I’d like to express my thanks for my friends who supported and advised me along the way. I iterated myself from stressing out easily to handling interviews comfortably stressed (I learned the term from a comfortably hard jog). I’ll keep working on technical and communication skills. Now I’m looking forward to getting hired and iterating on an empowering product! In the meantime, I’m starting another project: Marshmallow. I got the idea from the famous Marshmallow Experiment. If I were to do the experiment, I would probably choose immediate reward. Applying the experiment to our everyday work, what if we use something to hide the marshmallows(distractions) and reward ourselves with double the marshmallows later? Maybe we could feed ourselves with vegetables(productive work) and at the end of the day we will be both productive and happy. Please join the mailing list to stay tuned.
Here are some of the resources I find useful or interesting.
To thank you for reading this long post, I’d like to introduce you to some products that wowed me:
- Vurb. Maybe someday we’ll have fewer tabs?
- Cruise. (In case you didn’t know, I’m not a fan of driving. :P)
- vanhawks is my ideal bike.
- x.ai. We all know how inconvenient it is to schedule meetings.
- Algorithmia. There are enough wheels already.