Angela J Holden

Five Tips for Junior Developers

I've been a frontend developer for 12 years, many of those as a hiring manager, and these are all things that helped me to get a job.

Note: This post contains affiliate links. If you use these links to sign up, I may earn a commission at no extra cost to you. I only recommend tools I personally use and love.

One: Make a personal website

The feedback I got more than anything else was that I had an eye for design. Prospective clients said my aesthetic matched their aesthetic and and I was hired for several projects because the client liked my style which was clearly demonstrated in my website.

I don't think an eye for design is the same as being a designer, which I have never considered myself to be. But it did convey a sense to prospective clients and employers I had a design aesthetic that matched what they were trying to achieve, which gave me credibility. And frankly, it's not something I see very often from new developers.

Frontend code is the thing that everyone sees regardless of the tech stack it's built on. As users of the internet, frontend developers tend to notice the things that work, or don't work, and should be inspired to write frontend code on their own and to develop their own aesthetic.

Trust me, once you do get a job and experience the hellscape of code reviews, you'll need something of your own where no one call tell you what to do.

Don't overthink creating a portfolio. Find a photoshop mockup, or find something online that you think looks interesting, Build it and deploy it. If you want to practice following a design brief you could try a website like Frontend Mentors which has a lot of free projects. The point is, websites are in a constant state of improvements and maintenance. Don't let analysis paralysis stop you from creating something that represents your skills and style. Embrace that you're not sure what you're doing, and allow the creative process to guide you.

This is a skill you'll lean heavily on in your career, because it is exceedingly rare that you will be handed clear instructions on every project you work on.

A personal website is your chance to make anything you want! It's your chance to experiment with your own sense of design and practice building things no one else will ask you to build. And It will give prospective employers a good idea of what you're capable of.

The interior of a coffee shop

Two: Create a portfolio of projects

This one piggy backs off of building your own website. It's never been easier to show off your skills as a frontend developer. It's totally fine if you don't freelance or do client work. But you should still be practicing building user interfaces or UI elements and putting those in your portfolio of projects.

When you work on small projects that include a Github repository and then deploy it to a server or even something like Heroku, that will stand out to prospective employers. When you have a Github with a readme to explain the project, and a URL to see the project deployed, those things are part of your portfolio, in addition to being great practice for keeping your skills fresh.

After more than a decade, I still practice building things I think look interesting. All of those things have a Github repository and are deployed to a demo site with a URL. I consider everything I work on to be open source and a part of my portfolio.

Three: Don't try to learn every framework

Regardless of what kind of developer you are, make sure you have a deep understanding of core foundational concepts. As a frontend developer, it doesn't matter if you know PostCSS or Tailwind if you can't tell the difference between display: block, display: inline-block and display: inline.

						
							/* MDN Web Docs display propery
							https://developer.mozilla.org/en-US/docs/Web/CSS/display
							*/

							/* The element generates a block box, generating line breaks
							both before and after the element when in the normal flow.
							*/
							div {display: block;}

							/* The element generates a block box that will be flowed
							with surrounding content as if it were a single inline box
							(behaving much like a replaced element would).
							*/
							div {display: inline-block;}

							/* The element generates one or more inline boxes that do not
							generate line breaks before or after themselves. In normal flow,
							the next element will be on the same line if there is space.
							*/
							div {display: inline;}
						
					

Know the the difference between a div and a span, and why you use one over the other.

You never know what you'll be asked in a job interview. In my first interview I was asked to define what the letters CSS stand for, and explain z-index. I've been asked the difference between forEach and map in JavaScript. I've been asked if I can use the terminal or if I rely on a GUI for git.

I interviewed for a React position once when I was very clear that I had never used React. They wanted to talk to me because I had a lot of experience, but I was still very new to JavaScript at that time. I couldn't answer a lot of the vanilla JavaScript questions they asked (which was really embarrassing). But I learned a lot from that interview about the core JavaScript skills I should be working on.

In my last position I was given a coding challenge that included writing an SQL query. I was in that position for seven years and never once had to write an SQL query to do my job. They were checking to see what kind of a problem solver I was. My point here is, you don't know what they're going to ask you, but each of these examples stands out to me as being foundational. They're not questions about a specific framework, they're questions to see if you have a basic understanding and can solve problems.

Four: Adopt an agile mindset

Having an agile mindset is not the same as embracing an Agile or Scrum methodology.

Side note, I watched a podcast with Emmanuel Maggiori, a computer scientist and author, and he talked about his experience working on agile teams for big tech companies. Hearing him describe Agile methodologies confirmed what I've suspected for a while; that Agile has become rigid and inflexible in many organizations.

The point of this tip is this, it doesn't matter if you work on a team that is still using a waterfall methodology, or a team like mine that's more like Scrumban. I want you to be flexible, and be willing to jump from task to task, and project to project. Get into the habit of being willing to learn new things quickly. Learn to be amazing at problem solving whether that's being great at Googling, or writing really good AI prompts.

It's worth noting; AI is amazing, but there are organizations who don't allow their developers to use things like ChatGPT because they don't want proprietary data or code being shared with those apps. So even though these solutions exist, Googling, YouTube and reading documentation may continue to be your best options for problem solving.

I firmly believe the thing that will elevate you from Junior Developer is your ability to remain flexible and be a great problem solver.

Five: Embrace DevOps

We all share responsibility for DevOps. If you write any code that is deployed, you influence DevOps. And if you push to Github and deploy to a server, you're way ahead of a lot of junior frontend developers that I've met. Bonus points if you have a domain name and have configured the DNS settings.

This video from Tech and Beyond with Moss is a great lesson on the history of DevOps. He goes into a lot of detail about why DevOps isn't just the role or responsibility of one type of engineer, but rather why it's the responsibility of all developers. He also includes a lot of historical context on how the role of DevOps in software engineering emerged.

Here's how this relates to you: How your code is deployed and maintained is as important as the code you write. Especially when you're part of a team. Version control, a process for deployment, and an understanding of the underlying infrastructure of your server will put you miles ahead of a lot of junior developers.

The way I started to learn about DevOps is when I started to use a cloud server on DigitalOcean. I was introduced to cloud servers by a client who didn't want their site on shared hosting-which is all I had ever used, and it opened up a whole new world for me.

Set up a LAMP stack which stands for Linux, Apache, MySQL and PHP, one of the most common types of servers, and a great choice for hosting frontend projects that are static HTML, CSS and JavaScript web pages. Follow a tutorial on how to set up an Ubuntu server, learn about creating a virtual host, point your domain to a server and deploy your files. I promise you this skill will take you places in your career.

Junior developers that understand version control, can deploy their code, and who have a basic understanding of the difference between a local environment, a staging environment and a production environment will have a clear advantage. And those are all things you can do now with your personal projects. Embrace DevOps so you can influence how your code is deployed and maintained.

Conclusion

Think of these things as an organic process for how you work. Start with building a personal website with a header, body and a footer. As you continue to practice your frontend skills, add the projects you're working on to your website as a portfolio. If you have a framework you love using, that's great! But it's okay to practice being really good at HTML, CSS and JavaScript. Those three things are literally the backbone of the internet. Have a flexible attitude and try building different things, from entire web pages and layouts to specific types of UI elements. Then deploy it in a way that you can easily show it off in a portfolio, and give prospective employers a chance to see your work in the browser.

If you need inspiration, it's all around you. Pick a site you like and build the homepage layout. Pick another site and use it as inspiration for a header. Observe how it behaves on desktop vs mobile, and try to build it. I mean, this is what you're trying to convince a prospective employer that you can do for them, right? So go do it!

Photo Credit:

Photo by Clifford on Unsplash