Joel on Software
joelonsoftware.com · Personal blog · on HN since 2007
Joel Spolsky writes about software development, management, and running a software company, with many essays from the early 2000s.
What HN saysCommenters say it has great posts for developers, product managers, and founders, suggest starting with the Top 10, and praise his book Smart and Gets Things Done.
2.8KHN people shared it
2.3Klinked it in comments
896stories submitted
17Kstory points
3 months agolast shared
2007people per year2026
Most-shared posts
- 1Things You Should Never Do, Part I (2000)305 people · 383 points · first shared 2016 · 100 comments on HN
- 2Things You Should Never Do, Part I (2000)184 people · 333 points · first shared 2007 · 154 comments on HN
- 3Commoditize your complements (2002)130 people · 80 points · first shared 2016 · 25 comments on HN
- 4Fire And Motion (2002)94 people · 126 points · first shared 2017 · 8 comments on HN
- 5The Law of Leaky Abstractions (2002)86 people · 144 points · first shared 2016 · 85 comments on HN
- 6Strong software tips from 2000 that are 100% valid today82 people · 169 points · first shared 2016 · 40 comments on HN
- 7How to Price Software - Economics vs. Pyschology78 people · 100 points · first shared 2007 · 6 comments on HN
- 8The Joel Test: 12 Steps to Better Code (2000; Still relevant?)76 people · 113 points · first shared 2007 · 27 comments on HN
- 9My First BillG Review (2006)74 people · 275 points · first shared 2016 · 155 comments on HN
- 10Joel on Software71 people · 2 points · first shared 2007 · discussion on HN
- 11Don’t Let Architecture Astronauts Scare You (2001)68 people · 301 points · first shared 2016 · 148 comments on HN
- 12The Law of Leaky Abstractions (2002)67 people · 108 points · first shared 2007 · 31 comments on HN
- 13How Microsoft Lost the API War (2004)67 people · 22 points · first shared 2017 · 1 comments on HN
- 14Spolsky on "Commoditizing Your Complements"65 people · 76 points · first shared 2008 · 14 comments on HN
- 15The Absolute Minimum Every Software Developer Must Know About Unicode60 people · 442 points · first shared 2007 · 74 comments on HN
What HN people wrote when they linked it
gus_massa · 2024-10-19
Sorry for the delay. My usual recommendation is to read whatever patio11 wrote about this, but I think most of his advice is about solo consulting instead of a managing a consulting company. https://www.kalzumeus.com/greatest-hits/ Probably the most relevant are https://www.kalzumeus.com/2012/09/17/ramit-sethi-and-patrick-mckenzie-… and https://www.kalzumeus.com/2012/09/21/ramit-sethi-and-patrick-mckenzie-…
I also like the old post of Joel Sposlky https://www.joelonsoftware.com/ Probably the most relevant are shown when you click "Recruiter" near the bottom.
ChrisMarshallNY · 2024-02-11
I haven't been super thrilled with a lot of stuff, but I have found that I've enjoyed Joel Spolky's stuff[0], in general. I don't think he's that popular, hereabouts.
For example, his book Smart and Gets Things Done[1] is great.
Although not management, per se, Steve McConnell's stuff[2] has been of invaluable assistance, in my career. He talks about Quality Process, and that's the kind of stuff that managers should (IMO) know and enforce. Again, I don't think folks, hereabouts, have much love for him.
His book, Rapid Development[3], was a watershed, in my development.
[0] https://www.joelonsoftware.com
[1] https://www.joelonsoftware.com/2007/06/05/smart-and-gets-things-done/
[2] https://stevemcconnell.com
[3] https://www.microsoftpressstore.com/store/rapid-development-9780735691…
zdwolfe · 2022-04-21
Many folks in this thread are recommending which specific subreddits and blogs they like, but I thought I'd comment on the "how" of my web routine that I found useful.
I use feedly.com to follow HN, blogs, subreddits, and news outlets. I split up "Backlogging" and "Reading" as separate activities, which I think promotes focus when reading.
To "backlog", I browse through my feedly feed of HN/Reddit/blogpost titles, marking the ones that sound interesting to "Read Later".
Then later I read through those "read later' posts, saving the best ones in lists and highlights/notes for the future.
As for specifics,
1. https://www.reddit.com/r/ExperiencedDevs/
2. https://www.joelonsoftware.com/
3. https://martinfowler.com/
4. https://refactoring.fm/
tmcz26 · 2022-01-01
Joel On Software has great posts aimed at all levels: developers, PMs, non-tech managers and founders/CEOs. Begin with the Top 10 :)
https://www.joelonsoftware.com/
SMAAART · 2020-10-17
Good to hear that you realized that management is not for you; it's not for everyone.
Alas, being a consultant is a lot about being in sales, how are your selling skills?
I think for a while you need to continue what you're doing, as you're doing; AND - along the way - investigate ways on where to bring your consultancy. Besides the usual suspects of books on selling, I also recommend the following reading:
* So Good They Can't Ignore You: Why Skills Trump Passion in the Quest for Work You Love
* https://www.joelonsoftware.com/
* Rework
* Little Bets
* http://www.paulgraham.com/articles.html
pjmorris · 2020-03-28
The oldest 'Joel on Software' [0] posts are kind of a window into some of the best writing on software of that time.
[0] https://www.joelonsoftware.com/
vmurthy · 2019-07-04
The first thought that came to my mind was if Raymond Chen's blogs on MSDN got deleted. Now , that would have been a tragedy! The blog is still up fyi. Tons of technology trivia and snippets there.
Growing up, JoelOnSoftware[1] and Raymond Chen's blog[2] were two great companions for me while surfing the net. Knowing HN, I am pretty sure a lot of you would have grown up with these blogs :-)
[1]https://www.joelonsoftware.com/
[2]https://devblogs.microsoft.com/oldnewthing/
Old MSDN link : https://blogs.msdn.microsoft.com/oldnewthing
ThorinJacobs · 2018-07-27
For software development - I favor books that are about good practices generally rather than books about particular languages which work well as references.
I usually recommend:
* Code Complete (Steve McConnell)
* The Pragmatic Programmer (Andrew Hunt and Dave Thomas)
* Clean Code and The Clean Coder (Robert Martin)
* The Mythical Man-Month (Fred Brooks)
* Test-Driven Development By Example (Kent Beck)
I also recommend blogs for more bite-sized knowledge. Jeff Atwood's blog at https://blog.codinghorror.com and Joel Spolsky's at https://www.joelonsoftware.com in particular have been helpful to me.
daveslash · 2018-04-24
Agreed. Good greats for anybody; excellent for people newer to software development (including managers, leads, and other non-programmers). On his website https://www.joelonsoftware.com/ scroll down to "Reading Lists"; he has a link to his archives, as well as top reading lists by topic.
relics443 · 2017-03-12
Coding Horror [1], and Joel on Software [2] are my favorites.
[1] https://blog.codinghorror.com/
[2] https://www.joelonsoftware.com/
z1mm32m4n · 2017-03-12
Oh interesting, it looks like Joel on Software recently got an update. Apart from cosmetic changes, there are now a number of recommended reading lists to help you find articles you might like.
https://www.joelonsoftware.com/#reading-lists
Gaessaki · 2016-05-08
Not sure if this qualifies as similar to PG, but I'd throw in Joel Spolsky of Trello and StackOverflow fame (http://www.joelonsoftware.com/) in there. He doesn't blog anymore, but there's a decade's worth of posts there concerning technology, product management and startups. Some other names off the top of my head: Hanselman, Coding Horror, AVC, Both sides of the table, Justin Kan (only read a few posts that showed up on HN, but I liked them.)
logn · 2014-04-25
http://www.joelonsoftware.com/
I don't think there have been many good blog posts for years (it's just promotional stuff now). But on that page, check out the middle column on the right that recaps the best posts.
ibudiallo · 2013-03-03
Seriously from all the articles I read I am an expert when knowing what not to do. So now I am looking for an article that says what to do.
The best "what to do" I read so far is http://www.joelonsoftware.com it lures u in as a quick fix, and before you know it , you have read hundreds of posts and have grown.
Anybody have some other good read to share?
dltylol · 2012-06-19
http://www.codinghorror.com is full of gems. Also http://www.joelonsoftware.com has some excellent stuff (albeit a bit more management suited).
tobiasbischoff · 2012-01-04
Point him to Joel Spolsky's Blog http://www.joelonsoftware.com/
There is a reading list on the right, all good reads about software development.
jvandenbroeck · 2011-06-28
Good point, but pushing web standards if it hurts your business case isn't smart. Standards & nice things for developers aren't always in the best interest of companies. Apple doesn't want users to be able to create iOS Apps with Adobe's software -- because these Apps would run on every device and that would destroy their competitive advantage. Software independent of hardware was a great invention, allowing Microsoft to earn buckets of $$$ -- but that wasn't in the best interest of IBM. They had to change their focus from hardware to services to survive.
I think there was an interesting post about these kind of mechanisms on http://www.joelonsoftware.com/ but I can't find it anymore.
Nemi · 2021-12-13
I think you are confusing marketing with advertising. What you are doing IS marketing. Marketing is about understanding the market’s problem you are solving and figuring out ways to connect those people with your product.
A great way to market your product is to use “content marketing” where you create truly useful information on how people can solve their problems that may or may not even need your product to work. This combines being altruistic (they may read your content and figure out how to solve their problem without your product, and that is ok) with being business savvy (they may be so impressed with your knowledge and articulation that they want YOU to solve their problem, so they hire you/buy your product).
Advertising is just one very small aspect of marketing. A really good marketer understands this and finds the best way to expose their product and reach customers that really need your help.
Probably one of the best examples of altruistic content marketing was Joel Spolsky.
https://www.joelonsoftware.com/
He never even tried to sell his company’s software FogBugz, but the exposure FogBugz got through his blog was so much greater than he ever could have gotten through advertising. He created a reputation that eclipsed his product several times over. You don’t have to go to the length he did, but hopefully you get the point.
spolsky · 2015-10-01
Sorry, Prashant, you lost track of the plot of the story somewhere along the way.
(creator of FogBugz, here)
FogBugz won and Jira won, but they were playing different games.
I wanted to make software development better for programmers. When I started creating Fog Creek Software in 2000 programmers were treated like typists. They were not paid very well (my starting salary was $33,000). There was almost no thought around how software should be developed. Companies that scored high on the Joel Test[1] were almost unheard of.
The LAST thing I wanted to do was make another tool of oppression for management to impose gantt charts and deadlines and strict rules about who has to sign off on things.
I set out to make software development better for programmers by blogging[2] and by building a company that would be a great place to work[3].
In 2000 the only way to do that was to bootstrap it. With a team of four people we couldn't build anything complicated. We started with bug tracking software because at least we could touch one aspect of programmers' lives with our philosophy.
FogBugz was designed for smaller collegial teams of people that wanted to work together effectively and needed a clean and simple way to track issues using the smart workflows that small, professional teams like to use.
It was remarkably successful and profitable from 2000 to today. We've never stopped working on improving it, but we also have never abandoned the market of small collegial teams of…
elmarschraml · 2015-02-08
Joel on Software is a classic: http://www.joelonsoftware.com/
Sadly, a few years ago he mostly stopped writing about business and architecture, but the archives from around 2000 to 2005 are really good, and mostly timeless.
infoq.com has lots of good articles and talks, some language- or technology-specific, but most with a focus on architecture.
The O'reilly Head First books "Object-oriented architecture & design" and "Design patterns" are somewhat basic, but an excellent and accessible start.
For something deeper and harder to digest in book form, try some of the classics like Eric Evan's "Domain-driven design", or Martin Fowler's "Patterns of Enterprise applicaton architecture".
As for some specific styles, try typesafe's manifesto and description of reactive applications, Hohpe's "Enterprise Integration patterns" for pipes-and-filter architectures, and anything by Stefan Tilkov (https://www.innoq.com/blog/st/) for REST.
chubot · 2013-12-31
I graduated in December 2001, with a BS and M.Eng in CS from a well known school. This was almost precisely the low point after the dot com crash. I spent 4 months at home with my parents doing nothing. I had some random uninteresting interviews; the most interviewing was for JPL in Pasadena, but it wasn't a fit. Then I managed to find a summer internship at EA in April 2002. Not even a full time job.
The game industry was the only thing in software "going well". It's completely decoupled from the web/dotcom business. I think EA's stock doubled from 2002-2004 because everything else in tech was completely stagnant, at least business-wise.
I moved to Redwood City first, then SOMA later in 2002. SOMA was completely different -- sort of tumbleweed-y as someone here put it. My roommate from craigslist was 5 years older and worked at a company in San Mateo, but otherwise I met almost no other tech people.
Everyone I knew from college said they wanted to move out to California, but not many did because they couldn't find jobs (although most of my college friends were not in tech).
I did have a college acquaintance who started at Google in 2002, and I found that interesting because I had used Google since summer 2000, but not noteworthy as far as I can remember.
After that summer internship in 2002, I converted to full time at EA for a $60K salary. That sounds ridiculously low now!
In 2003, I was sick of my job at EA, but I wanted to stay in SF. The only decent…
seanc · 2026-07-20
If you're NVIDIA then open-weight models are a classic example of commoditizing your complements; cheaper models mean more people buying GPU's to run them. [1]
Your guess is as good as mine for China though.
[1] https://www.joelonsoftware.com/2002/06/12/strategy-letter-v/
mparramon · 2026-07-17
Classic commoditize the complement, well done on SpaceX's side:
https://www.joelonsoftware.com/2002/06/12/strategy-letter-v/
quietbritishjim · 2026-06-17
This is addressed by the classic article by Joel on Software (which is apt, as it's a classic mistake):
https://www.joelonsoftware.com/2000/04/06/things-you-should-never-do-p…
He answers, to rephrase in the language of this conversation: why are there all those fences there?
> I’ll tell you why: those are bug fixes. One of them fixes that bug that Nancy had when she tried to install the thing on a computer that didn’t have Internet Explorer. Another one fixes that bug that occurs in low memory conditions. Another one fixes that bug that occurred when the file is on a floppy disk and the user yanks out the disk in the middle. That LoadLibrary call is ugly but it makes the code work on old versions of Windows 95.
zoogeny · 2026-05-23
This is a classic debate in programming, literally:
2001: "Beating the Averages" (Paul Graham) [1]
2006: "Can Your Programming Language Do This?" (Joel Spolsky) [2]
Both of these articles argue for the thesis that programmers that have been deprived of certain language features often argue that they don't need those features since they are already comfortable working around the lack of said features.
It's a fancy way of arguing: you don't know what you're missing because you've never had it. Or, don't knock it until you try it.
Consider, is your argument a) I've never used it and don't see a need for it, or b) I've used it before and didn't get any benefit?
1. https://paulgraham.com/avg.html?viewfullsite=1
2. https://www.joelonsoftware.com/2006/08/01/can-your-programming-languag…
rented_mule · 2026-05-16
Here's a 26-year old post on the exact topic of messiness you raise:
https://www.joelonsoftware.com/2000/04/06/things-you-should-never-do-p…
A decade ago, I was sitting in on a meeting about a rewrite and, before I could say anything, someone in the first year of her career asked why anyone thought a rewrite would be any cleaner once all the edge cases were handled. Afterwards, I asked her where she learned this. She said "I don't know, it just seems kind of obvious." She went on to be a great engineer and is now a great manager.
htmlenjoyye · 2026-05-09
browsers will display invalid/corrupt images (best effort)
tried it right now - took a PNG and a JPEG, opened them in a text editor, literally deleted the second half of the file, saved, and dragged them into both Firefox and Chrome - they are displayed instead of erroring out.
there is a classic article why a minimal version of the web with features removed will fail - you removed 80% of the features that YOU think are not important. thats a classic fatal mistake
search the web for different proposals for a minimal web and you will understand - they will have removed some feature they think is bloat but which you kept in your proposal because you consider it critical. which is why you created a new proposal - their minimal proposal is not the right one for you
https://www.joelonsoftware.com/2001/03/23/strategy-letter-iv-bloatware…
lionkor · 2026-04-29
I struggle to find anything on this post that wouldn't be caught by some kind of unit test or manual review, especially when comparing with the GNU source for the coreutils. The whole coreutils rewrite is a terrible idea[1] and clearly being done in the wrong way (without the knowledge gained from the previous software).
If you do a rewrite, you should fully understand and learn from the predecessor, otherwise youre bound to repeat all the mistakes. Embarassing.
To be clear; I love Rust, I use it for various projects, and it's great. It doesn't save you from bad engineering.
[1]: https://www.joelonsoftware.com/2000/04/06/things-you-should-never-do-p…
ryandrake · 2026-04-21
I hear you, but I still feel for the coworker, and if I newly joined a company and learned on my first day that they are failing the Joel Test[1] here in 2026, I would get that sinking feeling in my stomach that I made a huge mistake. There is no longer a valid excuse for having a build like that. "It's documented..." and "Nobody wants to touch..." "Not worth it to..." "Can't justify..." are all huge red flags.
1: https://www.joelonsoftware.com/2000/08/09/the-joel-test-12-steps-to-be…
raincole · 2026-04-06
The funny thing is that Joel Spolsky predicted most of it 20 years ago[0]:
>> Jon Udell found a slide from Microsoft labelled “How Do I Pick Between Windows Forms and Avalon?” and asks, “Why do I have to pick between Windows Forms and Avalon?” A good question, and one to which he finds no great answer.
And:
>> Which means, suddenly, Microsoft’s API doesn’t matter so much. Web applications don’t require Windows.
What he didn't see is, however, Azure would become the money printer for Microsoft and made all these no longer matter.
[0]: https://www.joelonsoftware.com/2004/06/13/how-microsoft-lost-the-api-w…