Frontend as part of the engineering culture
My opinion on how we can do better as engineers and leaders in treating the discipline of frontend development
Context:
I’ve been a software engineer for close to a decade now. I’ve worked at small startups and big organizations. I tend to be observant and try to soak in knowledge like a sponge. These are some thoughts around the state of the industry from my perspective. Mostly related to organizations / teams that have front facing products.
The Problem
It’s no surprise that the face of the internet has undergone lots of changes. Apps feel more intuitive, design is a feature, speed is important. Users are treated as first class citizens. However, there are still lots of companies out there that, in my opinion, aren’t treating frontend engineering as a first class citizen which spawns issues that otherwise could be overcome.
Leadership misalignment
I’ve seen 2 distinct type of trends between organizational leadership: Product and Engineering. Both have their strengths and both undeniably have their weaknesses.
The problem is usually neither are frontend-inclined. What I mean by that is the understanding of everything that goes into being a frontend engineer. From design systems to performance optimizations and accessibility, a lot of the time these things seem like an afterthought to get to a goal of delighting a user.
Interviewing
I’ve interviewed and given interviews over 100 times and I can see a very clear correlation between how much thought is put into the frontend interview process vs the organizational engineering culture.
I am not going to highlight the bad ones, but I will praise the good ones. Both Shopify and Coinbase care about making sure that the process is highly contextual to the job at hand.
There were pair programming interviews with other frontend developers on things that you’d actually be doing if you were to be hired there. Screenshots / Figma files of things the candidate had to go through, as they would usually. Then talk about how you could improve these things to gauge deeper understanding of the subject matter.
STOP DOING LEETCODE STYLE INTERVIEWS WHEN HIRING FOR FRONTEND
Sorry, had to be said. You wouldn’t do a UI component build out interview for a backend engineer, so doing an algorithmic-type problem for your frontend is not going to adequately represent the candidates ability of doing their job. You wouldn’t cut cheese with a bread knife, there is always a right solution to the problem if you care about solving the right problem. Just because you can do it in TypeScript, doesn’t make it a frontend interview.
Also, if I can get an answer to a question with AI within 5 seconds, me memorizing how to traverse linked lists isn’t going to help the end user feel delighted when they are using my app.
Yes, it’s hard. Yes, it will require more time and thought, but, as organizations we own that to our candidates.
If you’re worried about hiring someone that isn’t “smart” for the role, that means you don’t have someone internally that is thought of as a subject matter expert that would be able to properly asses a candidate for the appropriate skillset. Hire an external agency to help with frontend recruiting that specializes in it and I promise you, there won’t be a leet-code style question there.
Yes, there are probably going to be more applicants to sift through because someone who just finished a 3-week bootcamp is applying for your Sr Frontend Engineer role.
That’s because for some reason, frontend is still thought of as the “easy” part of software development. Which brings me to the next point.
Internal culture
There tends to be an agreement that Frontend is less than Backend. It’s not everywhere that is the case, it’s also not as apparent. It’s very subtle, but it is a vibe. Let’s try and do better.
It starts with distribution from the top down. Look at your organization charts and see if you notice a pattern. More Principal / Staff level engineers that are Backend focused.
Salary can also add fuel to the fire. If Backend is thought of as “we’re solving harder problems, hence we get paid more”, you got yourself a problem. If there isn’t enough frontend advocacy at the top levels, the discipline will never be treated equally.
The “full-stack” engineer
Here’s what a lot of companies think is their magic bullet: FullStack! They will work across both and be excellent at both so why hire 2 engineers when you can have one.
Here’s what full stack looks like in reality:
At Shopify, a concept of being T-shaped was part of the culture. Notice it’s not X-shaped. I understand that there are times when you have to prioritize one over the other, but when you do it for long enough, you forget about the importance of the other.
It goes both ways, there are shiny tools that don’t work well and there are amazingly crafted backends that the user doesn’t understand how to use to it’s best abilities. The goal is to have equal care for both. The X should be Frontend X Backend as a team, not as a person.
The solution
I don’t have all the answers, but I think there are small incremental steps that we all as an industry should take to get to a better future. Here’s a list of things I think could help us become more empathetic and understanding of each-other:
Have the interview process be contextual to the job you expect your candidates to do if they are hired. Test on problem solving, not algorithm memory
Make sure your leadership is balanced and there’s equal focus on Backend and Frontend
Make sure teams are structured to solve the right problems at the right time. Not all the time you will need equal focus, but either one should not be an afterthought. Plan accordingly.
As Frontend Engineers, make sure you communicate the importance of the work that you do and the challenges that you face.
Have a collection of resources available for people that want to learn more. There is a reason why SyntaxFM has close to 800 episodes all focused on Frontend Development. Great resource to learn, understand and appreciate the discipline.
There is no magic bullet, you can’t copy and paste your process and expect to compete for top talent and get what you want. Create the right tool for the right problem and always try to be empathetic.
Thank you for reading. If you have any questions / thoughts / comments always happy to chat.