Sharing Is Good

A place to share and learn

Job Hunting Update

It almost doesn't bare repeating, but hiring is the most important decision a company makes, and nowhere is that more true than at a startup. So when we began looking in the summer of 2014 for junior engineers to join Curbside, everyone was excited (we're growing!), but cautious at the same time. We were all very aware of the crucial importance of these hires—whoever it was would be only the 7th or 8th engineer. The problem, and this is always the problem, is that we were in the middle of the most competitive software engineering market on Earth, looking for the same rare material as everyone else: smart as hell, hard-working, gets things done. We were very excited when we found Wendy.

She did not disappoint. There’s no need for all the details, but suffice it to say that it’s easy to think, especially at the beginning of one’s career, that excellent companies have dozens of excellent candidates for each position, and therefore success in job hunting reflects some sort of mistake or breakdown in the proper order of things. Why would those who know so much, need one who knows so little? But the truth is that you know more than you think: finding good people is just… very, very hard; hiring them is harder still. When she accepted, we breathed a sigh of relief.

And now it has been exactly a year, and what can we say that wouldn’t sound like an exaggeration? From the speed and taste with which she codes, to her merciless bug crushing; from her willingness to help and her level-headed pragmatism, to her absolutely uncanny ability to understand when and why something is broken, she has shown over and over again what it means to be the real thing. And that is of the greatest importance as together we all work on whatever might come, here on the edge of two industries, pickaxe and sifting pans in hand. Because every once in a while, you strike gold.

So from everyone here at Curbside to you, Wendy, thank you for an incredible year.

May it be the first of many.


Job Hunting Notes


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.

Lessons Learned

  • 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.

Lessons Learned

  • 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.

Lessons Learned

  • 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.

Lessons Learned

  • 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.

Moving On

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.

The Future

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.
  • We all know how inconvenient it is to schedule meetings.
  • Algorithmia. There are enough wheels already.

The Start of a Blog

I love reading blogs. For me, it is a good way to learn about what’s happening to friends and how they cope with the various things happened. It is also a pleasant way to get access to the minds of influential people.

A blog is a free place to share thoughts with the rest of the world. Despite all the benefits of having a blog, I noticed that fewer and fewer people are writing blog posts anymore because of the fact that people are generally more busy with other forms of thought sharing such as SNS. Additionally, professional blogs are ruling the Internet reading space and people tend to use shorter forms such as Twitter to express themselves so in order for a personal blog to have a wide readership, the articles need to be of higher quality than ever before. Even though I have been blogging intermittently since high school, I never considered myself a blogger because my blog posts are just usually just random rants about life and no one visits my blog so the influence is really limited.

I just had lunch with a friend who has very interesting thoughts on various topics such as communication, computer science trends and entrepreneurship. During the lunch, as he talked me through his latest thoughts on Windows RT, I suggested that he should blog about them because the thoughts were really amazing and it would be interesting to see how our friends would react to his points. I was not able to convince him and I felt that it’s a shame that his good thoughts could not be spread further and get the influence deserved.

I’ve been told by people that I sometimes have good ideas and I should speak up more often. So here I am getting started on a blog because I feel that my thoughts might want to be shown and maybe someone can benefit from them. (I know I benefit from putting them together and gaining organization skills :)) This time I will try to more organized. It’s a long way to go.

Hello World

This is a Hello World post. Stay tuned for a new post.