I've started with a developer review last year, and now I'd like to continue it, even though one could call it a nerd review instead because of the interests I included.
New Job as Frontend Dev
Besides my current role as a full stack developer at Smartsquare, I've started to help out a friend of mine with his company. At Quikk, I work part-time as a frontend developer focusing not only on web but also on mobile. My previous knowledge and interests focused on Vue.js and Flutter, so switching to React.js (with Next.js) and React Native was a new challenge! I like how vast the ecosystem around them is and how it allows you to structure projects, but I am still not in love with the following:
JSX is Not My Type
I understand the wish to write everything in JavaScript / TypeScript, but in the end, it is its own thing and not plain JavaScript. The syntax often complicates the structure, and everything has to use either its own way (like using a logical OR syntax) or be extracted into more components. Structuring into multiple components is nice, but sometimes the time for that is missing, and including multiple components in one file can feel off when compared to Vue.js's Single File Components (not to say that is a bad thing to do; both have pros and cons). In Vue.js's syntax, only the HTML is extended, thus keeping it still valid and easy to read. This may result in less flexible structures, but in most cases, it's worth it in my opinion.
React's Bad Defaults
As I am no expert in React yet, this may be just a me-problem, but the overcomplicated rendering cycles and explicitness needed for efficient code result in inefficient apps by default. There are too many useStates, useEffects, useCallbacks, and whatnot needed, and if used incorrectly, they won't save performance. Not every developer has the time and urge to learn about every quirk their frontend framework has, so simpler alternatives like Vue or Svelte are superior in that regard.
A simple-to-use API results in fewer errors, which results in an overall better app.
No Standard
The React ecosystem is huge, maybe too huge. Projects often include a meta framework, a store, a fetching library, a component library, maybe even signals. In the end, they have to work together, but that's the problem: if your fetching library doesn't work with your signals, what do you do?
In contrast, the Vue ecosystem rarely has conflicts, as it's implemented with that in mind. Signals are built in, there is one store and everyone uses it, there is a main meta framework similar to Next.js called Nuxt.js, and everything still works together. Everything just works.
React Native
If React is not a problem, React Native is quite nice to use. Hot reloading and debugging tools exist; CSS-like styling makes it flexible. Overall, I understand picking it, but for a more consistent feel and better performance, I would still choose Flutter (especially because I wouldn't have to use React then).
Vue 3 Migrations
In recent years, I had the honor to migrate Vue 2 apps to Vue 3 (including Nuxt). Most of the time, I could just rewrite the components into Composition API and the Vuex stores into Pinia stores. Then I would switch Vue, Nuxt, and Vuetify (a component library) to the newest version and fix all errors in one go. For smaller apps, this was okay to do, but for a large app with many concurrent users and updates, this is a more error-prone process. Doing the same in a large branch that may be open for half a year is not feasible, so using Nuxt Bridge is a solution to that. It adds Vue 3 and Nuxt 3 features while still using Vue 2 and Nuxt 2. This sounds nice but comes with so many problems a whole README-file on what to use while migrating and what to use after the migration should be created. Modern linting rules are too modern, the Composition API is not modern enough, TypeScript errors and much more are the norm.
This allows the migration to happen while new features can be added to the app, but every migration PR has to be carefully tested (and bugs will still slip through!).
Nix & NixOS
While still studying for my bachelor's degree (~2018), I learned to love Linux. I tried Linux Mint because of lessons we had back then but switched to the also Ubuntu-based distribution PopOS for my own systems. I was happy with it at the start as everything worked out of the box, and the custom window tiling plugin in Gnome was nice to use. After some time I started to dislike Ubuntu, and PopOS started work on their own desktop environment called COSMIC. While I like the idea, I did not like the missing updates to their old base. That was the point I switched to Fedora which also just works per default. Most apps are also available as RPMs, so I had no problems installing them. Looking back, all of these distributions feel quite the same and left me with a boring and unstructured feeling. Using DEBs or RPMs makes no big difference; in the end, apps still have to be installed with Snap, Flatpak, some weird package manager, or via scripts. This caused me to have a look at NixOS, which I learned about in a presentation back in university. It is based on the package manager and programming language Nix that allows for declarative installation of your system with reproducibility built in. NixOS looked way too complicated, and everyone says their documentation is bad, but I now had the urge to try it. And I failed… and then tried again some months later and got everything to work! It took me intensive weeks to figure everything out, but now I am finally happy again with my Linux system and it is very fulfilling!
I can recommend NixOS to everyone who loves pain has the will to learn and debug much, and is able to code.
Tip
Use multiple sources like public NixOS configs on GitHub, tutorial videos, user documentation, and even the official documentation and AI to learn.
Attending World's Largest Developer Event
The WeAreDevelopers World Congress in Berlin is a huge yearly event with "15 000+" attendees combining talks, live coding, interviews, corporate booths, and more. My last bigger developer event was JavaLand near Cologne some years ago, so I was immediately hooked, but ultimately let down:
| Pros | Cons |
|---|---|
| Some interesting interviews and talks | Many talks with catchy and misleading titles, or lackluster content |
| Many people to talk with | Not every stage got a walled room with enough chairs and a projector; instead, a small TV and shared headphones were used (who had this idea?!) |
| Missed some talks because of the large venue and tight schedule | |
| I once liked Berlin, but now I do not feel comfortable there anymore |
The event could have been purely online for me. In contrast, JavaLand always felt like an adventure and like meeting the local community, maybe because of the location and smaller attendee count.
Keyboards
In late 2023, the mechanical keyboard I used annoyed me because of the loud MX Brown switches and the standard staggered layout. The Dygma Defy was released at that time, so I invested in my health and switched to an ortholinear split keyboard with tenting and layers. I even tried switching to the Colemak (DHM version) layout but failed.
In late 2025 the love for it started again, which resulted in testing multiple silent switches, designing my own keycaps (not yet done), and relearning Colemak again.
The original Kailh BOX Silent Brown switches I used were nice at the beginning, still, they weren't silent enough and developed a clicky sound. Currently, I am happy with the Outemu Kitty Silent Tactile switches, as they are very quiet, smooth, and easy to press.
Conclusion
All in all, this year was packed. Maybe next year will be a little less packed but more focused? Furthermore, reading through this review sounds a bit too negative to me, so I hope that changes with the next one, as well.