Hey, i completed freecodecamp beta in May of this year, last month i finally got a job as a fullstack developer.
I’m a fairly private person so i won’t have any deeply personal story to tell, but I’ll try to talk about the portion that might be relevant for someone else looking to start their career.
After finishing FCC beta i decided to make a portfolio website (you can view the old version here) and continue my education with open source society, which i was already doing but paused in February when i found out about FCC beta.
When i was done with my portfolio website i started trying to find work, but i had a few requirements:
- It had to be remote
- It had to be either a full stack or back-end position
- I had to like the people i’m working with.
- There had to be a clear distinction between professional and private life, so no social media available for them to see, no personal phone numbers (unless naturally shared when you get close to someone in the work environment, that’s fine but shouldn’t be a professional requirement)
This made things a lot more difficult, as fullstack developers are expected to have more experience than i had at the time and any type of remote job usually requires you to have a few years of professional experience or open source contributions, specially working with teams. Not having public profiles is also a red flag since people can’t infer a lot about your personality or google you. I knew these things but i also knew they were necessary for me to work without burning out. Most companies will not accept these requirements and i wouldn’t be a good fit for most companies even if i did have the technical expertise they expect, this narrowing down on offers was conscious.
I researched about other people in a similar position to get an idea of what to expect, made a short curriculum that was to the point with very little fluff (which is important) and started sending applications. From what i could tell, i was being called for more interviews than normal, i had roughly two interviews every week but the result was always the same: “Great portfolio, but we need someone with more experience”, which clearly meant “you lack something we need”.
After a month or two of being consistently told the same thing by different companies, i tried to shift the focus from my portfolio towards my discipline/personal characteristics. Instead of talking about what i built (which can be seen on my github anyway) i talked about how i managed my tasks, enjoyed sharing knowledge, consistency with personal projects and deadlines and all relevant soft skills i had and could offer in a professional environment. Interviewers will often ask about projects, so there’s no need to give more emphasis to it.
A while after changing this perspective on how to approach companies i got my current job, the company was looking for someone with a few years of experience in ruby/rails but they decided to hire me (with zero ruby/rails experience, and zero professional experience) because they believed i would be quick to pick up the pace. The person who hired me mentioned that the reason they wanted me over someone they knew and/or had more experience was basically because i paid attention to their job announcement and had proof that i was a self learner.
These are the characteristics that they mentioned as what made me a good fit for the job, even though it’d take a while for me to learn the technologies they used, since (luckily) this was a long term job, it made more sense for them to hire someone they could rely on to keep themselves educated/would be honest in their lack of knowledge.
So this was my experience, hopefully this will help someone else in similar position. I also want to talk about some other aspects of job hunting but they didn’t fit into my story, so i’ll list these ideas randomly:
2019 update: Unrelated to the information below, i’d like to update this post. After working on Rails for about a year (2017~2018) i left that company for another job. Now i’m working with Drupal and JS, this time it’s a bigger team (i was basically working by myself on Rails), for bigger clients and i’m working with adorable people, it’s still remote and my requirements haven’t changed from 2017, i’m still working as fullstack (this time react + drupal + node). The hiring process was pretty similar, i didn’t know anything about Drupal and very little about PHP but they liked the soft skills i had to offer and ability to learn by myself and share that knowledge. So i guess there’s something there.
Often times people talk about “fake it till you make it” and i really don’t think you can rely on that, both personally and professionally. People know how full of [REDACTED] the “I’m passionate about tech” talk can be and it’s extremely important for a coworker to trust you. You don’t have to love tech more than your personal life to find work, and if a company expects you to be “passionate enough to work overtime and sacrifice who you are to get your boss 15% more income by the end of the month”, you’re probably better off not working there, so lying serves no purpose whatsoever.
Also when working with teams, or even when working by yourself but building a personal brand, honesty far outweighs claims of grandeur, it’s comforting to hear a coworker say “hey i don’t know how to do that, can you help me?” because you know that person won’t lie to you when you need them to deliver a task.
It doesn’t matter how much you love programming, it’s still a job, not only that but it’s probably the place you’ll spent most of your life at for the next few years, if you’re hired on the grounds of “you love tech so much hiring you is almost like doing you a favor” then you likely won’t be very respected in that environment. Always remember that a company isn’t hiring you out of charity, when hiring they are absolutely sure you will make a ton of money for them, and they will give back to you the minimum possible amount they’re allowed to without losing you for another company. So don’t feel the need to pretend to be someone else, they’re already getting far more than their fair share after hiring you.
“Fake it till you make it” mentality can get you through the door, but you will always end up feeling like you got lucky to get that job. In the long run this can be extremely difficult to manage, so be careful when choosing that approach.
This is obviously just my perspective, if i had to choose between starving and pretending to be james bond for a company to hire me, well, you’d be able to call me daniel craig in a week. But recognizing that sometimes we have to take these jobs out of necessessity is important, otherwise you might actually start thinking you’re supposed to be james bond and feeling horrible for not living up to those expectations.
Pay attention. Not just to job postings, but even after you get the job, pay attention. Most of the time you already know what you have to improve, from social relationships to technical knowledge. Conscious introspection is probably the best teacher.
If the job requires 1~3 years of experience, they just need someone who knows what they’re doing. Just try to prove you know what you’re doing and you can apply safely. 5 years requirement usually means they really expect someone with experience and you’ll probably not be accepted. Basically apply for all the jobs you think you could do, and leave it for them to decide, don’t see the time requirement as a must, but always mention how much experience you have.
Applying for jobs is a marathon and you will get tired. Applying for every position imaginable is extremely tiresome, keep in mind my interviews were all over the internet and even then i was exhausted of doing sample projects and being interviewed. Try to apply only to jobs you really want, define what you expect from a company (remote? dental? if not remote, are they close to your home? can you see how the work environment is, what about coworkers?) and only apply to those who fit your criteria. It’s extremely demotivating to fail an interview twice a week and it can get to you, which decreases your chances in future interviews.
Listing your projects without the freecodecamp tests makes a lot more sense for a portfolio. Interviewers often times won’t know what the test is, it’s just confusing and unecessary. When using these projects as a portfolio, treat them as such, polish them whenever you feel necessary, remove any freecodecamp requirements or references, make them yours and then present it to others.
Explain what freecodecamp is, don’t expect people to know about it, a lot of them do, but a lot of them don’t, specially outside the US.