Friday, January 23, 2009

Get a good job in a great company

I've had a few software engineering students ask me what they could do to get a good internship or job in a great company (see 100 Best Companies to Work For 2009)

In general, I would say the following:
  • Make sure you've chosen a career that you are passionate for. Passion is key to your happiness and will get you what you want. Be clear on what area of software engineering and what kind of apps you want to work on.
  • Make sure your LinkedIn profile is up-to-date, complete with referrals: that is how I got the job. You should also have a paragraph explaining exactly what you want / what your dream career is. List the technologies you've used (recruiters sadly often just search by keywords) and give metrics on your achievements (# of users, # of KLOC, money saved, # of new customers, etc). Get your English text reviewed by someone competent in English!
  • Be the best you can be in software engineering and help get your university program recognized worldwide: desirable companies only hires new grads from top universities with top grades. Sadly, when they look at Canada they only see Waterloo right now and not my university ETS - possibly due to the substandard English version of the website. You can make it up with work experience but if you have a target in mind when you graduate this is important.
  • Practice programming by competing in http://www.topcoder.com and developing apps: theory is needed but only theory is next to useless.
  • Apply your technical leadership skills in a student project for an international competition. My favorite being of course SONIA and the AUVSI competition. A student club is the closest thing to having your own engineering company and it is an invaluable learning experience.
  • Get familiar with the software ecosystem of the company you have in mind.
  • Get challenging internships in tech-driven companies.
  • Strive to be a honest, nice, enthusiastic and interesting person.
There are various ways to get familiar with (for example) Google technologies, both from technical and business standpoints, with many opportunities to get recognized.

Develop new apps using the available SDK and contribute to the open source projects:
There's a few libraries that might give you a taste of the infrastructure:
A good way to ramp up on the business is to sell the software to local businesses:
Help local companies make money online with the company tools:

No comments: