##career #junior 🇬🇧
How to find your first job as Junior Ruby Developer ?
Jeanro Krupa
Jeanro Krupa
11 min read
You have just finished your studies, a bootcamp or an online tutorial to learn how to code. Bravo ! 🎉🎈🎊🍾! It's a great first step, plus you are coding in Ruby 💎 and you are therefore part of this fantastic community. Now you want to get even more serious and land your first job as a Junior Ruby developer 💪.
Folks around you say things like, “ah, you won’t have any trouble finding a job in IT or coding, there is a ton of work….” You have read everywhere that there is an enormous tension in the dev professions. And now you realize that unfortunately the reality is very different from that…
Folks around you say things like, “ah, you won’t have any trouble finding a job in IT or coding, there is a ton of work….” You have read everywhere that there is an enormous tension in the dev professions. And now you realize that unfortunately the reality is very different from that…
The observation: few junior dev offers 🥲
According to recruiters, generally junior = already a professional experience with less than 3 years of experience. Moreover in the filters on RoRJobs (like most job boards) junior is between 0 and 2-3 experience. I'm not a big fan of this notion of experience but unfortunately that's how it works...
The great “tension” on the developer recruitment market (all frameworks combined) is for profiles with more than 3 years of XP. Unfortunately there are more Junior devs on the market than available job offers.
On RubyOnRailsJobs only 12% of jobs are ok to hire without experience. Of these 12%, the vast majority are internships or work-study offers. On the other side of the platform (List of Ruby On Rails devs ) more than half of developers have no professional experience as a developer.
So if we sum up a very low job offer for many requests, it is indeed a tight market… But all is not bad, you have to be patient and strategic. I recently had the pride of having been able to help 3 junior devs (without experience) find their first CDI.
So here are my few tips, hoping they can help you, I have classified them into 3 categories. These categories should be your guidelines in everything you do to get to your CDI:
- Build your experience
- keep learning
- Stay motivated and focused
Build your experience 🧙♀️
Rare are the companies recruiting permanent contract after school or a bootcamp 🥲. You are missing a “meaningful first professional experience” 😡. But if no one gives you a chance how are you going to get this first experience?
Here are some suggestions (that you can combine) to hack this first XP.🧙♀️
Here are some suggestions (that you can combine) to hack this first XP.🧙♀️
Tips n°1: Freelancing 🤟
If you have a teacher, a friend, in short a more senior developer than you don't hesitate to ask if you can help him in his missions. Many freelancers do not have the opportunity to mentor juniors and they are often happy to do so.
My very first dev experience was thanks to my teacher and friend Alex ❤️. You wont get paid 300€ / day but you will learn a lot and work on real projects.
Adapt the missions, if you want to be a backend dev, making static websites for your friends is not significant enough as an experience.
Tips n°2: Personal project 🚀
It's a great exercise to progress and see concepts that other devs won't see. Some recruiters will not even make you do technical tests but just discuss the technical choices you have made on your project.
Some tips and pitfalls to avoid (in which I fell 😂)
Some tips and pitfalls to avoid (in which I fell 😂)
- I'm talking about launching a project not a startup. Your goal should be to create a very scoped, simple tool.
- Ask devs more senior than you to review your PR so that you learn something. (I do this for RoRJobs where Clem reviews my PRs). You don't have a senior dev around you? take a look FirstRubyFriend
- Do you lack inspiration? Replicates an existing small app that you can see on ProductHunt or IndieHacker
- Try to do a project that will still work even when you find a permanent contract. We never know 💰
- Force yourself to do TDD, small PR, clean migrations , a staging environment , continuous deployment... as if you were already on a permanent contract. I had gotten so used to pushing badly on master that for my 1st job I had to have a good catch-up session on git 😂
- Get out of your comfort zone. Don't hesitate to use other technologies Electron, Chrome Extension, Connected Object...
- If you need a bit marketing to get your firsts user try to focus on technical SEO (it's a rare and good skill to have) and automation
Tip 3: Open source
You can look in repos where there are “good first issues” or ask around if you can contribute to semi open projects like RubyOnRailsJobs . It's often intimidating but it can be worth it and you'll surely meet some cool people.
Tips n°4: Lean on your past experiences 👜
I see a lot of inexperienced devs getting their first job thanks to their “former” career. You were an accountant or in finance why not apply at Mooncard , Pennylane , Acasi ?
You have done Marketing, Growth or SEO, looking for small teams with very back profiles, they will be happy to integrate someone to discuss with the marketing department.
If you are thinking well I was a cook, plumber, priest ... don't worry. Search a little and you will always find a company related to your previous experience.
Keep learning 📚
Tips n°5: Don't get overwhelmed by learning too many frameworks or programming languages
When we approach the subject with Le Wagon students in particular, we often hear: “Ruby doesn't recruit, so I'm going to learn React, Vue.js, there are plenty of offers…”.
Stop misconceptions ✋. There are just as many positions on Ruby on Rails as on other Fullstack frameworks like Symfony, Laravel, Django…
Regarding front-end frameworks, there are actually more offers BUT:
Regarding front-end frameworks, there are actually more offers BUT:
- the Junior/Mid/senior distribution is the same
- there are even more Junior developers on these technologies and therefore more competition
- These are 100% frontend frameworks so if your onto backend stuff, it won't help you and to be fullstack it's even more difficult.
Stay focus… If you know Rails and you want to be a good Backend or Fullstack dev, no need to learn Django 🐍, Symfony, Laravel…
If you want to be a Front dev, I would recommend you learn React OR Vue.js NOT both. They are close enough to learn only one. If you want to learn a new programming language? Cool ! But remember that these are only tools to make products. If you know Ruby, other object-oriented languages will serve you very little in your learning. Why not learn a low level language like C or Go?
Disclaimer: I am super bias regarding my ❤️ for Ruby 😂
If you want to be a Front dev, I would recommend you learn React OR Vue.js NOT both. They are close enough to learn only one. If you want to learn a new programming language? Cool ! But remember that these are only tools to make products. If you know Ruby, other object-oriented languages will serve you very little in your learning. Why not learn a low level language like C or Go?
Disclaimer: I am super bias regarding my ❤️ for Ruby 😂
Tips n°6: Learning is not watching tutorials 📺
I have nothing against watching tutorials. I'm a huge fan of GoRails myself and I learned a lot from it. But watching ≠ Know-how. If you're watching a tutorial, it's because you've come across a problem or you have a feature to do. The tutorial is in this case a way to solve a problem. Otherwise it is useless and very frankly you will not remember anything.
You want to learn a new language or framework? Forget Youtube, Udemy, Codecademy. Start a project and read the f* manual.
Tips #7: Learn concepts more than snippets or gems
It's cool to know that you can do
User.fourty_two
with Rails but it's not much use for your future Job. To get your first job in Ruby I think you should know these concepts:- What is an ORM (ActiveRecord) and how does it work. resource here
- Feel confortable with OOP
- Know a test framework (Mini test or Rspec) because there is a good chance that your next box will do TDD. You don't need to be an expert but it's good to know how to test models, features (capybara + selenium) and factories. These concepts will fill 80% of your needs, the rest you will learn by doing. a cool resource here to learn Rspec
- Concepts outside the Rails' classics. Namespace, Concern, Service, Rake task, CRON, Job…
- Know what a state machine is, where and when to implement it. resource here
- Webhook VS Call API
- How to use Rails in API only
- Some notions of Cache: Memoization, Redis…
- Polymorphism vs STI
- Know the difference between a relational and non-relational DB
- What is an N+1 query and how to avoid them
- How authentication works (basically how Devise works in general).
- What is the difference between a monolithic vs micro services architecture
- Take a look at the roadmaps https://roadmap.sh/ and ask yourself if you can explain the concept to someone.
Stay motivated and focus 😄
It's sometimes difficult to stay motivated when you've had a lot of refusals or worse no answers. A few tips to stay focused and motivated.
Tips #8: Stay focused on - Reading code and writing code
It's not me who says it, but DHH 😇 We often see the advice to read the source code of Gem. Personally I found it very frustrating because it was too meta and difficult at the start of your career. And reading gems for reading gems is like watching a tutorial without applying. Not really useful.
On the other hand, cloning open source Rails app repos is much more formative because you can play with them a little more.
Tip n°9: Brace yourself for technical tests!
Ok you finally got a first interview it went well. The company is looking for 2-3 years of XP but you managed to convince the recruiter thanks to your background which fit with their industry well done ✌️.
Next step: the technical test with the CTO or Lead Dev.
Next step: the technical test with the CTO or Lead Dev.
The person is cool but not very talkative because very busy and does other things at the same time. The subject is: an elevator algo in pure OOP. It seems to be fine (in addition you had a tip from a friend and you knew a bit the subject). It starts pretty well, but then you get stuck on how to mange the elevator queue, you panic, you feel hot, you go around in circles for 10 minutes and then the recruiter tells you: "I'm sorry, but the time is up, I will let you know"... Failed. (I went through that as you can imagine 😬)
Technical tests are very different from the real job, it's something in its own right that requires preparation. Which is why I launched a technical test preparation service . Because it's awful when you know you could cruch the job but you have simply lost your means.
There are few Junior Developer opportunities, the fewer failed tests the better off.
Tips n°10: Small hacks to motivate yourself
You can also see your job search as a game. So here are some crazy strategies or not 🙃? You will eventually get an answer/reaction from the recruiter:
- Lying about your experience… Well that's not crazy if you feel super confident and just want to prove what you're capable of.
- Scrape the company where you want to apply and send the result to the CTO. I'm sure you'll get at least a reaction.
- Try to find a small breach. Usually reset password is a good place to start. You can retrieve customer email from there 🤫
- Develop a small complementary tool or a close one from the company where you want to go.
- Cause Sentry errors with your name in it 😅
- Try to sell a service / your app to a company where you want to apply (I did that)
- You have ideas share them with me at jeanro@ruby-on-rails-jobs.com
I hope this article can help you. The ideal scenario be more companies making the effort to mentor juniors, and it's gradually changing. In the meantime stay motivated, keep learning 💪