How I went about finding a new programming Job

Disclaimer: As the title mention these are the things that I did when finding a job. It may or may not apply to you. Depending on your background as a candidate and your preferences when finding a job. This information might also be location/role/tech…etc specific.

And if you are a rockstar developer, you won’t need any of this. You can join pretty much any startup you fancy. And the odds are you already have a zillion people spamming you with job offers. But if you are not, this might help you.


The reason I wrote this blog post is for me to consolidate all that I’ve learned during this phase of my life, Where I spent a significant amount of time and energy on finding a good role. And also, to get feedback from my friends and the community in general. So that I can learn even more and be better at this very important task that we all have to do sooner or later.

Some background about me as a candidate

  • A Generalist who has been doing a lot of Ruby on Rails
  • Have about 5+ years experience in programming
  • Worked in startups whole my life
  • Comfortable working in a startup/lean environment with small teams
  • Currently based in Singapore, originally from Sri Lanka
  • Single, mobile and lives like a nomad

There are always two ways to go about it.

  • Inbound
  • Outbound

Each has its pros and cons.


When I say inbound it means you don't find jobs. But the jobs find you. As in you keep a polished online presence so that people who are interested can find you. The people will most likely be recruiters or startups that are looking for technical talent.


  • You don't have to look for and apply to job postings.

  • If you are not good at applying for and seeking out good roles this method can be very helpful.

  • So companies will try to source for candidates like you before even listing a job posting.

  • If someone contact you about a role you can mostly assume that they think you are a good fit at least as far as your resume is concerned (the exception to this rule are the spamming recruiters).

  • You will always have a good idea about the job market.


  • You might be limiting your self, only to the companies that finds you and approached you. Therefor you will miss out on other possibly better companies and roles that never found you or didn't try to source candidates via LinkedIn (or by someother means...).

  • You have to sit and wait till someone approach you. This is not a problem if you have time on your hand. However if you are in need of a new job immediately this is not practical.


This is the more traditional route. You will search for job listings that you like and then you will post your resume and/or cover letter. Then you will wait for a reply, hoping to take it to the next stage (which would be an interview).


  • Comparing to the inbound way of doing things. Here you can explore more jobs and opportunities. You are more likely to find a better match for your self this way.
  • You don’t have to wait till someone finds you. But you do have to wait for a reply to your job application.


  • You have to go through a zillion job postings.
  • You have to maintain a good resume and write cover letters for each job that you apply for (well you could just use the same cover letter for every job but this won’t be the best way of doing things if you really need that job).
  • You are competing with a another zillion job applications, to get noticed, to the person making the hiring decisions.

Inbound or Outbound?

At the end of the day. I think the best option is to use a bit of both. And thats what I ended up doing. There is no reason why you cannot use them both. Always keep your online presence up to date. And also keep a watch on the new job postings. If you see something you really like you can always explore more.

How to be more effective at Inbound and Outbound methods?


  • Always strive to be a better programmer. Level up!. Code. Read. Speak and write!.
  • Do more open source. Contribute to project or do your own. But at least do something. No matter how you go about it, this is going to be a major factor when you are looking for work. More and more employers like to see your code and contributions before hiring you. And contributing to open source is one of the best ways to go about it.
  • Brush up your basic CS skills. Read up on algorithms and data structures. Do some practice questions online (ex:


  • Take great care of your linkedin profile. Keep it up to date at all times.
  • Network. Go to meetups and talk to people. Get to know other folks in the startup scene. Talk to other programmers with similar interests to that of yours. Its fun and fulfiling. And it might help you find a good job someday in the future.
  • Join and maintain a good presence on sites like


  • Use 'meta search engines for job postings’ like indeed ( for SG roles) to search for jobs.
  • Setup alerts (on sites like indeed). So that whenever a new job listing appears that matches your search criteria, you will get a email.
  • Join your local user group mailing lists. Many startups advertise there roles in the relevant local user groups before they list them in a paid jobs site or on linkedin.
  • Keep tabs on smaller but more niche jobs sites like (SG and south east asian jobs).
  • Apply directly. Basically find out startups that you are interested about. Find their website and just send them a email saying that you are looking a new gig. If they already have a system setup for taking job applications use that. However I’ve noticed that sending a personal email to one of the developers working there, that you might have met personally or not, is a lot more effective than going through the HR department.


Basically, always strive to improve yourself and be a good developer. Let the world know about it (Linkedin, OpenSource work...etc). Stay aware of the job market (job alerts...etc). Network and get to know people!

I think that's what it takes to get a job that you'll love doing. All input is welcome.