Backend engineers who look down on frontend engineers are wrong and short sighted posted on 23 April 2024

There is the assumption in our industry that being a backend engineer is more prestigious than being a frontend engineer and in general the idea that frontend engineering is for “bad” software engineers. Not only is this wrong, it showcases how short sighted some engineers can be.

Both frontend and backend engineering has evolved a lot – Frontend engineering isn’t about centering a div nor is backend engineering about serializing HTML for a browser to render.

I actually think that frontend engineering is harder than backend engineering, the rationale being:

  • You have a fragmented surface (Android, iOS, Chrome, Firefox etc.) – so essentially more surface to maintain/support. To give more color, one thing I remember from my time at Google was how some Samsung TV decided that the eval method in JavaScript wasn’t good and removed it from their browser.
  • Your app is most of the time a stateful one – except for very simple ones. Backend engineers tend to flee away and prefer stateless not because it is more efficient but because it is simpler to build/maintain.
  • You have less insights and control over your system. If your server OOMed, you can retrieve a core dump and debug things but if your webapp runs out of memory you may not have a lot to work on.
  • More unexpected things can happen. For example you may also have some browser extensions that interact poorly with your app – these aren’t necessarily bugs that impact only a few users, they have the potential to take down your whole service. You may have malware that steals user cookies and replay traffic.

As an engineer, you should work with the rest of your colleagues to make your company successful. Looking down on your coworkers is a recipe for disaster – this is especially detrimental as both frontend and backend engineers have to find the right balance between powerful apps and simpler systems (e.g. the two extremes are simple static apps with simple-ish backend services or powerful apps that are more complex to build/maintain).

LinkedIn post

The struggle of drama free launches posted on 22 April 2024

If you work on infrastructure and do a good job, your launches are likely drama free – they do not result in outages, in customer escalations or in visible breakages. People who look only at product metrics (e.g. product revenue) basically do not see the impact (positive or negative) of your work.

This means that you could save the company millions of dollars (in infrastructure cost, in engineering time etc.) but no one would know. Worst, people would know only when your infrastructure is broken. I often joke with coworkers that if they do not hear about me, it’s probably a good thing since there are no ongoing privacy incidents.

With that being said, this is something you can help correct:

  • Make sure you have metrics to demonstrate your progress and impact – tie them back to the business (e.g. what % of revenue does your new framework support, how much machine costs you saved etc.)
  • Celebrate and talk about your accomplishments – send announcements, give tech talks at all hands about your work etc.
  • Raise awareness about risks that you/your team cannot tackle yet (e.g. for prioritization reasons) – this will help people understand that if something breaks, it wasn’t your fault. It also reminds people that these risks exist and need resources (e.g. staffing). Once in a while they’ll also remember that even though all these risks were present, none of them actually happened because of your team.

Last but not least, infrastructure (in broad terms, including privacy/security) is critical for the long term success of every company – one reason Google is immensely successful is because they have one of the best infrastructure in the world. So don’t shy away from rolling out quality infrastructure improvements!

LinkedIn post

Leadership escalations posted on 21 April 2024

Every now and then, you may not be able to agree with another party – about prioritization, what technical solution to adopt or something else. In this case, the last step is to escalate to your leadership.

Escalations often have negative connotations and may sound intimidating (especially if you just started your career) but they don’t have to. Here are few things to be know/be aware of:

  • It’s OK to escalate – Escalations don’t mean that you or the other party are at fault. Sometimes you need clarity from leadership on what to prioritize. If you are unsure on whether something should bubble up an issue, connect with peers to get more feedback/advice.
  • Give a heads up to your leadership if possible – sometimes the escalation will be resolved by 2 VPs (your and the other party’s). It’s useful to give a heads up to your leadership about the upcoming escalation such that they can also be better prepared in case discussions start in the hallway.
  • Be ready – your leadership time is valuable, make sure you have all the data you need to allow the discussion to end up in a resolution of the problem. This means

    • Having a clear write up of the problem – leadership tends to operate at a different level, so write for them. Don’t write a document full of technical jargon/details or keep these in an appendix.
    • Clarify the question you want answered – escalations should be resolvable so don’t ask “What should we do?” but more “Should we do option 1 or 2?”
    • Making sure all solutions have been considered – if you don’t, you may have to go back doing more work and coming back to leadership.
    • Getting estimates for staffing/cost/time/etc. and in general having more data available – you may not need them, but similarly as above, you want to solve your issue with a single meeting if possible.
  • Last but not least, be careful about the narrative. The usual advice on communication applies (e,g, don’t position your team vs another one) but you should especially pay attention to the narrative of your document/slides. This can be about making sure the representation of the solutions are fair but also slightly leading with a solution that you think is better – this is a pretty difficult exercise as the other party may disagree. This is also why if you have the opportunity to create the document/slides you should do it – rather than wait for the other party to craft them.

What other advice do you have to better prepare for escalations?

LinkedIn post

Time seniority != Level seniority posted on 20 April 2024

While job offers often mention a required number of years of experience, this is more a guidance than anything else. For example if you move from Google to Meta, Meta will match your level regardless of how many years of experience you have.

In general, you need some time to get promoted to the next level – e.g. the median L3 engineer needs 2 years to get to L4. But time is not enough, that’s why you have L5 with both 3 and 20 years of experience. You do need time to grow though because you need some experience that can’t be learned in books – e.g. you don’t know how to manage a large team until you have actually done it. How much time you need depends on your skills (and luck).

One important takeaway is also that cruising (and getting time seniority) doesn’t get you promoted nor does it get you a raise – you may have gotten one in the past as the job market was getting more competitive but you can’t assume you’ll get an annual raise if you’re cruising. With time, you have more knowledge and become more efficient but in the software industry, this is not enough to get promoted beyond L4/L5 – being an efficient L4 doesn’t make you L5.

Last but not least, getting promoted at your current company is the easiest way to get a senior position somewhere else since companies care about impact, scope and leadership rather than years of experience. This also why writing your actual impact on your resume rather than your number of years of experience is better.

Keep a growth mindset if growing is something you desire. Do not settle for mediocre systems/processes, learn from others and keep reflecting every now and then on yourself.

LinkedIn post