OMG, I know right!
This was my reaction too when I took this path. I've been a frontend engineer for as long as I can remember and I absolutely love it to the core.
When I started my career in 2010 and learnt a handful of functions of jQuery
with which I could add, remove or animate stuff on the browser screen it almost felt like magic. I have never been more excited to work/debug web apps within a browser, it feels home.
Last year I happened to work on projects which were infra heavy, and they introduced me to technologies like Docker
and Kubernetes
and in general how stuff should be architected for scalability. In the process I not only dockerised a lot of frontend apps but also a lot of backend code mostly written in Java
. Before this any language except JavaScript
used to seem alien and my brain would give up even before trying. But now they don't feel so intimidating.
As an Engineer I want to say yes to most of the feature requests and love bringing delight to the users of my app but sometimes we need to work around because of constraints either from experience, timelines or backend api designs.
Sometimes I am able to get what I want in terms of APIs but sometimes I can't and have to make compromises given the complexity involved in the API implementation, lack of data etc. I think we've all been there in the API contract discussions to find out
- search on this attribute would be difficult, can you guys do client side filtering?
- this is an async API and might fail, can you add a timeout before calling it?
- this attribute can't be sent in the response, can you make a different API call to get everything?
And before you say out GraphQL, no it's not the solution. You can't push the complexities behind one layer and assume everything is hunky-dory.
There's very little I could do about it mostly because I'd not understand the nitty-gritty and I had to be limited only till the JSON structure but nothing beyond that.
This is not a rant, but an attempt to deeply understand and appreciate the problems backend engineers face day in and day out.
I think that all engineering problems are beautiful.
It wouldn't hurt to at least know them be it frontend or backend. Precisely why I'm turning to actively learn and try it at work.
I'm making my learning progress public by posting what I read, understand in the form of a digital garden notebook.
I'm excited for learning again from ground up! I'm also extremely lucky to have an amazing culture at work that I'm getting time and support to try a new path with a good enough safety net. Hoping to share lots of stories, tid-bits that I gain along the way.
See you all next time :)