If you’re in the market for a Ruby on Rails job, and especially if you’re struggling to get your first junior role as a Ruby on Rails developer, you already know it’s not an easy task.
It’s not even about this particular framework; the real challenge is getting a junior role in general.
It’s the classic chicken-and-egg problem where businesses want to hire developers with experience, but how do you get that experience if no one is willing to hire you.
But there’s good news too. Namely, learning Ruby on Rails can pretty much guarantee you’re going to find a highly-paid job because the demand for good Ruby developers is so high.
The secret to quickly get your first junior developer role is this: You have to demonstrate an ability to add business value.
Business value means helping your employer grow their business by building new products or improving existing ones.
It means writing code, and ideally being able to build a product from scratch (from customer demand to precisely the right solution).
So, we’re back to writing code. And that’s precisely the point I am trying to make.
If your goal is to get a job, and you want to make the process as easy as possible, you’ve got to become overqualified.
And you do that by investing time and/or money beforehand to level up on your own.
In other words, you need to change the conversation from “I don’t know what I’m doing, I just want someone to pay me to learn”, to “I’ve already built a few apps on my own, so I’ll be productive from day one”.
That’s how you become attractive to recruiters and employers alike.
I know that sounds a lot easier than it actually is, but before we get into the tactics of how to do it, let me give you a few more tips that will come in handy as you go about applying to different companies.
Tip #1: Companies hate risk
Let’s get into the business owner’s mind for a second and understand why they see hiring you as a risky proposition.
The business owner’s goal is to grow the company, which is a nice way of saying they want to make a shitton (actual word) of money.
But to do that, they need to sell something (products or services). And here’s where you come into play.
You’re the product maker or the service provider. So, they are selling what you’re making for a profit. Note that profit is the keyword here.
As long as the business can sell your work for more than it costs them to make it, you’re seen as a good investment.
But if the cost of hiring you is so high that there is no more profit left, then obviously you’re going to be seen as a bad investment.
Now let’s talk about risk.
For the business owner, risk is defined as the uncertainty of whether you’re a good investment for the company or a bad one.
It’s the ability to answer the question: “Are we going to make money, or lose money by hiring this person?”.
As a junior developer, you’re considered a risky proposition because:
- You don’t yet have the ability to produce value, so there’s a leveling up period they need to pay for in advance
- No one can predict how fast you’re going to level up, so the amount they need to spend for you to learn could be more than they expect
- If you decide to leave immediately after they have paid for you to level up, they’re left with just the cost
There are also other things that could be considered risky.
- Legislation: the government protects employees through legislation making the firing process a nightmare
- Emotions: people need money to provide for their families, and taking that away from them is not easy
- Trust: firing people a lot makes the company less trustworthy when it comes to job security
Tip #2: Your job is to make money
In the real world, every business needs to make money to survive (even non-profit ones). And they hire you to help them do just that.
How are you going to help your employer make money? This question should guide your entire career going forward.
Focusing on acquiring the skills that are closest to the money will help you increase your salary faster because you will become a more valuable asset to any company that hires you.
Sure, writing code for fun or a good cause is nice, and it will make you feel good, but it usually doesn’t align with employers’ needs.
So, if your goal is to get hired, focus your learning on value-producing skills. At least until you’re satisfied with your current role (or salary).
Tip #3: Nothing is free
There’s a vast amount of information out there, and you can find anything you want to know if you spend enough time looking for it.
You could call it free information. But only if you don’t value your time. It’s free in the sense that you don’t exchange money for it, but it’s not free because you have to invest a lot of time to get it.
Now, you might be ok with that. But think about the opportunity cost. Let me give you an example.
I’m going to use the numbers from glassdoor.com. It lists the average salary for a junior Ruby on Rails developer at $60,000 / year, and the average salary for a senior Ruby on Rails developer at $100,000 / year.
That means that you’re leaving about $40,000 / year on the table every year you spend in a junior role.
In other words, you are spending $40,000 / year if you chose to take it slow and spend your time looking for all the pieces of the puzzle and putting them together yourself.
I hope that gives you a different perspective on “free” stuff.
Sometimes, learning for free can turn out to be more expensive than paying for it.
Next time you plan on learning something, keep that in mind while considering all the ways you can invest in your skillset.
How to level up on your own
Now that you have a high-level perspective of what the hiring process looks like, it’s time to focus on the tactics.
Your goal here is to become overqualified quickly. To build a lot of value in the shortest amount of time possible.
We defined value as the ability to create products by writing code.
Here are the four steps you need to focus on to get your first junior role:
- Create 2-3 projects
- Put your code on Github
- Create or update your LinkedIn profile and add your projects
- Start applying for jobs
- Continue learning
Now let’s look into what each step in detail.
Create 2-3 projects
There’s no magic bullet here; you need to learn to code. You can do that by reading books, looking at online courses, hiring a mentor, joining a bootcamp, etc.
The method you chose is entirely up to you. It really depends on how you learn best, and what you value most (time or money).
So your first task is to build yourself a portfolio of at least 2-3 projects, ideally even more.
This not only proves that you are willing to learn on your own, which is a trait employers are interested in, but it also gives you an idea of what the real-world challenges are with coding in general.
By building projects, you’re getting exposed to problems that you will reencounter time and time.
Those projects could be anything, I would start with book-like exercises first, and then move to some simple projects like building a blog, or a todo list, and then move on to something more advanced.
If you need inspiration, here’s a list of project ideas you can draw inspiration from:
Put your code on Github
Once you have those projects built, put them up on Github. Or even better, do it as you work on them.
This helps you learn Git, and it shows activity on your profile.
You can think of Github as your portfolio website. It’s where you can showcase the projects you build, for free.
Create a LinkedIn profile and add your projects
Here’s the thing. You could spend years learning how to code, but you won’t get a job if no one knows about it.
By building a profile as soon as possible, you can get your name out there and show up in searches.
Just like a product with no marketing won’t sell because no one will know it exists, you too have to market your skills so that potential employers can find you.
This will do two things for you:
- Give you a chance to talk to recruiters and maybe some employers to get a feel of where you are, and what they are looking for.
- It will force you to keep your focus on what’s important and avoid shiny object syndrome (the tendency to chase something new).
Start applying for jobs
Once you have a few projects built, you are ready to start looking for jobs.
Most employers will want to see a lot more experience, but there are also companies out there looking to hire people that are just getting started and invest in training them.
So even though chances for you to get a job at this point are still slim, it’s not impossible to get lucky.
You might even talk to a few companies and circle back when you have a few more projects under your belt.
But most importantly, you’ll get experience applying for jobs (yes, it’s a thing). You’ll learn how to write an attractive email, a cover letter, how to put yourself in your employer’s shoes, etc.
It doesn’t end with just creating a few projects. It’s just getting started.
You need to invest all you have in learning how to code as quickly as possible until you get that first job. Because then, you’ll get to do less marketing and more coding.
To help you with that, I’ve put up a few resources that you can use right now, and I will continue to add more.
Where to find Ruby on Rails jobs
There are many job sites out there, but a few that stand out when it comes to the quality of the listing.
I’m going to list a few that I know to be of high quality, but this is not an exhaustive list. It’s just to get you started.
It’s a good idea to subscribe to this newsletter because not only will you often see job listings, but you’ll also stay in the loop with what’s happening in the Ruby world.
StackOverflow, just like RubyWeekly, has a dual purpose. You’ll often use it to find solutions to various challenges you’re going to face when writing code, but you’re also going to see a lot of relevant job listings here.
This site features job listings in the startup world. But to be honest, I’ve seen both startups and non-startups post jobs here.
It’s also an excellent place to do some research and see what various companies are looking for in terms of skill set and their budget for hiring developers.
This year, the market for remote jobs has exploded all over the world, so this site is more active than ever.
You can search for the type of contract, location, programming language, etc., and get instant notifications when new jobs show up.
Just like WeWorkRemotely, this one focuses mainly on remote jobs and can filter them by different things like experience, category, language, etc.