David A Good

Software engineer crafting full-stack, cloud-native solutions for enterprise. GitHub | LinkedIn | Twitter

Encapsulation and Tell, Don't Ask

November 14, 2021

Resources on the clean coding principles of Encapsulation and Tell, Don’t Ask. TellDontAsk - Martin Fowler GetterEradicator - Martin Fowler…

A Pattern for Enums in Go

September 05, 2021

I’m sure I’m not alone, being new to Go and missing first-class support for enums. I do see there’s an enum proposal for Go v2, so at…

Monolith For The Win

September 02, 2021

All the common wisdom says to start with a monolith and evolve into microservices once you know you need it. So why does everyone ignore…

To Code Clean or Not To Code Clean

August 23, 2021

I recently came across a post on Blind which was phrased like this: “From my experience, the code at XYZ top-tier tech company is garbage…

The Five Orders of Ignorance

August 22, 2021

I came across this post recently. The Five Orders of Ignorance are essentially: having the answer having a question unknown unknowns…

Chialisp Basics

May 24, 2021

Chialisp is the native smart contract language of the Chia blockchain and cryptocurrency (XCH). This post demonstrates basic Chialisp…

How to Disable Spring Cloud AWS

April 25, 2021

If you’re using Spring Cloud AWS, it’s likely you’ll want to disable it when running locally and for integration tests. The solution…

DynamoDB Repository Layer Isolation in Java

January 19, 2021

A simple strategy for maintaining isolation between a DynamoDB repository layer and the rest of the application which permits a seamless transition to a different database provider

How to Introspect Gatsby's GraphQL Schema with JS GraphQL Plugin in WebStorm/IntelliJ

January 11, 2021

The JS GraphQL plugin for WebStorm/IntelliJ provides much needed features which don't come out of the box with these IDEs. However, Gatsby does not have a GraphQL schema file to inform the plugin. Here, I show how to introspect the Gatsby GraphQL schema using the plugin and demonstrate its schema-aware auto-completion feature.

Spring Troubleshooting Tips

December 30, 2020

Tips and ideas for troubleshooting Spring issues, e.g. useful packages and classes places to enable debug logging

How To Completely Disable HTTP Security in Spring Security

December 16, 2020

Spring is known and loved for its convention of configuration approach. But this can occasionally cause a challenge when automatically enabled features need to be disabled. Here we see how to completely disable Spring Security's HTTP security

How to Automatically Request and Refresh OAuth2 Client Credentials Token in Spring

December 10, 2020

How to transparently handle OAuth2's Client Credentials authorization grant request and subsequent token refresh requests when making service to service requests from a client to a resource server. One solution uses Spring WebFlux's WebClient together with Spring Security OAuth2 Client abstractions and is complex but highly configurable. Another solution uses OAuth2RestTemplate which is simple but not at all customizable.

Java Type System

November 27, 2020

A work in progress: open questions, lessons learned, tips, etc. from working with the Java type system

DynamoDB Data Modeling

October 19, 2020

A work in progress: open questions, lessons learned, tips, etc. from data modeling for DynamoDB

What I'm Working On

September 06, 2020

What I'm currently working on: personal projects, learning, open source, etc.

Mocking Moment.js in Jest — A Simple, One-Line Solution

January 30, 2018

I struggled with Jest at first. I wrote this after I couldn't find the solution anywhere and hoped this would help others. Now, two and a half years later, it is published in Frontend Weekly and has 48k views and 34k reads!