Frontend Insider #10

Eugene Fidelin
4 min readMay 29, 2024

--

Here’s my 10th curated resource list, focusing on topics I’m interested in. This edition covers web development subjects like React and Node.js, as well as software architecture, engineering leadership, testing and more. Check out these valuable resources to deepen your knowledge. Enjoy!

Free image by IDarka

Architecture

My key takeaway from this video is that the cost of software development tends to align with the level of coupling — less coupling generally leads to more cost-effective development. While it’s not feasible to decouple everything, the real art of software design lies in finding a reasonable balance. Therefore, software design is essentially about managing the costs of software development.

Testing

How can you be confident that your code is well-tested? For me, the criteria are straightforward: you feel comfortable deploying it automatically to production on a Friday evening, and the release pipeline stays as green as an evergreen tree. In this talk, I’ share some approaches that I am following to hit both targets for Node.js apps (APIs BFFs, etc)

Disagreeing a bit with the article’s author here. I’ve worked for several companies without a dedicated QA team, and surprisingly, the quality remained quite high. Instead of having a dedicated QA team, each multifunctional team had a QA engineer. Their main focus wasn’t writing tests (developers handled that), but rather assisting in creating test plans, bug triage, and keeping an eye on DORA metrics.

In the last 10 year or so I’ve been always part of teams where there weren’t dedicated QA folks responsible for writing tests. Instead, developers took on the responsibility of creating all types of tests, such as unit, integration, and end-to-end tests, based on what was most suitable for a particular feature. When developers take full ownership of building, delivering and maintaining the code, it leads to greater job satisfaction and a higher quality product.

Developer eXperience

As the PR author, you can be stuck waiting for hours, days before you can merge. This is especially challenging on distributed teams across different timezones. You’re trying to ship a feature, but you’re stuck waiting on review from someone who’s fast asleep on the other side of the world.
Sound familiar? Give the “Stacked PRs” approach a try. Personally, I use the git town tool for that and am quite satisfied with it.

Want to make PR reviews smoother and faster? Just bring in a bit of human touch. In teams where everyone’s got each other’s back and helps out, PR reviews are never a hassle.

Engineering leadership

To create a successful product, non-functional requirements are as crucial as product features. In a highly competitive environment, users are likely to opt for an alternative if it offers superior speed, reliability, and security. This highlights the pivotal role that engineers play in ensuring these non-functional aspects meet or exceed user expectations.

This book is a must-read for any leader. It’s packed with insights on boosting your team’s performance and motivation. If it works for running a nuclear submarine, it’ll definitely work in the less stressful IT world.

React

In my experience, even seasoned devs can struggle with the useEffect hook, leading to unnecessary re-renders or even infinite loops if not used correctly. This short article offers some helpful tips to avoid these problems.

Node.js

What if you want to better decouple the logic of your Node.js service but aren’t ready to fully transition to microservices due to the infrastructure overhead? A great solution is to use HTTP semantics for in-memory or inter-process interactions to make your services more modular. In this video, Matteo Collina explains how this can be easily achieved using undici and light-my-request.

<<< Frontend Insider #9 — — Frontend Insider #11 >>>

--

--

Eugene Fidelin

Full-stack web-developer, frontend architect & engineering manager, passionate advocate of the high quality code. linkedin.com/in/eugef