PermalinkAdvice on getting your first job as a developer

 |   development, industry.

Lately there has been some controversy about how important a GitHub profile is to get hired as a developer. I don’t think that requiring source code published on GitHub is neither helpful nor fair –you are leaving out smart, hard working people who can’t afford to work for free after their normal job, or who have to take care of their families, or who have other hobbies.

However, I noticed that some people who were trying to get into the industry were distressed about this. So I decided to write a post with the advice I would give to any junior developer or student asking me about this. I hope it can be of help!

Expectations

There are some misconceptions about the industry that are really common. So what is really expected from you? What can you expect from your employer? Here are some notes about expectations at a healthy, good company. There will always be companies that will try to get advantage of you, but there are plenty of good places to work at.

What is expected from a junior developer:

What is not expected from a junior developer:

What you can expect from the company:

Finding the right job

Be picky

The best advice I got when I was a junior developer, came from a lady I just met:

Your first job(s) have a lot of influence in your career. Be mindful of which one you pick.

And this turned out to be very true. Be picky.

“But I need cash ASAP! I can’t afford to be picky, I need a job right now”. Yes, that happens. And if you need cash ASAP, definitely get a job. Any job. It doesn’t even have to be a tech job if it helps you to pay the bills or save for a relocation. But if possible, try to find a job that will allow you to allocate a few hours a week –and the energy to do so!– to keep searching.

Because you have to keep searching for the right job. At the moment this industry is very privileged because: 1) it pays better than the average job; and 2) there’s virtually zero unemployment –though unfortunately sometimes we do need to relocate–. This give us a better leverage at the job market. Set aside some hours each week to invest on finding the right job for you.

And once you find a job that is the right fit for you, don’t be afraid of quitting your current job. You might thing it might look bad in your CV. But you already found another –and better– job, and it will have more influence in your career if you kick ass there than quitting a job that didn’t fit and you were unhappy with after a few months.

How to know if a job is the right fit for you

Do your research. First figure out what kind of role you’d like to be at in 5-years time and which companies have that role available. Then look if they have some entry-level positions –and if they offer career progression opportunities. Sometimes you might need to ask around and/or do some online research to figure this out.

Speaking with people who are currently performing the role you aspire to in the future also helps a lot. Don’t be shy and ask for their advice. Most people like to help, and will probably answer your e-mail and/or point you in the right direction even if you cold e-mail them.

When you are doing interviews, remember that they are not just about you being evaluated, you are evaluating the company too. Ask questions about career progression, training, who you would be working with, what they expect from a junior developer, etc. Asking these types of questions will not offend anybody and are actually a good sign that you take things seriously.

Once you get the job, you will be in probation time. This depends on the country and industry, but will often be in the range from a few months up to a year. Remember that probation works both ways: if you are not the right fit for the company, they will probably let you go. But if you find that the company is not the right fit for you: let them go. Some questions you should be asking yourself:

A big disclaimer here: there is not such a thing as “the perfect job”. In tech we have this pervasive culture that this is a vocational job, “work hard, play hard”, and that since we all love what we are doing, we should be ecstatic about it 100% of the time.

Wrong.

Even if you get whatever you think your dream job is, there will always be tasks that you must do that you will dislike:

And it is OK. Just do it, so you can go back to do what you do best.

How to leave a company or reject a job offer

Don’t be a fool. This both means that you should stand for yourself, and that you should not burn bridges.

If after all the interviews, you get an offer and decide that the job is not right for you, don’t feel bad about rejecting it. Yes, they have spent time and money in interviewing you –and so did you–. But remember that an interview work both ways, that you are also interviewing them, and that rejecting a job offer is part of the professional world. Any reasonable person should not be mad about being rejected for a job, and any reasonable person who is hiring should not be mad about somebody rejecting the offer.

If you are working at a company and decide to quit, respect the notice period and the procedure that is outlined in the contract or in the Collective Bargaining Agreement. Speak to your line manager in person first, and then give them your resignation later that day, or the next day. Be calm, be polite, be grateful. But do what is best for you.

Working during your notice period is hard because you have your mind set elsewhere, but do your best and be professional. Don’t work overtime for free to finish whatever you were working on, but don’t skip your duties.

Do I need a GitHub profile to be hired?

No, you don’t need a GitHub profile or contributions to open source software in order to get hired.

However, when you have zero experience in the industry, having some projects you can show will help you land your first junior job or internship.

Be smart and leverage the projects you have done as part of your learning. It doesn’t matter whether you went to uni to get a degree, or to a bootcamp or if you are self-taught: projects are a core part of learning software development and you will probably have a bunch of them. Pick your favourite ones that are relevant to the position you'd like to get, polish those projects, and ship them.

Sometimes GitHub is the best place to release your project –for instance, if you developed a npm module. But sometimes it’s not: if you made an iOS app, the right place is the App Store, or if you made a desktop/web game, upload it to itch.io, and so on.

After polishing a few of your favorite learning projects, you might be tempted to keep developing more of them before applying for jobs. Ask yourself:

“Is this the best use of my time?”

Some things you should be doing before developing more projects include:

Other activities that you can do –but have less priority than the ones outlined above– are writing technical articles (this is also a great way to improve your technical English), doing a lighting talk in a meet-up, participating in a hackathon, etc.

How to get hired

When looking at job specs, remember that you don’t need to tick all the boxes of the requirements in order to get hired. Job requirements are usually over-inflated and you might have different skills that would be useful for the job. You already have a “no”, so submit your application anyways.

Put some work on your résumé and your cover letter. They should be "shiny and chrome". Do some research about how to write effective résumés and cover letters, but some tips are:

And for the love of all that is good: DO NOT LIE.

One thing is to write your résumé the best way you can. But a totally different thing is to lie. It’s not only unethical, but eventually you will get caught and it will be bad for your career.

Definitely advocate for yourself, but do not give yourself credit for something that you didn’t do. Also, when you are just right out of school, you are probably not a “C++ expert”, no matter how many assignments you did in C++.

Once you get an appointment for a job interview, prepare it in advance:


And this is what I have come up with! I hope was helpful, and all the best getting your first job in the industry :)