The Curious Engineer

All blogs / Software / engineering practice

Benji's Blog

benjiweber.co.uk/blog

Software / engineering practiceJava / JVMEngineering management / careers

Posts
92 from 2 Sep 2008 to 14 Jul 2025
Posting
now and then
Kind
personal blog
Feed
https://benjiweber.co.uk/blog/feed/

2025 2

  1. Teamwork & XP in the era of Genies
  2. Overcoming Resistance to Extreme Programming

2023 3

  1. Tragedy of Return to Hostile Offices
  2. Engineering Team Lessons from Cycling
  3. One does not simply deliver software

2022 4

  1. Do you need a Strong Leader?
  2. Supporting Sustainability
  3. Pondering Agile Principles
  4. Cost of Attrition

2021 10

  1. Uncovering Better Ways
  2. Don’t hire top talent; hire for weaknesses.
  3. Escape the Permission Trap with Healthy Habits
  4. Thinking in Questions with SQL
  5. Leadership Language Lessons from Star Trek
  6. Java 16 Pattern Matching Fun
  7. We got lucky
  8. Revisiting Html in Java
  9. Meetings, ugh! Let’s change our language
  10. Latency Numbers Every Team Should Know

2020 7

  1. Humility
  2. Sealed Java State Machines
  3. A little rant about talent
  4. Fun with Java Records
  5. The benefits of making code worse
  6. Reasons to hire inexperienced engineers
  7. Do you CI?

2018 6

  1. Learning from Pain
  2. The unsung upsides of staying put
  3. Hack Days; Removing the Rules
  4. End to End Tests
  5. Representing the Impractical and Impossible with JDK 10 “var”
  6. Gold Cards

2016 1

  1. Why I Strive to be a 0.1x Engineer

2015 14

  1. Team Efficiency is Irrelevant
  2. Optionally typechecked StateMachines
  3. HTML in Java
  4. Lambda parameter names with reflection
  5. Anonymous Types in Java
  6. Lambda Type References
  7. Modern Extreme Programming
  8. Minimising the Risk of Data Damage
  9. Isolating Test-Data in Production
  10. Yield Return in Java
  11. Adding toList() to Java Streams
  12. Monitoring Check Smells
  13. Work around Java “same erasure” errors with Lambdas
  14. Implicit Conversions with Identity Functions

2014 17

  1. The Unruly Mob
  2. Builder Pattern with Java 8 Lambdas
  3. Frameworkless Dependency Injection
  4. Deep Pattern Matching in Java
  5. Tuples in Java
  6. Continuous Deployment and the Unforeseeable
  7. JSON to Java Interfaces with Nashorn
  8. Pattern Matching in Java
  9. Delete your Tests
  10. Java Value Objects
  11. Java Forwarding-Interface Pattern
  12. Joins in pure-java database queries
  13. Thoughts from #pipelineconf
  14. Checked Exceptions and Streams
  15. C# style properties in Java
  16. Tools and Tradeoffs – CI Build Servers
  17. Cross-functional teams vs Software Architects

2013 8

  1. Typesafe database interaction with Java 8
  2. Null Coalescing in Java 8
  3. StrictMocks in Mockito
  4. InstanceOf “Smart Casts” with Java 8 Lambdas
  5. Try as Expression in Java 8
  6. Pair Programming
  7. JavaScript shell scripting with Nashorn
  8. JavaScript tests with JUnit

2012 7

  1. Steam on openSUSE
  2. Webpinstant – Package Name Search
  3. MultiCatch in c# and old java
  4. Webpinstant Update 1
  5. Webpinstant – Software Search
  6. Test Stubbing with Builders, Real Objects, and Caches
  7. Jammer – IRC to Yammer Bridge

2011 1

  1. Typesafe Hibernate POJO Queries without code generation

2010 3

  1. Java Abuse: Inline instanceof
  2. Netbeans on n900
  3. Java Abuse: public static void main was not invented here.

2009 6

  1. openSUSE conference – Software Portal Talk
  2. Switzerland
  3. Java Abuse – Currency Pattern
  4. Java Abuse – Ternary Try/Catch
  5. Software Portal Preview Available.
  6. Snow

2008 3

  1. openSUSE IRC – Mailing list & Bot
  2. Hackweek – Software Portal
  3. Hackweek Summary & New Blog