Work in progress: 82,651 of 181,233 sites checked so far, more every week · updated 2 Nov 2026Missing a blog? Tell us

Top all-time · #704

M

Mike Hadlow

Personal blog · mikehadlow.blogspot.comprogrammingcareer

Mike Hadlow writes Code rant, a personal blog at mikehadlow.blogspot.com about programming and career. Since 2008, 91 different Hacker News readers have linked it 106 times, most often “Configuration Complexity Clock (2012)”. The last post was in 2021, but the archive is still widely read.

Visit the blog
106mentions?
6recommend?
91HN people?
2008–2026first – last linked?
Links on Hacker News per year · peak 15 in 2018

Sometimes recommended · 6 of 40 sampled comments recommend it?

Why HN links it

HN readers link Mike Hadlow's blog for named software-design ideas, such as the Configuration Complexity Clock and the Lava Layer anti-pattern, and his critique of using a database as a queue.

Recommended for · 6 comments
Called 'a great post', 'one of my favorite rest rants', 'always valuable' and 'has some good points'.

Summarised by Claude from a sample of 40 HN comments that link here. Each comment is marked recommending, critical or neutral (citing without judging); how this works.

Life as a mort.

Most-linked posts?

  1. Configuration Complexity Clock (2012)
    22 people · 24 mentions · first linked 2016-02-03
  2. The Configuration Complexity Clock
    17 people · 20 mentions · first linked 2017-05-09
  3. The Lava Layer Anti-Pattern
    10 people · 11 mentions · first linked 2014-12-16
  4. The Database As Queue Anti-Pattern
    5 people · 5 mentions · first linked 2012-04-27
  5. Visual Programming – Why It’s a Bad Idea
    5 people · 5 mentions · first linked 2018-10-01
  6. Are Your Programmers Working Hard, or Are They Lazy?
    3 people · 3 mentions · first linked 2015-09-07
  7. /2012/05/configuration-complexity-clock.html?m=1
    3 people · 3 mentions · first linked 2022-07-15
  8. Coconut Headphones: Why Agile Has Failed (2014)
    3 people · 3 mentions · first linked 2014-03-18
  9. Decoupling, Architecture and Teams
    2 people · 2 mentions · first linked 2018-11-06
  10. The Lava Layer Anti-Pattern (2014)
    2 people · 2 mentions · first linked 2018-04-12

What Hacker News says?

  1. http://mikehadlow.blogspot.com/2012/04/database-as-queue-ant...

    Comment linking /2012/04/database-as-queue-anti-pattern.html

    on “System design hack: Postgres is a great pub/sub and job server”
  2. Submitted The Lava Layer Anti-Pattern as a story · 181 points

    HN discussion
  3. no. he/she actually has a point. a database is not a queue https://mikehadlow.blogspot.com/2012/04/database-as-queue-an...

    Comment linking /2012/04/database-as-queue-anti-pattern.html?m=1

    on “Do you really need Redis? How to get away with just PostgreSQL”
  4. Submitted Learn to Code, It's Harder Than You Think as a story · 171 points

    HN discussion
  5. > The problem with that is making a configuration engine is a lot less efficient than just writing the code to do the damn thing. http://mikehadlow.blogspot.com/2012/05/configuration-complex... It took me a solid decade to accept these lessons. I cannot build a product that even remotely competes with things like Visual Studio and .NET tooling. How many hours would it take a solo developer to recreate a debugger exp…

    Comment linking /2012/05/configuration-complexity-clock.html

    on “Writing toy software is a joy”
  6. Submitted The Lava Layer Anti-Pattern (2014) as a story · 106 points

    HN discussion
  7. e28eta · 2018-04-12Recommends
    I really enjoyed the Lava Layer antipattern for incremental refactors that never complete. Having learned to recognize it, I think I'm more aware of the cost/benefit of introducing a new pattern, even if it's better in some way. http://mikehadlow.blogspot.com/2014/12/the-lava-layer-anti-p...

    Comment linking /2014/12/the-lava-layer-anti-pattern.html

    on “A Taxonomy of Technical Debt”
  8. Submitted Visual Programming – Why It’s a Bad Idea as a story · 95 points

    HN discussion
  9. Any configuration will eventually become a programming language. See The Configuration Complexity Clock. https://mikehadlow.blogspot.com/2012/05/configuration-comple...

    Comment linking /2012/05/configuration-complexity-clock.html

    on “YAML: probably not so great after all (2017)”
  10. Submitted Coconut Headphones: Why Agile Has Failed (2014) as a story · 71 points

    HN discussion
  11. Just a heads up that I also blogged about the making of Guitar Dashboard: http://mikehadlow.blogspot.com/2018/09/what-i-learned-creati...

    Comment linking /2018/09/what-i-learned-creating-guitar.html

    on “Show HN: Guitar Dashboard – Open source music theory explorer for guitarists”
  12. Submitted The Configuration Complexity Clock as a story · 67 points

    HN discussion
  13. What makes it a nightmare to manage? My guess is it's all about how you do the declarative config, that fight is age old: http://mikehadlow.blogspot.com/2012/05/configuration-complex...

    Comment linking /2012/05/configuration-complexity-clock.html

    on “Sovereign: Ansible playbooks to build and maintain your own private cloud”
  14. Submitted Configuration Complexity Clock (2012) as a story · 51 points

    HN discussion
  15. Relevant article (2012): http://mikehadlow.blogspot.com/2012/05/configuration-complex...

    Comment linking /2012/05/configuration-complexity-clock.html

    on “Why are we templating YAML? (2019)”
  16. Submitted The Configuration Complexity Clock (2012) as a story · 45 points

    HN discussion
  17. I was with you up until your last sentence. pip and virtualenv are hacky kludges that grew legs and lungs, that's how old python's issues around deployment are, there's an era before pip and virtualenv. There should be an abstraction for it (deployment, versions, import hacking) like what pathlib did for file path manipulation. We have a classic lava-flow pattern. http://mikehadlow.blogspot.com/2014/12/the-lava-laye…

    Comment linking /2014/12/the-lava-layer-anti-pattern.html

    on “Hypermodern Python”
  18. Submitted Are Your Programmers Working Hard, or Are They Lazy? as a story · 37 points

    HN discussion
  19. jasoncabot · 2022-01-13Recommends
    This reminds me of a great post about the typical software evolution going from hard coded values, through configuration and rules engines to a DSL, only to be back where you started. I have seen it happen on multiple projects, it’s hard to spot it at the time as all the changes seem sensible but hindsight is a wonderful thing http://mikehadlow.blogspot.com/2012/05/configuration-complex...

    Comment linking /2012/05/configuration-complexity-clock.html

    on “Dear sir, you have built a compiler”
  20. Submitted Heisenberg Developers (2014) as a story · 26 points

    HN discussion
  21. gfody · 2025-07-09Recommends
    op's article could've been plucked from 2012 - this is one of my favorite rest rants from 2012: https://mikehadlow.blogspot.com/2012/08/rest-epic-semantic-f... ..that was written before swagger/openAPI was a thing. now there's a real spec with real adoption and real tools and folks can let the whole rest-epic-semantic-fail be an early chapter of web devs doing what they do (like pointing at remotely relevant academi…

    Comment linking /2012/08/rest-epic-semantic-fail.html

    on “Most RESTful APIs aren't really RESTful”
  22. Submitted The Configuration Complexity Clock (2012) as a story · 14 points

    HN discussion
  23. > Yeah, I think it's because nobody sat down and methodically created it. I think it's the opposite. There isn't a single config file that suits all needs. Especially when you realize config isn't a single thing. http://mikehadlow.blogspot.com/2012/05/configuration-complex...

    Comment linking /2012/05/configuration-complexity-clock.html?m=1

    on “I accidentally used YAML.parse instead of JSON.parse and it worked”
  24. Submitted C#: Program Entirely with Static Methods as a story · 8 points

    HN discussion
  25. I have heard it said many times that it is a bad idea to implement message queues over a relational SQL database. e.g. "Databases suck for Messaging" https://www.rabbitmq.com/resources/RabbitMQ_Oxford_Geek_Nigh... http://mikehadlow.blogspot.com/2012/04/database-as-queue-ant... https://www.cloudamqp.com/blog/2015-11-23-why-is-a-database-... https://softwareengineering.stackexchange.com/questions/3514... I wonder if t…

    Comment linking /2012/04/database-as-queue-anti-pattern.html

    on “Message DB: Event Store and Message Store for PostgreSQL”
  26. Submitted Are Your Programmers Working Hard, or Are They Lazy? as a story · 6 points

    HN discussion
  27. I think it's better to put in terms of trade-offs, rather than "this is better than that". https://mikehadlow.blogspot.com/2012/05/configuration-comple... (I use NixOS btw).

    Comment linking /2012/05/configuration-complexity-clock.html

    on “Nix: An idea whose time has come”
  28. Submitted The Lava Layer Anti-Pattern as a story · 5 points

    HN discussion
  29. Classic Lava-layer development anti-pattern http://mikehadlow.blogspot.com/2014/12/the-lava-layer-anti-p...

    Comment linking /2014/12/the-lava-layer-anti-pattern.html

    on “State of JavaScript 2021”
  30. Submitted Heisenberg Developers: Observing developers alters their behavior as a story · 5 points

    HN discussion

Search all of HN for mikehadlow.blogspot.com

Linked by the same people?