I have been working in the web development domain for almost 2 years now. These 2 years were pretty exciting and yet after 2 years, I realized a number of things. I have worked on 30+ projects. Some personal, but the majority of them were part of my professional life. During these 2 years, I worked on some amazing products, sometimes more than 1 at once. Some were killed during development while some went to production. Side projects like NotesHub were a constant source of learning — both technical and non-technical.
Not only I learned a shit load of tech during these 2 years, but also things like product development, low and high fidelity prototyping, customer engagement, Google AdSense, Google Analytics, team building, resource management, and product/project planning. The best thing was to see a side project reach 1 Million hits/month. That was a different high altogether!
Primarily focusing on Frontend, I understood that its not enough. And there are a number of reasons for me to dive into full-stack apart from polishing front-end skills. The reasons are as follows:
Independence
Knowing only a part of the complete cycle makes you dependent on others. The feeling of understanding the backend as well as the frontend makes you feel — confident, at least for me. The constant poking required to get the API’s right, in a particular format while following industry best practices is tiresome when the backend developer:
Lacks experience working on scalable products
Does not share the same motivation to produce the best work
There have been instances when I have been blocked for days due to the nonavailability of the backend developer. And to be honest, that sucked! Even though the backend was written in Node, but not knowing the underline architecture of Node.js drove me nuts.
I know once I am competent with a frontend framework like Angular and a backend like Node.js, I’ll be able to become an independent developer — a generalist, with a primary interest in frontend.
Contribution
I feel that I was lucky to have such a diverse experience early in my professional career. Diverse because, in my ~1.5 years of experience as a software engineer turned frontend developer, I got the change to work in an MNC with ~5000+ employees, spread across different countries. Post that, working for a startup with 50 employees wherein I led the frontend department and dealt with national/international clients, and at last landing at an intermediate-sized company.
Throughout my career, however small, I realized one thing — the quickest way to make a rapport amidst your team is to bring solutions to the table i.e. contribute. Now if that contribution is both while brainstorming the backend architecture and frontend, you become indispensable. But then that has to be consistent and not a one-time thing. I have known developers who can talk about NGINX or AWS and scalable Angular folder structure with ease. That looks pretty cool to me because the guy’s contribution meant a lot during project kick-offs. Not only this, extending my point 1 of independence, but he is also the perfect example. Not only he could develop in Angular, but also set up a server and deploy!
Money
Time and again I had an epiphany that backend developers earn more than their counterparts — the frontend developers. I know the salaries can vary due to several factors like geography, skill-set, number of years of professional experience — but I have seen this time and again that backend developers are paid the same or more, for the equal amount of hours they put as compared to the frontend developers. I know it not ALWAYS about the time, it is also about the value being generated/hour. But hear me out…
If you are a frontend developer, and you want a proof for my argument above, then here is a small activity you can do with your backend developer friend/colleague. Try to estimate time for a project, say Udemy, to develop from scratch, where the frontend developer (You) will be responsible for developing the wireframes, converting those wireframes/low fidelity prototypes to design (HTML+SCSS) and then integrating APIs, while the backend developer (your friend) will be responsible for developing the database, backend architecture, writing API’s and optimizing it.
Please let me know the result of your activity here in the comments sections or hit me up on Twitter / LinkedIn. When I did this activity with my friends, I realized that the backend’s time was nearly or less than half the time I’ll be putting in developing frontend. This does not mean to undermine the work of anyone or anyone domain. I am just stating the facts and my observations.
Of course, my friend in backend developer is of far superior quality in terms of skill set as compared to me and I respect that — but in his domain.
Having the skill set of both — frontend and backend will help you grab more money for your time.
Empathy
Understanding both worlds will surely make you one hell of an employee because once you know how easy/difficult a thing is, you’ll be able to call out bluffs and at the same time empathize with your colleague developing distributed scalable systems. Not only this, but your demands from the backend team will be more realistic and within timelines. You’ll start working in a completely different light altogether.
*“Walking a mile in someone else’s shoes isn’t as much about the walk or the shoes; it’s to be able to think like they think, feel what they feel, and understand why they are who and where they are. Every step is about empathy.” — Toni Sorenson, The Great Brain Cleanse
And it works both ways i.e. it is a two-way road. Once you prove to be an emphatic colleague, your teammates will reciprocate. Frontend development is hard. You tend to spend hours on things you planned for 0 3minutes, and then it becomes somewhat difficult to explain it to the team. Once you start appreciating the complexities of their work, they’ll start giving you space — the kind of space you never knew ever existed.
Side projects
I am one of those developers who love to BUILD shit! Every day when I come across a pain-point, I try to think of a solution that involves me building something to eradicate that problem. But as a frontend developer, all I can do is ideate the product, develop wireframes, design it, and develop the frontend. Then what?
I love scratching my itch and just the idea of having the power to develop things all by myself gives me chills. For example — the first project I’ll work on is software for my dad’s work!
Conclusion
I know it will be a long journey but every journey starts with a single step. I did start in April’2020 and I’ll be surely updating my profile on LinkedIn to Full-Stack web developer by the end of this year. I will be documenting my entire journey here. From the basics of JavaScript, Data Structures, Algorithms to developing full-fledged web-apps in Angular/Node.
Feel free to reach out to me on Twitter / LinkedIn in case of any doubts, queries, or suggestions.
Originally published on my blog — adityatyagi.com