TL;DR:
Tech job hunting is tough, and junior roles are scarce. Discussion: What qualities (besides experience) do employers value most right now?
Dear fellow campers!
We all know the tech job market is incredibly tough right now. Entry- and junior-level positions seem almost non-existent these days. Iāve started to think that breaking into tech now requires moving beyond the ājuniorā level from the get-go. But isnāt that an impossible situation? You canāt gain professional experience without working professionally! And, honestly, itās always hardest to figure out what you donāt know.
Iāve been volunteering for some local nonprofit organizations, where thereās usually a senior developer or two overseeing the work. Iāve learned a ton from them, no doubt. But since theyāre busy and the teams are loosely structured, I worry this experience might not reflect a truly professional setting.
Thatās why Iām looking to leverage the resources of amazing programmer communities like freeCodeCamp to broaden my exposure to the real world. I hope to keep the conversation going, and here is my first question:
What qualities (beyond just years of experience) are employers currently looking for?
For me junior vs senior developer is same as junior bodybuilder vs senior, later would know which exercise will yield best results.
Senior developers might have better coding muscles developed but they also do mistakes regularly so donāt bother about years of coding experience.
Passion, commitment and love of project in hand is most important IMO
Start applying in startups, as founders has got limited amount to keep company alive for as long as possible, they will prefer to hire juniors who can get tasks done.
Getting features into customersā hand asap is most important than following best coding practices, optimization etc
My favourite VC is Y Combinator, do checkout jobs there and get connected with founders on linkedin
I suggest to start contributing to a open source project by submitting PR for new feature / bug fix etc
You can get code reviewed there by senior developers and also look at existing PR code to know how someone else has written code to solve a particular problem
Let me know if youāve further queries, all the very best
Thatās a very value point, @vikramvi . Thanks for bring it up. A recent CNBC interview mentioned that the odds of getting hired via job board applications is about 3%. My personal experience is even much worse
Yes, I agreeāsome open-source maintainers are very helpful and generous. I once made a PR to bvaughn/react-error-boundary. The PR didnāt get merged at the end due to concerns about some very subtle and deep React mechanism, but I learned a ton from the interaction with the maintainer. He went out of his way to review my code and offer advice.
Meanwhile, while one can learn about high-quality code from open-source projects, it seems to me (based on my very limited experience) that itās not very likely to pick up professional software development workflowsāsuch as development lifecycles, tooling, project planning and organization, CI/CD, or technologies like Docker, Kubernetes, cloud computing/infrastructure, and many others Iām not even aware of.
Please ignore such reports, just get in touch with founders from linkedin and ask them for email id to send across your GH profile and resume.
As majority go through recruiters, thus getting chance of their resume going to hiring manager is very difficult. With above approach, youāre overriding recruiter filter all together
For me most important things for any developer with any years of experiences is, if s/he is religiously following BDD, TDD or not.
If they are not following then they are bound to write bad quality code which will be hard to refactor, maintain for themselves or next employees as well
I love keywords! Someday I am going to collect all these keywords and put together a checklist.
What are the best ways to start practicing BDD or TDD? Reading books/articles, or picking up from the fellow coworkers?
Religiously following strick paradigms is a red flag IMHO. Code should be maintainable and have tests, but there are a lot of ways to make that happen and what approach is best depends upon the circumstances.
Thatās a very timely recommendation!
Recently I felt like the language: filter alone has some glitch and it kind of doesnāt show the most stared repos. Now I realize that if I pair it with the stars: filter, those missing repos will be back! Very interesting
Iām into IT since 2002 and till today I see āYou burn, Iāll scrape.ā ( You Burn, I'll Scrape - The W. Edwards Deming Institute ) all over the world projects. I mainly work with US based companies from India & have worked in Germany for 5 years as well. Grass is same all over the world
More time we spend in planning ( with BDD ) just like other industries do, it will yield better quality code with much lesser bugs and re-work needed.
Very cool! What about tooling? Are linter, browser dev tool, etc. essential for professional programmer? What other tools do you like to reinforce good code writing?
I would use a linter, yes. But I donāt think there are uniformly ābestā tools that everyone must use except in some specific use cases. I would experiment and find what works best for you personally.
Software is the only industry where things are not permanent, you can rewrite code and just throw away old one.
I heard some years back that, a particular team of Netflix engineers re-write API from scratch in language they like provided new API performs better than old one.
I was in MS Berlin office and 1 whole day ( yes literally ) heard 2 sr engineers argue about function code sigh
conclusion: everyone likes his/her own way of making omelette, itās important to note can you sell that to others and can you make it in cost effective way ?
I suggest watch as many BDD, TDD videos on YT possible and implement them in your PR for open source projects, you will keep improving every day