Nicholas C. Zakas
humanwhocodes.com · Personal blog · on HN since 2018
Nicholas C. Zakas, a software engineer and author of JavaScript books, writes about JavaScript, engineering careers, and his own experience.
What HN saysHN commenters thank him for his JavaScript books, cite his essay on why engineers are grumpy, and point to his Lyme disease post and AI programming approach.
32HN people shared it
9linked it in comments
32stories submitted
1.1Kstory points
5 months agolast shared
2018people per year2026
Most-shared posts
- 1The care and feeding of software engineers, or why engineers are grumpy (2012)6 people · 317 points · first shared 2018 · 145 comments on HN
- 2Fsx: A modern filesystem API for JavaScript4 people · 10 points · first shared 2024 · discussion on HN
- 3Why I've stopped exporting defaults from my JavaScript modules3 people · 3 points · first shared 2019 · discussion on HN
- 4JavaScript WTF: Why does every() return true for empty arrays? – Human Who Codes3 people · 3 points · first shared 2023 · 1 comments on HN
- 5Env: a better way to read environment variables in JavaScript2 people · 14 points · first shared 2021 · 1 comments on HN
- 6The five questions I used to help me decide, prioritize, and solve problems2 people · 4 points · first shared 2020 · discussion on HN
- 7I have lyme disease2 people · first shared 2018
- 8My somewhat complete salary history as a software engineer1 people · 726 points · first shared 2018 · 650 comments on HN
- 9Sponsoring dependencies: The next step in open source sustainability1 people · 5 points · first shared 2022 · discussion on HN
- 10How to talk to your company about sponsoring an open source project1 people · 3 points · first shared 2021 · discussion on HN
- 11What's the difference between JavaScript engines and JavaScript runtimes?1 people · 3 points · first shared 2024 · discussion on HN
- 12Mentoss: The Fetch Mocker1 people · 2 points · first shared 2025 · discussion on HN
- 13Creating a JavaScript promise from scratch, Part 1: Constructor1 people · 2 points · first shared 2020 · discussion on HN
- 14Private instance members with weakmaps in JavaScript (2014)1 people · 2 points · first shared 2021 · discussion on HN
- 15Someone temporarily took over my subdomain1 people · 2 points · first shared 2024 · discussion on HN
What HN people wrote when they linked it
TimTheTinker · 2019-06-25
Shout-out to Nicholas Zachas (@slicknet, https://humanwhocodes.com). Thanks for the great JavaScript books, and praying you feel better!
MangoCoffee · 2025-08-14
LOL. I just want to try out vibe coding on something small with a persona based appoarch described here: https://humanwhocodes.com/blog/2025/06/persona-based-approach-ai-assis…
stefanos82 · 2023-05-20
You reminded me the case of Nicholas Zakas [1]. Please read it carefully and make an appointment to your personal doctor to check you for lyme disease; it matches your case since you have mentioned the number of years you are dealing with this chronic issue.
https://humanwhocodes.com/blog/2014/04/02/i-have-lyme-disease/
jayflux · 2021-11-26
These APIs didn’t all come out the same time, so they weren’t designed to differ.
Instead they decided against doing live node lists in future but couldn’t change how the older methods work as that would break websites. In the world of DOM/JS you can’t really make breaking changes.
https://humanwhocodes.com/blog/2010/09/28/why-is-getelementsbytagname-… Has more context
exabrial · 2020-07-07
Here's two really good articles, not books, on the subject:
* https://www.hashtagcoder.dev/blog/director-of-engineering
* https://humanwhocodes.com/blog/2012/06/12/the-care-and-feeding-of-soft…
mhagmajer · 2020-05-25
eval( <javascript> ) is terrible at ensuring security. Query programs are executed against the same environment as your own programs!
ask { <askscript> } runs on AskVM which is a separate execution context that you define yourself with the exact set of resources, values and limits the each incoming program needs. AskVM is currently implemented in JavaScript. We plan to port it to Python, C and AskScript very soon.
Check out https://humanwhocodes.com/blog/2010/10/26/wanted-dynamic-execution-con… to learn more about this subject.
Sorry to have taken almost an hour to get back to you, we're talking with a few people at the moment. The code is live for 6 hours already.
Marcin Hagmajer ~ AskQL Core Team, xFAANG
9wzYQbTYsAIc · 2019-09-05
> 1) Make it their time
2) Mentor the whole person
3) Don’t give answers, provide strategies
4) Give homework
5) Don’t prevent all mistakes, just horrible ones
6) Don’t try to create a you-clone
https://humanwhocodes.com/blog/2014/01/07/how-to-be-a-mentor/
HFE_C282Y · 2018-10-31
He remarks here (https://humanwhocodes.com/blog/2014/04/02/i-have-lyme-disease/) that his health has been poor for the last (now) 19 years. Having contracted Lyme roughly 9 years ago myself, I can empathize with him. The effects never truly go away.
1vuio0pswjnm7 · 2023-07-30
"By analogy: right now, you can tell your browser to change its User-Agent string to anything you want."
You can also not send this header. By default I do not send it. The RFCs do not require it^1 and very rarely do I find sites that do. When I do find such sites,^2 I just add them to the proxy config so that a UA is added on the way out. Almost invariably these sites will accept a made-up UA, so long as it is well-formed, which is interesting.^3 It suggests no one knows what new UA strings will appear.
The origin of changing the User-Agent header dates back to one of the earliest browsers, written in part by a well-known Silicon Valley VC.^4 It was always possible for the user to control HTTP headers such as UA and the designers knew it. Later in the "browser wars" on Microsoft changed its UA header to match Mozilla.^5
1.
https://towardsdatascience.com/the-user-agent-that-crazy-string-underp…
2.
For example, www.federalregister.com and sec.gov.
3.
Many users want to "blend in" and use common strings so perhaps use of made-up strings remains largely untested.
4.
https://raw.githubusercontent.com/alandipert/ncsa-mosaic/master/mosaic…
5.
https://webaim.org/blog/user-agent-string-history/comment-page-1/
https://humanwhocodes.com/blog/2010/01/12/history-of-the-user-agent-st…
As for WEI, I'm inclined to think that the terms "abuse" and "fraud" in the spec may actually refer to ad fraud,…