Top all-time · #3448
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.
"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?
- Why I Strive to be a 0.1x Engineer4 people · 4 mentions · first linked 2016-01-25
- Java 16 Pattern Matching Fun3 people · 3 mentions · first linked 2021-03-16
- I strive to be a 0.1x Engineer (2016)3 people · 3 mentions · first linked 2019-03-06
- /blog/2020/09/19/fun-with-java-records/2 people · 2 mentions · first linked 2021-01-23
- Modern Extreme Programming2 people · 2 mentions · first linked 2015-04-21
- Don’t hire top talent; hire for weaknesses2 people · 2 mentions · first linked 2021-04-10
- Engineering Team Lessons from Cycling2 people · 2 mentions · first linked 2023-10-17
What Hacker News says?
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”Submitted Why I Strive to be a 0.1x Engineer as a story · 445 points
HN discussionThere 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”Submitted Don’t hire top talent; hire for weaknesses as a story · 280 points
HN discussionGood 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”Submitted Cost of Attrition as a story · 255 points
HN discussionA 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”Submitted Modern Extreme Programming as a story · 166 points
HN discussionYou 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”Submitted I strive to be a 0.1x Engineer (2016) as a story · 126 points
HN discussionhttps://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?”Submitted Representing the Impractical and Impossible with JDK 10 “var” as a story · 105 points
HN discussion> 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”Submitted Typesafe database interaction with Java 8 as a story · 45 points
HN discussionThere 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”Submitted Monitoring-Driven Development as a story · 42 points
HN discussionI 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”Submitted Tragedy of return to hostile offices as a story · 32 points
HN discussionBy 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”Submitted Learning from Pain as a story · 30 points
HN discussionYou 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”Submitted Overcoming Resistance to Extreme Programming as a story · 26 points
HN discussionDatabase 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”Submitted Thinking in Questions with SQL as a story · 4 points
HN discussionYou'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”Submitted A little rant about talent as a story · 3 points
HN discussionThere 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”Submitted I Strive to Be a 0.1x Engineer as a story · 3 points
HN discussionChecked 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”Submitted Why I Strive to be a 0.1x Engineer (2016) as a story · 3 points
HN discussion