The month of August came with a substantial change in direction for me. I decided to step down from my role at NearForm as an Engineering Manager.
As a engineer, problems are usually laid out to you. Well defined and ready to solve. As a manager, I had to deconstruct that mindset, problems were no longer laid out to me. The situations an EM encounters require patience and careful consideration, not jumping straight to solutions. Most of the time you have to learn what the problem is first. I think that was the key lesson I had while working at NearForm. To see things from different angles.
I always thought that was the natural career progression for me, having taken on several leadership roles in the past few years. And it did seem like the right choice at first. I was enjoying it, I learned a lot, I helped shape the role itself, I met some of the most amazing people I've ever met.
But I was never really able to step down from the hands-on programming work. Fastify DX was born while I was working there, but the day to day in management along with being a technical advisor on a number of projects made it difficult for me to keep progress steady. I've joined NodeSource with the fancy title of Principal Engineer on Open Source. Thanks for the inspiration, Ryan.
That means Fastify DX is now an integral part of my job. That's not the only thing I'm gonna be working on though. NodeSource provides state-of-the-art tooling and services for production Node.js deployments.
Part of my role will be to become more and more involved with the Node.js project itself, and I couldn't be more excited about it.
NodeSource created N|Solid, an enhanced version of Node.js bundled with several observability features. Running N|Solid is essentialy like running Node.js, there are N|Solid counterparts for all the major Node.js versions. But you get all the features of an APM, like performance and health monitoring, tracing, profiling, among many other features that even go beyond the realm of vanilla APMs. The difference is that N|Solid does all that by maintaining its own Node.js release modified to be able to collect statistics and metrics in real time from a different thread, which makes it able to be the best performing APM in the class.
I wish I had known about N|Solid ages ago, when I first started having problems scaling a Node.js application. Since then I've become used to things like 0x and Clinic to help debug my Node.js applications, but N|Solid delivers a lot of the same with a lot more convenience. I am absolutely ecstatic that I now have to chance to actively work towards improving it.
It is a peculiar coincidence that I have also been heavily invested in Solid.js, the web framework. I started hearing about Solid.js on Twitter roughly a year ago, also came by a few excellent pieces by its author. For a long time it was just an interest, but it became very real when I implemented support for it in Fastify DX. I'm still an apprentice in Solid.js, but I already feel as proficient as I am with Vue.js.
To be fair, Solid.js and Vue.js share a lot of the same developer experience, and Vue.js remains my main recommendation for projects that require a mature ecosystem. But Solid.js has not only outstanding benchmarks both in performance and size metrics, it's also extremely well engineered and well maintained.
I'm trying to use Solid.js now in my Fastify DX experiments, and wrote a piece for the NodeSource blog covering how to use N|Solid to identify and debug some common problems around SSR Performance.
I've been working on a comprehensive test suite, upgrading to Vite 3 and readying fastify-vite v3 for a final production-ready release. Hopefully this will be the time the package is also moved to the
@fastify npm namespace, after meeting all the criteria to become an official core plugin.
As for Fastify DX, the next steps are finishing TypeScript support for all adapters, implementing static site generation, implementing the first version of the CLI and finally, implementing database schema and connectivity helpers. Not to mention the test suite. Step by step, the roadmap looks like this:
- Upgrade to Vite 3
- Test suite for fastify-vite
- TypeScript support
- Test suite for Fastify DX
- Incremental SSG
- Developer-friendly CLI
- Database helpers
Once that's done, the public beta goes live. Subscribe to the newsletter!