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

B

Benji Weber

Personal blog · benjiweber.co.uk/blogprogrammingcareer

Benji Weber writes XP, a personal blog at benjiweber.co.uk about programming and career. Since 2011, 22 different Hacker News readers have linked it 60 times, most often “Why I Strive to be a 0.1x Engineer”. The last post was in 2020, but the archive is still widely read.

Visit the blog
60mentions?
22HN people?
2011–2025first – last linked?
Links on Hacker News per year · peak 12 in 2015

"Uncovering Better Ways" "Don't hire top talent; hire for weaknesses" "Escape the Permission Trap with Healthy Habits" "Meetings, ugh! Let's change our Language" …

Most-linked posts?

  1. Why I Strive to be a 0.1x Engineer
    4 people · 4 mentions · first linked 2016-01-25
  2. Java 16 Pattern Matching Fun
    3 people · 3 mentions · first linked 2021-03-16
  3. I strive to be a 0.1x Engineer (2016)
    3 people · 3 mentions · first linked 2019-03-06
  4. /blog/2020/09/19/fun-with-java-records/
    2 people · 2 mentions · first linked 2021-01-23
  5. Modern Extreme Programming
    2 people · 2 mentions · first linked 2015-04-21
  6. Don’t hire top talent; hire for weaknesses
    2 people · 2 mentions · first linked 2021-04-10
  7. Engineering Team Lessons from Cycling
    2 people · 2 mentions · first linked 2023-10-17

What Hacker News says?

  1. Lots of shiny new toys to play with :) I like playing with new features and pushing to silly limits. Here's some fun things you can do now: Compiletime checked state machines with Sealed Classes [preview feature] https://benjiweber.co.uk/blog/2020/10/03/sealed-java-state-m... Autobuilders, Mixins, Conversions & more with Records https://benjiweber.co.uk/blog/2020/09/19/fun-with-java-recor... Pattern Matching fun htt…

    Comment linking /blog/2021/03/14/java-16-pattern-matching-fun/

    on “Java 16”
  2. Submitted Why I Strive to be a 0.1x Engineer as a story · 445 points

    HN discussion
  3. There are some funny ways to work with records. I can recommend this article: https://benjiweber.co.uk/blog/2020/09/19/fun-with-java-recor...

    Comment linking /blog/2020/09/19/fun-with-java-records/

    on “Java 17 / JDK 17: General Availability”
  4. Submitted Don’t hire top talent; hire for weaknesses as a story · 280 points

    HN discussion
  5. Good read. Reminded me of "Why I Strive to be a 0.1x Engineer" http://benjiweber.co.uk/blog/2016/01/25/why-i-strive-to-be-a...

    Comment linking /blog/2016/01/25/why-i-strive-to-be-a-0-1x-engineer/

    on “You Are Not Paid to Write Code”
  6. Submitted Cost of Attrition as a story · 255 points

    HN discussion
  7. A lot of the things you can do with LINQ you can do in Java now there are lambdas and method references. e.g. http://benjiweber.co.uk/blog/2013/12/28/typesafe-database-in... Properties you could simulate with lambdas now. something like Property<String> name = get(() -> name).set(name -> this.name = name); You would lose all the existing framework support that assumes getters and setters doing that though. Some of t…

    Comment linking /blog/2013/12/28/typesafe-database-interaction-with-java-8/

    on “JDK 8 Release Notes”
  8. Submitted Modern Extreme Programming as a story · 166 points

    HN discussion
  9. You can always do something like this http://benjiweber.co.uk/blog/2014/03/20/c-style-properties-i... Although I prefer not using getters & setters at all.

    Comment linking /blog/2014/03/20/c-style-properties-in-java/

    on “Java 9 features announced”
  10. Submitted I strive to be a 0.1x Engineer (2016) as a story · 126 points

    HN discussion
  11. https://benjiweber.co.uk/blog/2015/04/17/modern-extreme-prog... XP teams, with pair and mob programming. Spacious team areas with big TVs for coding in pairs or mobs. 20% time for learning and to foster bottom-up innovation https://benjiweber.co.uk/blog/2018/01/29/gold-cards/ Worth noting all these practices can be done remotely too https://cucumber.io/blog/2018/06/20/inclusive-benefits-of-mo... Also notable what wa…

    Comment linking /blog/2018/01/29/gold-cards/

    on “Ask HN: What company environment has enabled your best work?”
  12. Submitted Representing the Impractical and Impossible with JDK 10 “var” as a story · 105 points

    HN discussion
  13. > I really feel its time for Python 3 to freeze language features. This PEP and the previous walrus operator fiasco feel like people trying to morph Python into something that it isn't with one kludge after another. This will not lead to a robust language, but instead another Perl 5 monstrosity of complexity. I disagree entirely. This is how Python will be left behind. It needs to be able to compete with languages t…

    Comment linking /blog/2021/03/14/java-16-pattern-matching-fun/

    on “PEP 563, PEP 649 and the future of pydantic and FastAPI”
  14. Submitted Typesafe database interaction with Java 8 as a story · 45 points

    HN discussion
  15. There has been significant progress though. Especially since the 6 month release cycle. Lots you can do with Records now https://benjiweber.co.uk/blog/2020/09/19/fun-with-java-recor...

    Comment linking /blog/2020/09/19/fun-with-java-records/

    on “Java 1.0 Turns 25”
  16. Submitted Monitoring-Driven Development as a story · 42 points

    HN discussion
  17. I think if we changed the way we talk about meetings, schedules, work etc we could improve a lot of things. https://benjiweber.co.uk/blog/2021/02/06/meetings-ugh-lets-c...

    Comment linking /blog/2021/02/06/meetings-ugh-lets-change-our-language/

    on “Stop Swiss Cheesing your calendar”
  18. Submitted Tragedy of return to hostile offices as a story · 32 points

    HN discussion
  19. By using a DI framework to wire up constructors you tend to use the compile-time checking that your app is wired correctly. Which is unfortunate. You only find out when you try to run it. Perhaps things being too big to wire together manually is a smell that the application is getting rather large. There are also other patterns that can be used to make manual dependency injection less of a pain. I wrote about some o…

    Comment linking /blog/2014/09/13/frameworkless-dependency-injection/

    on “Better Java – Resources for Writing Modern Java”
  20. Submitted Learning from Pain as a story · 30 points

    HN discussion
  21. You can create immutable "builder" with lambda chains. This also gives you the compiletime guarantee that you have specified the required fields (At the cost of flexibility and ease of adding new fields) http://benjiweber.co.uk/blog/2014/11/02/builder-pattern-with... Regarding your isPrefixOf - is there a significant benefit to that being in the standard library? You could define a isPrefixedWith("s") that returns a…

    Comment linking /blog/2014/11/02/builder-pattern-with-java-8-lambdas/

    on “Better Java – Resources for Writing Modern Java”
  22. Submitted Overcoming Resistance to Extreme Programming as a story · 26 points

    HN discussion
  23. Database schema changes can almost always be moved forward in a always safe manner using expand-contract pattern http://martinfowler.com/bliki/ParallelChange.html As for reducing the risk of damage to the data itself from badly behaved application code, I think the best approach is to design your architecture such that you can't lose important data. There are various other techniques than can help. I wrote about som…

    Comment linking /blog/2015/03/21/minimising-the-risk-of-data-damage/

    on “How We Release So Frequently”
  24. Submitted Thinking in Questions with SQL as a story · 4 points

    HN discussion
  25. You're right, c# does to some extent. On balance I do agree with you, and prefer the set of c# features. Just to clarify - I was thinking of things like this class Example { public static void Main() { Predicate<String> foo = Foo<String>(s => s.Contains("foo")); } static Predicate<T> Foo<T>(Predicate<T> p) { return p; } } I can't replace Foo<String> with just Foo on the right hand side on the 3rd line. I could, howe…

    Comment linking /blog/2014/11/02/builder-pattern-with-java-8-lambdas/

    on “Understanding .NET 2015”
  26. Submitted A little rant about talent as a story · 3 points

    HN discussion
  27. There are other ways in Java http://benjiweber.co.uk/blog/2014/05/03/pattern-matching-in-... http://benjiweber.co.uk/blog/2014/08/26/deep-pattern-matchin...

    Comment linking /blog/2014/08/26/deep-pattern-matching-in-java/

    on “Interface Upgrades in Go”
  28. Submitted I Strive to Be a 0.1x Engineer as a story · 3 points

    HN discussion
  29. Checked exceptions are so equivalent you can just translate between the two styles http://benjiweber.co.uk/blog/2014/03/22/checked-exceptions-a...

    Comment linking /blog/2014/03/22/checked-exceptions-and-streams/

    on “Error handling in Rust”
  30. Submitted Why I Strive to be a 0.1x Engineer (2016) as a story · 3 points

    HN discussion

Search all of HN for benjiweber.co.uk

Linked by the same people?