0 %
Olsi Odobashi
Software Developer
  • Location
    Revere, MA
React / React Native
Ionic / Electron
Cloud Architecture
  • React, React Native
  • Angular Material, Bootstrap
  • GCP, AWS, Azure
  • Sass, Less
  • Github, git
  • Node, Express, Firebase
  • Mentoring

How do I know I am ready to apply for Frontend Developer jobs?

July 26, 2023
Photo by Eric Prouzet on Unsplash

Knowing when you’re ready to apply for frontend developer jobs can be a tricky question to answer. It’s very discouraging to have spent months or even a year+ studying and practicing your skills (and maybe even paying for bootcamps and courses) just to send a hundred resumes and get zero responses. I am writing this article hoping it will help some people who are far enough in their journey but are stuck not sure whether they can handle the job once hired.

Proficiency in frontend technologies

The most important factor in determining if you’re ready for a frontend developer job is your proficiency in the main frontend technologies: HTML, CSS and most importantly JavaScript. You must be able to talk about what semantic HTML is, understand why accessibility is important in web development, how to implement responsive design, be able to talk about loops and promises and REST APIs, know a bunch of array methods, and so on.

Knowing these is usually considered “the bare minimum”, you need at least these technical skills to be able to demonstrate your knowledge to potential recruiters (in the form of projects) but also be productive in a team of developers once you do get hired.

Have a decent portfolio

Understanding Javascript is one thing, but showing it is another. A very important part of the learning process is to get your hands on and build as many project as your time allows. You might start with very small ones that don’t show much, but as you progress and improve your skills you will eventually build projects big enough that you can showcase on your Github page. And they don’t have to be some complex programs that will solve world hunger or climate change; anything from simply showcasing your coding style to a nice CSS animation that you came up with, as long as it shows your talents.

Once you do build a portfolio, you need to find a place to host them. It can be on your personal website, on Github or even websites like Codepen. Any of these can act as a portfolio site; in fact nowadays when you apply for a job on the company’s website they will usually give you enough space or fields to list a few portfolio websites, so make sure you make use of those fields.

As for what counts as a “decent” amount, that’s a little tough to answer. “As many as you can” isn’t really what you want to hear. If I were a recruiter (which is usually a non-technical person) I would say enough to click around your portfolio for a minute or two. I would be satisfied to at least see that the “portfolio” field is not empty. Once your application moves on to a developer however, I would like to see some variation. For example, if you’ve completed say a dozen of easy LeetCode problems, that’d be great but I’d also like to see your UI skills. What’s your reasoning when creating classes and IDs in HTML? Do you know about the “C” in CSS? The opposite is true: you’ve built some lovely UIs but do you know how to use let vs const?

The point is, try showing a mix of skills in your portfolio. Just enough to cover the most important bits mentioned in the previous point and you’ll be way ahead of most people.

Know how to read other people’s code

When you get hired for a developer position, it is almost guaranteed that you’ll be part of a project that’s already been in production for a while. That means among other things, plenty of spaghetti code that has been touched by every developer and their grandma. You’re generally expected to be productive immediately, but really there’s an understanding (and with good reason) that you’ll need some time to get familiar with the code, that’s usually a week or so. In time you will work on enough features that you’ll understand what most of the app does.

Back to the spaghetti code though. The good thing about it is that usually you will have a tech lead or coworkers who will help you with any questions you may have about the code, they’ll give you a demo, etc. to get you up to speed with the codebase. Use the first week or two to dig through the main parts of the app and write down your questions (personally I don’t mind junior devs asking me questions as they come up, but maybe there are people that do; it may be a good idea to ask them and go through all your questions at one go instead). However, there will be many cases where you’ll be stuck on your own, so it’s important that you have a basic understanding of what’s going on and how to read other people’s code. You can easily practice by going through small open source projects on Github, or perhaps just downloading a landing page template, a React/Angular boilerplate app, etc. These are usually a great place to start.

Familiarity with version control

Knowing how to use version control tools such as Git is essential for any developer.

Version control allows developers to work simultaneously on the same codebase and keep track of every change made to the code. It also provides a way to resolve conflicts when multiple people change the same code at the same time.

In addition to helping manage code, version control systems also provide a history of changes, so you can revert to an earlier version in case something or someone breaks the app by committing faulty code.

Version control is a critical tool for any software development project, as it enables teams to collaborate effectively, maintain a record of changes, and ensure that everyone is working with the latest version of the code. It also helps to keep track of bugs and issues, and facilitates code review, as it allows developers to compare different versions of code and see how it has evolved over time.

Strong communication skills

As far as soft skills go, communication may be at the top of the list. This is especially true in a world that’s shifting from office work to remote. This change has put to test a lot of companies and individuals alike in terms of productivity. Your coworkers can’t just walk to your desk to ask questions, you can’t just improvise a quick meeting in 5 minutes anymore, etc. This has mostly been a positive thing for developers especially because less interactions and random last minute meetings means they can have more time to focus on actual work. But on the other hand, it can also get harder for a product manager to keep track on the sprint status. That’s why communicating clearly and often is such an important part of the job. There are even cases where even overcommunicating is acceptable, as opposed to leaving out any details.

In most projects, you will work as part of a team and need to communicate with other team members, including designers, product managers, and stakeholders. Effective communication helps ensure everyone is on the same page, and enables the team to work together effectively to deliver a high-quality product.

Familiarity with Agile methodologies

Agile is a software development methodology that makes delivering software quickly and in a flexible way so that it can respond and adapt to user feedback.

The most popular agile methodology that makes continuous delivery possible is Scrum. In an agile team, work is usually organized into short sprints which can be anywhere from 2 to 4 weeks, although some companies (usually huge corporations) can exceed that due to different factors like large number of teams involved in releases, humongous and old codebase, outdated infrastructure, etc. Banks and the healthcare industry have a bad reputation of using older technologies as sometimes they can’t afford to spend millions or billions of dollars “just to update their tech stack”, but they’re catching up.

Scrum also involves regular meetings such as

  • daily standups where every team member shares their updates on what they’re working
  • sprint planning where the product manager and the team go through all the work backlog and plan what everyone will work on the next sprint
  • retrospectives are an all-hands team meeting where everyone anonymously writes their feedback for the last few sprints on a large board and when the time is up, the team goes through each item

Familiarity with agile development methodologies is an advantage but not usually a requirement as it’s one of the easier processes to understand.

If you feel you can check those boxes mentioned above, you may be ready to start applying for frontend developer jobs. However, keep in mind that the job market is dynamic and the requirements can vary depending on the company, location and level of the role. Your learning doesn’t stop here, it’s always a good idea to keep improving your skills to be ready for the next opportunity.

Posted in Uncategorized
Write a comment