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 · #1342

T

Ted Kaminski

Personal blog · tedinski.comprogrammingdesign

Ted Kaminski's personal blog at tedinski.com covers programming and design. Since 2018, 52 different Hacker News readers have linked it 65 times, most often “'Function Coloring'”. The last post was in 2019, but the archive is still widely read.

Visit the blog
65mentions?
6recommend?
52HN people?
2018–2026first – last linked?
Links on Hacker News per year · peak 17 in 2018

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

Why HN links it

Ted Kaminski's essays critiquing software engineering practice, such as function colouring, the expression problem, concurrency models and SOLID. HN readers link them as recommended reading on design and async.

Recommended for · 6 comments
Called the best description of the expression problem one commenter has seen; a nice critique of SOLID; quite golden for general software design; healthy critic

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

Ted Kaminski's blog

Most-linked posts?

  1. 'Function Coloring'
    4 people · 5 mentions · first linked 2023-01-16
  2. The one ring problem: abstraction and our quest for power (2018)
    4 people · 4 mentions · first linked 2021-09-11
  3. Programmer as wizard, programmer as engineer (2018)
    3 people · 4 mentions · first linked 2019-01-01
  4. Design duality and the expression problem (2018)
    3 people · 3 mentions · first linked 2019-01-30
  5. Data, objects, and how we're railroaded into poor design (2018)
    3 people · 3 mentions · first linked 2021-09-30
  6. Fuzzing vs. Property Testing
    2 people · 3 mentions · first linked 2019-06-19
  7. How did we end up with containers?
    2 people · 3 mentions · first linked 2018-04-05
  8. Notes on the expression problem and type design (2018)
    2 people · 2 mentions · first linked 2024-06-14
  9. Backpressure (2019)
    2 people · 2 mentions · first linked 2021-04-14
  10. What would OOP without inheritance look like?
    2 people · 2 mentions · first linked 2020-06-05

What Hacker News says?

  1. Sure, I mean more like there'd be some interface ByteStream, and probably another interface TerminalInput extends ByteStream; TerminalInput would then contain the especially terminal-related signals (e.g. sigwinch). If a program doesn't declare that it wants a full TerminalInput for stdin, the sigwinches would be dropped. If it declares it wants one but the environment can't provide one (e.g. stdin is closed, stdin…

    Comment linking /2018/02/20/an-oo-language-without-inheritance.html

    on “The Beauty of Unix Pipelines”
  2. Submitted What can we learn from how compilers are designed? as a story · 225 points

    HN discussion
  3. This is yet another example of the divide between wizarding and engineering[1]. When you're a small startup, what matters is the expressiveness of your language, and the ability do do a lot of things very very quickly. Type safety, performance, readability, those things don't matter. You're just a bunch of engineers who know the whole codebase inside out, you're pretty certain of what you're doing. In short, you're…

    Comment linking /2018/03/20/wizarding-vs-engineering.html

    on “Python at Scale: Strict Modules”
  4. Submitted Programmer as wizard, programmer as engineer (2018) as a story · 166 points

    HN discussion
  5. The big one for me: how strongly do you equate "programming" with "engineering", and to what extent do you value other approaches (in the spirit of [1])? To what extent are ways of working circumscribed by tooling choices? "What are you selling?" (and is it something I can believe in) is pretty important too. [1] https://www.tedinski.com/2018/03/20/wizarding-vs-engineering...

    Comment linking /2018/03/20/wizarding-vs-engineering.html

    on “Ask HN: Top three questions for a startup before accepting a job offer?”
  6. Submitted How did we end up with containers? as a story · 133 points

    HN discussion
  7. 1. An anonymous poaster in an image board who was very very passionate about SWE to such a degree it made me passionate about it too. 2. https://www.tedinski.com/archive/

    Comment linking /archive/

    on “Ask HN: Name 3-5 books that had the most impact on your career and knowledge?”
  8. Submitted Types are a basic tool of software design (2018) as a story · 103 points

    HN discussion
  9. You need just the right amount of expressivity in a language, so that it is hard to abuse, but still allows writing easy to use libraries. Java has went over this evolution, implemented generics, lambdas, etc and I believe it strikes a very good balance in not being overly complex (just look at the spec - it's still a very small language, compared to its age, unlike C++ or C#). Go tried to re-invent this evolution,…

    Comment linking /2018/01/30/the-one-ring-problem-abstraction-and-power.html

    on “Strings Just Got Faster”
  10. Submitted Data, objects, and how we're railroaded into poor design (2018) as a story · 97 points

    HN discussion
  11. With the advent of coverage based fuzzing, and how well supported it is in Go, what am I missing from not using one of the property based testing libraries? https://www.tedinski.com/2018/12/11/fuzzing-and-property-tes... Like, with the below fuzz test, and the corresponding invariant checks, isn't this all but equivalent to property tests? https://github.com/ncruces/aa/blob/505cbbf94973042cc7af4d6be... https://githu…

    Comment linking /2018/12/11/fuzzing-and-property-testing.html

    on “The sad state of property-based testing libraries”
  12. Submitted Backpressure (2019) as a story · 72 points

    HN discussion
  13. I had the same opinion with async/await, that it's nice to know a function performs IO and will wait before continuing. Makes it clearer when to use Promise.all to make multiple requests in parallel and wait for all of them to finish before continuing (faster than making calls sequentially). I kind of wish the languages I use had Haskell's IO monad too, to separate functions in terms of the type system, but that's s…

    Comment linking /2018/11/13/function-coloring.html

    on “Ruby methods are colorless”
  14. Submitted Fuzzing vs. Property Testing as a story · 62 points

    HN discussion
  15. chriswarbo · 2019-01-30Recommends
    > It is quite well studied and solved in various languages I wouldn't say the expression problem is "solved"; various languages pick different tradeoffs, but the underlying problem is still there. The best description I've seen of this is at https://www.tedinski.com/2018/02/27/the-expression-problem.h...

    Comment linking /2018/02/27/the-expression-problem.html

    on “When FP? And When OOP? (2013)”
  16. Submitted Design Follows Data Structures as a story · 34 points

    HN discussion
  17. dzjkb · 2026-04-21Recommends
    here's a nice critique of SOLID principles: https://www.tedinski.com/2019/04/02/solid-critique.html

    Comment linking /2019/04/02/solid-critique.html

    on “Laws of Software Engineering”
  18. Submitted Design duality and the expression problem (2018) as a story · 14 points

    HN discussion
  19. oxff · 2022-05-14Recommends
    Writing a toy compiler, the entire pipeline end-to-end, for a language no matter how small. I can't think of another exercise that covers so many good issues to solve, and good practices for solving them. The two I like to recommend are: - PLAI: https://cs.brown.edu/courses/cs173/2012/book/ - Essentials of Compilation: https://wphomes.soic.indiana.edu/jsiek/ For general software design, this blog is quite golden: ht…

    Comment linking /archive/

    on “Ask HN: How did you learn good program design?”
  20. Submitted 'Function Coloring' as a story · 6 points

    HN discussion
  21. See also: https://www.tedinski.com/2018/11/06/concurrency-models.html which is the first article I've ever seen that says that `m:n`-style-green-threads are bad and good at the same time. TL;DR - he says that "doParallel" and "doConcurrently" are separate operations with distinct semantics that designers of programs must care about and that conflating the two (especially the common "doConcurrently-and-often-but-not-…

    Comment linking /2018/11/06/concurrency-models.html

    on “The Rust I wanted had no future”
  22. Submitted The end-to-end principle in distributed systems as a story · 4 points

    HN discussion
  23. oxff · 2022-07-20Recommends
    https://www.tedinski.com/archive/ healthy criticism of common software engineering practices, with very helpful practical ideas to use in your own design / engineering.

    Comment linking /archive/

    on “Ask HN: Which book/subject you wish you had early on in your programming career?”
  24. Submitted Data, objects, and how we're railroaded into poor design as a story · 3 points

    HN discussion
  25. ktpsns · 2023-01-16Recommends
    I guess there is no easy answer for that. Here is an interesting blog post which resembles closely my opinion: https://www.tedinski.com/2018/11/13/function-coloring.html Edit: And of course there are alternatives such as Go or Zig: https://kristoff.it/blog/zig-colorblind-async-await/

    Comment linking /2018/11/13/function-coloring.html

    on “Improving Async Networking in Python”
  26. Submitted System boundaries and the Linux kernel as a story · 3 points

    HN discussion
  27. zogrodea · 2023-11-21Recommends
    Others have mentioned having the same problem with this issue. One post I particularly like about the subject is this one on function colouring (how lagnuages with async/await syntax have a similar "infection"; this is a response to the original post on function colouring and not the original post). https://www.tedinski.com/2018/11/13/function-coloring.html

    Comment linking /2018/11/13/function-coloring.html

    on “a thread”
  28. Submitted Decontructing the “Unix philosophy” as a story · 3 points

    HN discussion
  29. Submitted Deconstructing the “Unix philosophy” as a story · 3 points

    HN discussion
  30. Submitted The one ring problem: abstraction and our quest for power (2018) as a story · 2 points

    HN discussion

Search all of HN for tedinski.com

Linked by the same people?