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

Top all-time · #3813

K

Kevin Mahoney

Personal blog · kevinmahoney.co.uk/articles · on HN as kpmahprogrammingdesign

Kevin Mahoney's personal blog at kevinmahoney.co.uk covers programming and design. Since 2014, 20 different Hacker News readers have linked it 42 times, most often “Applying “make invalid states unrepresentable””. It is still writing: the last post was on 2026-08-25, and you can follow it by feed.

Visit the blog
42mentions?
20HN people?
2014–2026first – last linked?
Links on Hacker News per year · peak 10 in 2020

Too few sampled comments (3) to say how often HN recommends it.?

Why HN links it

HN readers link Kevin Mahoney's article 'Tests vs Types', which commenters cite on how type systems give guarantees that testing alone does not, and on types replacing classes of tests.

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

Personal homepage of Kevin Mahoney

The author on HN?

kpmah · 509 karma · member since 2013

http://kevinmahoney.co.uk

From their public HN profile, which links to this site.

Most-linked posts?

  1. Applying “make invalid states unrepresentable”
    3 people · 4 mentions · first linked 2020-10-03
  2. OCellator: Lisp-Like Synth Language
    3 people · 3 mentions · first linked 2020-07-28
  3. Tests vs. Types
    3 people · 3 mentions · first linked 2016-02-13
  4. Database Design: Immutable Data
    2 people · 3 mentions · first linked 2016-09-17
  5. Consistency is Consistently Undervalued
    2 people · 2 mentions · first linked 2016-09-17
  6. Gut Driven Development
    2 people · 2 mentions · first linked 2017-04-12
  7. My Principles for Building Software
    2 people · 2 mentions · first linked 2020-09-18
  8. An Immutable Blog Application in PostgreSQL
    2 people · 2 mentions · first linked 2020-11-08
  9. Show HN: Structural Editor Prototype
    2 people · 2 mentions · first linked 2014-10-29
  10. My Principles for Building Software (2020)
    2 people · 2 mentions · first linked 2023-07-12

What Hacker News says?

  1. I wrote a little article, which has been posted here before, that shows the power of different type systems and what kind of bugs you can expect to prevent: http://kevinmahoney.co.uk/articles/tests-vs-types/

    Comment linking /articles/tests-vs-types/

    on “Types”
  2. Submitted Applying “make invalid states unrepresentable” as a story · 375 points

    HN discussion
  3. This spreadsheet-style functional programming is quite similar to a (very limited) prototype I wrote a while ago: https://kevinmahoney.co.uk/ocell/#example/polynomial.json

    Comment linking /ocell/

    on “Microsoft Power Fx – A low-code general purpose programming language”
  4. Submitted Consistency is Consistently Undervalued as a story · 220 points

    HN discussion
  5. http://kevinmahoney.co.uk/articles/tests-vs-types/

    Comment linking /articles/tests-vs-types/

    on “The Little Typer (2018)”
  6. Submitted Tests vs. Types as a story · 61 points

    HN discussion
  7. Not sure how much this will help, but a couple of years ago I wrote about using event sourcing for a simple blog application in PostgreSQL: http://kevinmahoney.co.uk/articles/immutable-data/ I wasn't aware of the term 'event sourcing' at the time though.

    Comment linking /articles/immutable-data/

    on “What do you mean by “Event-Driven”?”
  8. Submitted Gut Driven Development as a story · 56 points

    HN discussion
  9. I'm not actually that familiar with event sourcing. I'd be interested in reading more if you have a pointer to some resources! Edit: I wasn't familiar with the terminology, but it sounds like what I have written about here: http://kevinmahoney.co.uk/articles/immutable-data/

    Comment linking /articles/immutable-data/

    on “Consistency is Consistently Undervalued”
  10. Submitted Log Orientated Architecture in PostgreSQL as a story · 12 points

    HN discussion
  11. You should be testing regardless of the strength of your type system. But testing with a weak type system isn't going to give you anywhere near the guarantees you'd get from a well-designed type system in addition to testing: https://kevinmahoney.co.uk/articles/tests-vs-types/

    Comment linking /articles/tests-vs-types/

    on “How an Anti-TypeScript “JavaScript developer” like me became a TypeScript fan”
  12. Submitted Your Database as an API as a story · 5 points

    HN discussion
  13. Location: Belgium Remote: Yes Willing to relocate: Maybe Amsterdam next year Technologies: Python, Ruby. Would love to work with something more functional. CV: http://kevinmahoney.co.uk Email: kevin@kevinmahoney.co.uk

    Comment linking /

    on “Ask HN: Who wants to be hired? (April 2016)”
  14. Submitted OCellator: Lisp-Like Synth Language as a story · 4 points

    HN discussion
  15. SEEKING WORK: Remote (UK citizen, in Belgium currently) 8 years experience. I like a lot of different languages, but I've mainly worked with Ruby and Python. http://kevinmahoney.co.uk

    Comment linking /

    on “Ask HN: Freelancer? Seeking freelancer? (June 2016)”
  16. Submitted AI Review Loops Don't Always Stabilise as a story · 3 points

    HN discussion
  17. Types replace entire classes of tests that coverage metrics wouldn't detect [0]. Types are also documentation! They also decrease the degrees of freedom LLMs have to make mistakes [1]. [0] https://kevinmahoney.co.uk/articles/tests-vs-types/ [1] https://john.regehr.org/writing/zero_dof_programming.html

    Comment linking /articles/tests-vs-types/

    on “Elixir v1.20 released: now a gradually typed language”
  18. Submitted Applying “Make Invalid States Unrepresentable” as a story · 3 points

    HN discussion
  19. I also experiment a lot with structural editing. My latest project is an editor for a lisp-like language for building small audio synth programs: http://kevinmahoney.co.uk/ocellator/ Hazel looks fantastic - I don't think I've come across it before. I think an obstacle structural editors have to becoming more widely adopted is that they start out very general and don't immediately solve a problem that people have. Yo…

    Comment linking /ocellator/

    on “Hazel: A live functional programming environment featuring typed holes”
  20. Submitted My Principles for Building Software as a story · 3 points

    HN discussion
  21. I made a little Knuth/Plass experiment using canvas and opentype.js here: http://kevinmahoney.co.uk/document-experiment/ I find pagination much easier to read than scrolling.

    Comment linking /document-experiment/

    on “Knuth and Plass line-breaking Revisited”
  22. Submitted Tools for Change as a story · 3 points

    HN discussion
  23. Submitted Structural Editor and Thoughts on PureScript as a story · 3 points

    HN discussion
  24. Submitted Show HN: Structural Editor Prototype as a story · 3 points

    HN discussion
  25. Submitted Applying "Make Invalid States Unrepresentable" (2020) as a story · 2 points

    HN discussion
  26. Submitted My Principles for Building Software (2020) as a story · 2 points

    HN discussion
  27. Submitted Immutable Data as a story · 2 points

    HN discussion
  28. Submitted Database as an API as a story · 2 points

    HN discussion
  29. Submitted An Immutable Blog Application in PostgreSQL as a story · 2 points

    HN discussion
  30. Submitted Microservices and Availability as a story · 2 points

    HN discussion

Search all of HN for kevinmahoney.co.uk

Linked by the same people?