Wow, didn't you get any email or other notification on why it was getting blocked and what you could do about it?!
HN user
loige
web developer. I live in Dublin and I blog at http://loige.co
Thanks for the thoughtful write-up—always interesting to revisit JavaScript's quirks and strengths through someone else's lens.
That said, I think a few of the issues highlighted, while valid, might not be as disruptive in modern practice as they used to be. For instance, the typeof null === "object" behavior is certainly unfortunate, but it's well-understood at this point, and most tooling/linting setups help you avoid tripping over it. Similarly, Array.prototype.sort() sorting lexicographically by default feels odd until you remember JavaScript’s history as a primarily string-focused scripting language. These days, providing a comparator is second nature for most devs working with numeric arrays.
The point about accidentally declaring globals is a good one—but thankfully, with ES modules, use strict as the default, and tools like TypeScript, it’s much harder to make that mistake in modern codebases.
That said, I really appreciate the focus on JavaScript’s virtues, like closures, async/await, and overall flexibility—those really are part of what makes the language so enjoyable despite its rough edges.
I'm curious—have you built or maintained any large-scale JavaScript or TypeScript codebases recently? If so, what were the biggest pain points you ran into? Do the quirks you mention tend to surface in real-world projects at scale, or are they more theoretical annoyances that pop up in isolated cases?
There are definitely still many challenges in the language, but the ecosystem has come a long way, and it seems like it's still evolving in the right direction. Hopefully JavaScript keeps improving—both in language design and developer ergonomics—without losing what makes it so approachable in the first place.
Thanks for sharing this one. I was looking for more material too!
And yet... The layoffs...
I think this has been fixed here https://github.com/nodejs/nodejs.dev/pull/2713/files
Probably just pending release
It seems an interesting newsletter though
Affinity photo and affinity design are quite good replacements for Photoshop and illustrator respectively. You can get them with a one time payment.
I got them during a promotion and i was able to get both for 30 USD.
I have been using them for about 6 months now and i find them quite good, even though, having used Adobe tools for a long time, i miss the familiarity with the interface and the shortcuts and some of the more advanced features.
I am not that he expert with video editing to be able to recommend alternatives unfortunately...
Seriusly? :D
Great article! I haven't seen this one before. Thanks a million for sharing it
I think you bring a very good point. It's true that you need time to be able to develop the skills and the knowledge but it's also true that those skills don't come from free by just waiting for time to pass while sitting idle on a desk.
I have witnessed very very "senior" engineers who didn't really showcase any senior trait, nor they were helping the company or the colleagues in any significant way. Conversely, I have seen very fresh engineers showcasing the diligence and a level of knowledge that you would expect from someone with longer time in the industry. Those tend to be exceptions, but they happen.
Time in the industry is definitely a relevant factor, but I'd say it's also not a guarantee for more seniority...
Great points, thank you!
I really love your clarification on point 3. I like to think time spent on the industry is not necessarily an indication for actual experience. I have seen people that have spent years and years in the same company doing the same tasks over and over and I tend to believe that they have grown much less than other professionals that managed to be exposed to more challenges during the same time-span.
I also love the idea of T-shaped profiles and of course communication skills are a must!
Great points, I especially loved the focus on DX. Still very much undervalued to this day!
Great points also in being equally proficient in working on greenfield as well as brownfield (legacy) projects.
Thanks for sharing this
Love these ones, great mix of soft skills (communication, business) and hard skills (deep tech understanding).
Thanks
That's a great set of resources, thanks!
Although, I am still curious from your perspective, what would be the 3 most valuable traits of a senior software engineer?
Very interesting article. Thanks for sharing
Author here. Thanks for your comment. I did experiment a bit with a different writing style for this new article and this feedback is really useful :)
Brilliant idea!
It will be fun! :) Are you joining some community or doing it alone?
That's a really interesting one! Thanks for sharing it :)
I have been using fastapi for a project in the last months and it has been a delightful experience. I really love how the framework is designed, the great documentation and the built in support for Async/await.
Thanks for creating this awesome framework!
One of the authors here. Could you please provide more detailss (system, browser type and version) and maybe a screenshot?
Do you have JS disabled?
I loved this article! I learned a couple of new things. Thanks
I love the minimalistic style.
How long did it take you to build the first version? How many people? Which tech are you using for it?
It doesn't. It only supports a prefix to filter out objects. I am happy to get PRs for this kind of features if you have a use case!
I didn't know saw! It looks very very cool, and it's written in go! Thanks for (making and) sharing this!
Very good point, this is probably worth mentioning in the README. I'll add a note there for sure!
I especially like the "done" (!) at end :) Thanks for this one-liner!
There's one in the example (streaming from multiple cloudtrail files and grepping on the resulting stream)
I meant there "[Once the generator has completed], Consecutive calls to `next()` will always produce `{ done: true }`".
I should probably make it more explicit
PS: I like your n+1 example.
Readable-streams v3 (https://www.nearform.com/blog/welcome-readable-stream-3/) allows you to use async iterators to process streams (`for...await...of` syntax).
This is actually in Node.js current, check out stream docs: https://nodejs.org/api/stream.html#stream_readable_symbol_as...