On today’s episode of Nurture.Team, the exploration we are going to have is:
Why companies should have frontend engineers and not just full stack engineers?
I have been in an age several years ago where there were dedicated DBA, Database developers, server-side developers and so on.
Lately, we hear more about “we are hiring Full-stack developer” and an engineer should be able to maneuver across any stack/ technology.
I want to learn from Diane why an organization needs frontend engineers and the value they brings to the table.
About the guest speaker
Our guest today is Diane Ko.
I wanted to know about the following:
- What is the definition of a frontend engineer?
- Why hire a frontend engineer?
- Do you think frontend engineers are a special category like a BI engineer or AI engineer? And how does it fit with full-stack engineering?
- How engineering leaders or organizations should invest in building a team of frontend engineers?
1/ FrontEnd Engineers
- So, If someone is working on other user facing things like mobile applications, they are usually not considered frontend engineers
2/ Why Frontend Engineers?
- Around a decade ago, pages were static, simple and predominately run by JQuery.
- Lastly, the web applications have become complex and handle user behaviors which earlier, may be, only server-side code was expected to handle and interpret.
- Thus, it’s incorrect to expect an evolving stack which does a lot of “heavy-lifting” to not be a dedicated stream; else you end up brittle code or poorly designed architecture with a future full of tech-debt.
3/ Do you need frontend Engineers for every organization?
- May be not! Applications which are complex or have deep frontend interaction, should definitely consider hiring and building a frontend engineering team.
- But given the fact that newer technologies get introduced in the web world every few years, it will be right investments for teams and organizations to hire engineers who are focused on frontend technologies.
4/ How does someone make a career as a frontend engineer?
- Looking at new tech as it comes out, go to conferences
- Do not skip the basics. If you lose sight of basics, then you could end up building something which is brittle or doesn’t work in some browsers or a poor architected code.
5/ How can Hiring managers build a frontend team?
- Knowing and hiring for position for frontend engineers. A company should believe and post jobs for frontend and not thinking that “let’s hire a full-stack and we will make them do frontend work”.
- Finding out what it is Front-engineers are looking for in a company and make a space for them.
- Look at companies which have official frontend roles and learn from them. (if you want to start building frontend team)
6/ Building a frontend community
- Have a community of frontend engineers in a company (depending on the size, it may exist or not)
- Have meeting open to anyone in the company where architecture, standards, new technology, patterns, tech-debt is discussed. People learn, they figure out common goals/ solutions.
Rapid fire with Diane
- What is your Spirit animal?
- What according to you is your Super Power?
- Team activity
- Social: Escape games
- Technical activity: Have a frontend meetings or doing something you are learning about each other’s favorite technical liking.
- Team activity
Sujay: Hello and welcome everyone. I’m Sujay Maheshwari, your host for Nurture.Team. This show promotes open ended exploration and learning about teams, culture, diversity leadership and how to make work fun. For this episode, my guest is Diane Ko. She is a frontend engineer at Airbnb and lives in the Bay area here in sunny California. Previously, she has worked at SurveyMonkey and Intuit.
Today’s exploration is:
Why should companies have a frontend engineer role and not just a full-stack role. Several years ago, when I started my career, we had dedicated DBAs, server-side developers and so on. Lately we hear more about jobs for full-stack engineers and this person is expected to maneuver across any stack and any technology. What I want to learn from Diane is what value a frontend engineer brings to the table and why it’s important to hire that specific role on the team.
Welcome Diane! So happy to have you on Nurture.team. Also a sincere thank you for accepting my request.
Diane: Yeah, glad to be here.
Sujay: So let me start by asking. What is the definition of a frontend engineer?
Sujay: Okay. And does frontend engineer need to know any of the backend technologies or how the backend works? I want to make sure I don’t assume that a frontend engineer necessarily is not somebody who knows only HTML and CSS. Should they know more? Maybe they are in the mobile apps or some other areas developing code, correct?
Sujay: Oh, wow. Okay. That actually is a revelation for me. Okay. Thank you. So that gives the context we have now a canvas to work with. Coming straight to the topic of this episode. Why hire a front and engineer?
Sujay: Got it! So what I gather from this is frontend engineering is a full time job. A full-stack engineer with even pretty good knowledge of frontend technologies may not be enough because A: frontend stack is evolving or has been evolving since last only so many years and there are a lot of options out there and B: right stack and the right design are super critical for the long term success of whatever that application or organization. Is that a correct understanding of what what you were saying?
So all that logic, the handling of it really requires someone thinking deeply about how to structure things in the front end space or even really being aware of the fact of there are a lot of these different technologies that exist. I think it’s possible for someone to be full-stack and care a lot about the frontend.
But having someone whose role it is to think more deeply about the frontend will help with a lot of that in the same way that someone whose role is a backend engineer might be better attuned for some of the more backend heavy work, as opposed to a full stack engineer.
Sujay: Correct. That makes sense to me however I would like to understand this. So I’m segueing into my next question – When I started my career, you know, we used to have these very dedicated roles like – She is a database developer, or he is a server-side engineers. right?
Are we saying that we want to go back to that kind of a world OR do you think frontend engineers are in a category right now which is evolving, as we established, and the way we have specialized streams like Business Insight engineer or we have Artificial Intelligence engineers – these areas are evolving and somebody needs to go deep into this stack – and that’s the reason there’s the argument for a front end-engineer. Is that the correlation we are trying to build here?
You could also imagine some applications that are very complex on the web that operate almost like native application whether that’s desktop or mobile. And for those you start getting into really adding in a lot of the behavior. And when you don’t have someone who’s really thinking about how to structure it in a way that makes sense, is clean, has good architecture, is following best practices – you can easily run into a scenario where your entire application is kind of hinging on a couple of different files that are extremely crucial and very brittle.
So I think for me, I see frontend engineering, to some degree respecting the complexity of the frontend and and how much it’s evolved. But also realizing that if you are working in a very frontend heavy application then you probably need a specialist. Think about applications like Facebook, Airbnb, Twitter, Gmail – all these are very client heavy. There is a backend to it for sure. But a lot of the interactions that user is doing triggers a lot of other things, there’s a lot of behavior that’s within one page and all of that needs to be handled in a very clean way in order for it not to be brittle.
And that’s where frontend engineers can be really valuable so that they can create better structure and good design patterns, so that’s easier to continue to develop within that framework.
Sujay: But makes total sense to me. I’m convinced that frontend engineers are required if the application or the business demands.
So now for example, let’s say I’m looking to become a front end engineer. Where do I start? Can you give me a plan on how to prepare because it’s evolving and there’s so many options out there. How do I make sense of this land now?
Diane: Yeah, it’s interesting. When I first started working in the space, the frontend world was a lot less complicated. I remember talking to one of my mentors after he had spent time working on Ruby for several years and tried to get back into frontend recently – and he said – The whole landscape has changed completely and everything I know is obsolete.
The way that I’ve been able to stay engaged in the frontend community is by going to conferences, looking at new technology as it comes out. And so that’s something that helps me stay with it.
And then you can always look at framework like VueJs or others and go deep into it. But the foundation would take you far far enough in your career.
Diane: Yeah. I see the basics as kind of your base level. I am trying to think of a server framework cause it’s been a while. But if you’re working on, let’s say, Django with Python, you would want to at least understand how Python works before you dive into Django.
Otherwise you might end up doing something that maybe doesn’t really make sense in that language or maybe isn’t taking advantage of some of the things that language provides on its own without having to build in a bunch of stuff that exist within the framework.
Actually, if you can create really clean structure and clean styling, you’ll also end up reducing the size, the page weight, of your application and that also ends up impacting performance. So all of that stuff kind of comes into play and allows people to create much better applications but it’s really it’s the foundation for all of the other knowledge that you need.
Sujay: Don’t skip your foundational element. Right? Just because there is a framework out there which you are assuming is making your life easy. It may backfire in the longer run. Okay. So moving on – What’s your message for the engineering leaders or organizations in general on investing and hiring frontend engineers, building a team of frontend engineers – what should they think about and what should they expect?
Diane: I think the biggest thing for me is knowing that a position exists for frontend engineers. I remember there was a point where prior to my current job when I was looking and I was looking in a bunch of different companies. For the companies that had only full stack roles and there were no frontend roles, I was really hesitant to actually apply there because in some companies – if company doesn’t believe that frontend engineering is important for it to be its own role, it’s very difficult to continue within your career as a frontend engineer. So there were times where I wasn’t sure whether or not I would be able to make it to more senior levels of engineering while specializing in frontend – it was something that I really felt passionate. And I had done database work, backend work – I started off as a full-stack engineer. I just got to the point where like you know the things that I really enjoy doing are all the things that exist in the frontend – and I can do the backend work (if I have to) but I don’t enjoy it and I’d rather that there’s someone who enjoys it who’s building it. Being able to work in environment where that’s ok, I think is one of the things that really attracts frontend engineers to company.
And I think what also helps is having companies that take the opportunity to find out from frontend engineers that exist, what it is they might be looking for, whether that’s like going specifically and trying to poach certain people which I don’t know – I don’t know I should really say that you should do – but I think finding out what it is that frontend engineers are looking for and trying to create a space for them to grow and learn in your company because I think once you get to the point where it feels like the only way for me to succeed is to be a full stack engineer, or the only way for me to succeed is to become a manager, all of a sudden it becomes something where it doesn’t sound like this is a place for me. So if you really want your frontend engineers to grow and thrive at your company, really thinking about what it means to become a more senior frontend engineer, and looking at companies that have them, I think is also helpful.
I think there are a good number of companies that exist already that have a frontend engineering role and have engineers that are officially titled as a frontend engineer and trying to figure out what it is that they’re doing with their frontend community. How are they engaging, what conferences do you think that they’re going to really get a sense of what are people in the space trying to do and what are they looking for?
Sujay: Right. That makes sense. I’ve been in situations where somebody has written a job description – this person had call out every single technology every single stack out there – and that this is what we want. And I was like, listen it’s impossible person to find. It’s like asking for a Superman, Batman, Captain America – across DC, Marvel – everyone – like just in one person. And when you know that we clearly have a requirement for a particular kind of problem. So I when you were speaking earlier, I could think of that situation. If you want a frontend engineer just right a job description and look for frontend engineer rather than thinking, let’s hire a full-stack engineer and will make her or him to more of the frontend work. Maybe we can push her or him sometimes into the back-end as because we can get a general kind of thing, right?
Diane: Yeah. And I think a lot of times people think, well, you know, I only have headcount for maybe one or two roles. Why don’t I just get a full-stack engineer because they will do all of it. And I think sometimes that can work if you are truly interviewing for a full-stack role which means that you were interviewing them for both their frontend skills and their backend skills. But a lot of times I see, full-stack roles not actually interviewing for frontend skills which means that you’re not really testing if someone can really work full-stack, what you are testing is if someone can work in programming in general, which doesn’t necessarily always apply to frontend skills.
So one of the things that I always kind of caution with wanting to save time and money is that you might think that you’re saving money and resources from just like a general number standpoint and basic idea of a full-stack engineer, but you might end up losing money whether you’re causing technical debt or needing to do more training for the person who needs to understand frontend. So I think it’s just something to be careful about.
There are definitely people who are full-stack engineers who are also great at the frontend. I think it’s not to say that there is not a fullstack engineer who can do amazing things on the front end. But I think you also have to be very careful about how you’re interviewing and what you’re looking for and making the trade off because there are people who will be more front end specialized and maybe haven’t touched the backend in a while. In which case, they probably won’t be able to pass that full stack interview but they might be great for your team. So I think there’s a trade off there where you need to figure out whether or not you want like jack of all trades kind of deal or if you want someone who’s going to be specialized and who can make more of the larger architectural decisions.
Sujay: This was very insightful. I really like what you said and thank you for sharing that.
Sujay: Here is what I have faced in the past and I want your thoughts on this. So, let’s say there is this application, this product and there are multiple teams – let’s call them squads and let’s say one of the squads is very frontend heavy and they take care of the web application. And then of-course there is DevOps team and other teams. like analytics team. Now in couple of these teams there is a requirement of a frontend. They are doing some frontend.
What patterns have you seen which have worked – where the frontend teams they form like of a guild or forum – where they explain these are the utilities, the set of design patterns will use or does every team get a real frontend engineer – of-course there is a requirement and then they build these rules and again these practices collectively and then share across the companies that this is what we are going to do. What has, what is a pattern and an anti-pattern which you have seen in the past?
Diane: So one of the things that I think is really helpful for any company that has frontend engineers is to establish a frontend community there, having a place where the frontend engineers can also meet and discuss architecture, new patterns that are coming up, have a discussion about what seems like it would be the right direction for the company. And depending on the size of the company this might not be something that exists across the entire company. There may be several that meet together. For example, Airbnb has this meeting called the frontend architecture meeting, which is open to anyone who is a frontend engineer. You don’t have to be an architect to join this meeting but it’s a meeting where we actually talk about frontend architecture. So, we talk about whether or not we want to use new technology, what kind of new standards we should follow, also thinking about any new patterns that we found, maybe any technical debt that we want to get rid of. It’s a great opportunity for people to not only learn from each other but also figure out how we want to standardize towards a common goal. Because it’s very easy to have a bunch of different teams all kind of running off with a bunch of different types of standards and that can end up making it not only difficult to move from team to team, but can potentially result in lower quality depending on who’s making the decisions around standards. So something that can help is working off patterns and standards that already exist.
Sujay: Well, someday you should write a book. You know it’s an advice. Well, it not even an advice really, just a thought in my mind I spoke out loud.
So cool. Alright. That was very helpful. Time for rapid fire.
What’s your spirit animal?
You know I would say it’s probably a rabbit but mostly just because I have one (well two)
What’s the super power?
I love it.
- Sujay: Do you write on Medium anywhere that we could see your style of writing?
- Diane: I always wanted to start writing articles and I’ve just never gotten to the point of actually writing a lot of them. I helped edit an article and wrote the forward in something about Android accessibility, which is available on 24a11y.com. It’s something where I really like documenting things, so internally, we have all this documentation that I’ve written that could practically be its own book, but it’s not externally facing.
- The article mentioned above is: https://www.24a11y.com/2018/
- The article mentioned above is: https://www.24a11y.com/2018/
Sujay: What’s one team activity will you recommend to the audience of the show for them to do as a team?
Diane: For social one, I would say I really enjoy doing escape game and it really forces everyone to work together. It can potentially backfire if people start getting frustrated with each other, but it can be pretty fun.
A technical thing I think is really valuable is something like having those frontend meetings or doing something where you’re learning about people’s favorite technical things. One thing that we did recently, which was kind of fun, was we organized a frontend all hands of sorts, where people could come up with different talks that they could give, and they were short talks. So we did five minute talks on a variety of different frontend topics. It was really great and it was super well attended and people really enjoyed it. It was an opportunity not only for people to practice speaking in front of other people, which is such a valuable skill, but also lets people learn and share different things that they think are interesting in the frontend space.
Sujay: Even being in the technology space for so many years, I have to admit I was ignorant about the frontend engineering.
So thank you very much for your time and all the insights. I’m very sure folks who are listening to have learned something new today.
Diane: My pleasure.