Java 8 just landed, and the new Stream API is the feature I keep reaching for first. Streams flip our usual loop habit on its head. Instead of telling the computer how to iterate and where to push items, we describe what we want, and Java takes care of the…
Category: Development Practices
Agile methodologies, CI/CD, DevOps, and team workflows. The processes and practices that enable teams to ship quality software efficiently.
My Favorite Thing About Java 8
Java 8 just landed and my favorite feature finally feels right for me personally. Let me skip the suspense and say it out loud: lambdas are the thing I have been craving in Java for years. We have all sculpted endless anonymous classes just to pass a tiny behavior into…
Testing Wicket UIs: Selenium and Beyond
Testing Wicket UIs sits in a weird spot. On one side you have WicketTester flying through component checks in milliseconds. On the other side you have Selenium clicking real buttons, waiting for Ajax, and catching the stuff that only shows up when a browser gets involved. If you ship forms,…
Build Pipelines for Polyglot JVM Projects
The JVM is no longer a one language town. Teams are mixing Scala services, Groovy build logic, Clojure tools, and a splash of JRuby scripts. The question is not if you can do polyglot on the JVM. You already are. The question is how your build pipeline keeps up. What…
Test Pyramid with JUnit: Fast at the Bottom, Valuable at the Top
\n We just wrapped another late night deployment. Jenkins is green again, but our UI checks took longer than the coffee line this morning. Teams keep asking the same question: how many tests is enough and where should they live. The Test Pyramid is still the best mental model I…
Secrets and Credentials: Guardrails in Jenkins
\nJenkins is awesome until it leaks a password to your console and emails it to the whole team. \nLet�s set guardrails for secrets before a stray echo prints your prod keys to the world.\n\n\n\n Secrets and Credentials in Jenkins without surprises \n\n\n\nEveryone is ramping up CI, and Jenkins is the…
ClientLibs and Front-End Pipelines in AEM
Ship small. Bundle smart. Let AEM do the heavy lifting without getting in your way. I spent the week jumping between Adobe CQ code and front end tools, and it reminded me why AEM ClientLibs are still the simplest way to keep pages quick and tidy. Grunt just hit 0.4…
Jenkins Pipelines for Real Teams
You ship when your pipeline says so. Jenkins is where that decision gets made, every single commit, without excuses.Real teams treat the pipeline like a product, not a side script that someone keeps under their desk. When people say Jenkins pipeline right now they usually mean a string of freestyle…
Testing GWT UIs: Strategies that Survive Refactors
Are your GWT UI tests snapping every time you rename a widget, shuffle a panel, or touch a UiBinder file? Do you tiptoe around refactors because your test suite is ready to throw a tantrum at the slightest change? You are not alone. Good news: you can make them stick….
The Diamond Operator Simplifies Life
I finally stopped squinting at angle brackets today, and it feels like my code exhaled. The Java diamond operator has been sitting in my editor for a while, but today it clicked for real. You know that little pair of empty brackets in new HashMap<>(). That is the one. It…