Professional insights and DIY projects from 34 years in software engineering.
Software Development Engineer III at AWS โข Open Source SDE โข Eclipse Foundation Contributor โข 3 Patents โข PNW Silicon Forest
Professional insights and DIY projects from 34 years in software engineering.
Software Development Engineer III at AWS โข Open Source SDE โข Eclipse Foundation Contributor โข 3 Patents โข PNW Silicon Forest

On July 4, 2026, the United States turns 250. The formal name for a 250th anniversary is the Semiquincentennial; the shorthand everyone is using is America250. Either way, it marks a quarter-millennium since the Continental Congress adopted the Declaration of Independence in Philadelphia. I wanted to mark the occasion with something more durable than fireworks. This is a watch list. It is not a โgreatest hits of patriotismโ reel. It is a guided tour through one specific question. Why did thirteen British colonies decide they needed to become their own country? It was not inevitable. For most of the 1760s and early 1770s, the colonists wanted their rights restored within the empire, not a new nation. Something changed. This list is about what. ...
Building a DIY propane pool heating system to heat a 4,400 gallon above ground pool from 68ยฐF to 85ยฐF using a tankless water heater and submersible pump.
Details about the Intex above ground pool setup including padding, dimensions, and skimmer installation for the DIY propane heating project.
Comprehensive shopping list for building a DIY propane pool heater, including tankless water heater, submersible pump, hoses, filters, and all necessary components with Amazon links.
Step-by-step instructions for assembling and testing the DIY propane pool heater system, including water connections, propane setup, and safety testing procedures.
Daily operation procedures and maintenance schedule for the DIY propane pool heater system, including startup/shutdown procedures and troubleshooting tips.
Unexpected wildlife visitors to our DIY pool heater setup, including raccoon encounters that led to equipment damage and important lessons about protecting outdoor equipment.
I see human code reviews as one tool in the quality toolbox. My opinion is that to keep code reviews interesting and engaging, humans should be the last link in the chain and get the most interesting problems. What I mean is that if the code review is burdened with pointing out that an opened resource was not closed or that a specific path through the code will never happen, code reviews become draining and boring. I also believe that code reviews need to scale up to teams that are not co-located. That might mean using an asynchronous process, like a workflow system or using collaboration tools to do the code review through teleconferences and screen sharing. A workflow system can prevent code from promotion into the mainline build until one or more reviewers have accepted it. To keep the code reviews interesting and challenging, I give the grunt work to the machines and use static analysis and profiling tools first. Before you can involve the humans, your code needs to pass the suite of static analysis tests at the prescribed level. This will weed out all the typical mistakes that are larger than what a compiler finds. There are many analysis and profiling tools available in open source and commercially. Most of my development work is in server-side Java, and my analysis tools of choice are FindBugs, PMD and the profiling tool in Rational Software Architect. FindBugs is a byte code analyzer, so it looks at what the Java compiler produces and is less concerned with the form of source code. PMD analyzes source code. Both tools have configurable thresholds for problem severity and they can accept custom problem patterns. PMD has a big library of problem patterns, including things like overly complex or long functions or methods. The RSA profiling tool only tests timing down to the method level of classes. It can quickly help a developer focus on where the sluggish parts of a system are hiding, which is valuable information going into a review. Once the code makes it through this array of automated tests, bring the humans in to look at it and get their input. I have found this approach in our case changes the review from a potentially adversarial situation into one with an educational tone. The review meeting, if it happens synchronously, is not overtaken by the small problems and pointing out basic mistakes. It is concerned with making recommendations at a higher level to improve the larger design. FindBugs, U. of Maryland, http://findbugs.sourceforge.net/ PMD, SourceForge, http://pmd.sourceforge.net/ Rational Software Architect for WebSphere Software, http://www-01.ibm.com/software/awdtools/swarchitect/websphere/
Here are links to my official AWS certification records. AWS Certified Developer - Associate AWS Certified Architect - Associate
Eventually, this unique ID will be indexed by the various search engines on the Internet. My dog is not lost, but I see this as a form of insurance in case he ever does go on walkabout without my permission.