Software Development

SOLID in Action: the Dependency Inversion Principle

Depend upon Abstractions. Do not depend upon concretions.

February 21, 2023 · 4 min read

SOLID in Action: the Dependency Inversion Principle

“Look Good to Me — Approve”

The Chrome extension that approves Gitlab merge requests with a friendly comment

January 29, 2023 · 3 min read

“Look Good to Me — Approve”

SOLID in Action: the Interface Segregation Principle

Many client-specific interfaces are better than one general-purpose interface

January 27, 2023 · 4 min read

SOLID in Action: the Interface Segregation Principle

Are you a full-stack developer?

Let’s talk about the different aspects of that title

January 21, 2023 · 3 min read

Are you a full-stack developer?

Kotlin, Spring Data, and MongoDB: Develop a “GET /comments” API endpoint

With 4 Flavors of Data Retrieval

January 17, 2023 · 12 min read

Kotlin, Spring Data, and MongoDB: Develop a “GET /comments” API endpoint

Shift Left Testing

January 16, 2023 · 2 min read

Shift Left Testing

Five Minimum Viable Spring REST Interview Questions

Interviewer: ask them if your interview is running out of time. Interviewee: practice them if your preparation is running out of time.

January 12, 2023 · 7 min read

Five Minimum Viable Spring REST Interview Questions

SOLID in Action — the Liskov Substitution Principle

Subclasses should be substitutable for their base classes

January 9, 2023 · 7 min read

SOLID in Action — the Liskov Substitution Principle

DevOps: Divide and Conquer with Gitlab Parent-Child Pipeline

How to break down a complex pipeline into manageable modules

January 9, 2023 · 3 min read

Maven — 3 Free Resources for Beginner and Intermediate Java Developers

I find them helpful. I hope you do too.

January 7, 2023 · 2 min read

Maven — 3 Free Resources for Beginner and Intermediate Java Developers

Work-hard Verifying or Work-smart Mocking

Testing is hard work, let’s make it easier

January 4, 2023 · 3 min read

Work-hard Verifying or Work-smart Mocking

Retry WebClient Request

Retrying a WebClient request using RetrySpec, and unit-testing it

December 30, 2022 · 4 min read

Retry WebClient Request

What Are APIs?

A non-technical explanation of APIs and where they belong

December 27, 2022 · 3 min read

What Are APIs?

SOLID in Action — the Open-closed Principle

“A software entities (classes, modules, functions, etc.) should be open for extension but closed for modification”

December 24, 2022 · 5 min read

SOLID in Action — the Open-closed Principle

Simple Code — Effective UI — Month Picker

If you want to let users pick a specific month within a year, what’s the most simple yet effective UI?

December 22, 2022 · 1 min read

Simple Code — Effective UI — Month Picker

SOLID in Action — the Single Responsibility Principle

“A class should have one, and only one, reason to change.”

December 14, 2022 · 4 min read

SOLID in Action — the Single Responsibility Principle

Five Minimum Viable Javascript Interview Questions

Interviewer: ask them if your interview is running out of time. Interviewee: practice them if your preparation is running out of time.

December 9, 2022 · 6 min read

Five Minimum Viable Javascript Interview Questions

Becoming a SOLID developer

By following SOLID software engineering principles

December 7, 2022 · 4 min read

Becoming a SOLID developer

The best way to fix Hibernate’s MultipleBagFetchException

Adapting from https://vladmihalcea.com plus sample codes for Spring Data JPA

December 4, 2022 · 6 min read

The best way to fix Hibernate’s MultipleBagFetchException

Echo API

A maven library of a /echo API that echoes HTTP request’s details back to the caller.

November 30, 2022 · 2 min read

Echo API

Unit testing Java’s try-with-resource

November 29, 2022 · 3 min read

Unit testing Java’s try-with-resource

Java Method Reference

Method reference lets you use an existing method as a lambda as long as their signature (input & output) are compatible.

November 27, 2022 · 4 min read

Java Method Reference

Code Review as an interview tool

Reviewing code as a way of learning and contributing

November 22, 2022 · 3 min read

Code Review as an interview tool

Java Stream Interview Tests - takeWhile

Stream has been an important part of Java development since Java 8. This test assesses candidates' understanding of Stream’s mechanics

November 1, 2021 · 4 min read

Java Stream Interview Tests - takeWhile

Java Stream Interview Tests - Distinct Characters

October 30, 2021 · 3 min read

Java Stream Interview Tests - Distinct Characters

Spring REST API Interview Questions

Use these to assess multiple practical aspects of a candidate’s skills and experience

October 19, 2021 · 4 min read

Spring REST API Interview Questions

Kubernetes Memory Units

September 13, 2020 · 1 min read

javax.transaction.Transactional vs org.springframework.transaction.annotation.Transactional

It’s easy to mix especially when we only need the default setting

September 10, 2020 · 1 min read

Using Bootstrap with React

Because both are great!

April 20, 2020 · 1 min read

What Happened When You Assigned State to a Stateless Session Bean?

It’ll probably result in an EJBTransactionRolledbackException caused by a NullPointerException

September 10, 2013 · 1 min read

[Unix] – Recursively Listing Files Under a Directory

July 22, 2013 · 1 min read

[Database] Exists or Inner Join: Duplicate Records

June 16, 2013 · 4 min read

Which Form of String Comparison Is Supported

May 21, 2013 · 2 min read

JSR 303 – Bean Validation – Let Your Bean Validate Itself

December 20, 2012 · 1 min read

JDBC Transaction Without EJB

EJB 3 is simple enough that delegating transaction management to it only cost little in creating and annotating an EJB business interface method. However, if you want to skip EJB altogether yet ensure all queries get executed inside a transaction, here’s a quick way

October 24, 2012 · 1 min read

JSR 303 – Bean Validation – Custom Constraints

August 25, 2012 · 2 min read

JSR 303 – Bean Validation – Nested Validation

August 9, 2012 · 2 min read

JSR 303 – Bean Validation – Basic

August 3, 2012 · 2 min read

SPRING MVC – SESSIONATTRIBUTES ANNOTATION

June 30, 2012 · 1 min read

Java XML Parse error: Tried all: '1' addresses, but could not connect over HTTP to server

March 9, 2012 · 1 min read

How do you display input validation error

February 24, 2011 · 1 min read

Static vs Singleton Revisited

February 10, 2011 · 3 min read

Static method vs Singleton class

Sometimes we write java class that has no state, each of its method is self-sufficient. It's then make sense (convenience, performance gain included) to convert those methods into static. Or, we can apply Singleton pattern on that class. So, which way?

January 16, 2011 · 3 min read

Consistency in framework design

January 6, 2011 · 3 min read

Who owns the source code? Employee or employer?

December 21, 2010 · 1 min read

Quicksort vs Merge sort in Java

December 12, 2010 · 2 min read

How do you initialize an EJB3 Stateful Session Bean ?

November 20, 2010 · 2 min read

Weblogic SAXParserFactory Issue

October 26, 2010 · 2 min read

Recursive Tagfile

This is my experience with recursive tagfile on Weblogic 10.3. I also describe a few problems encountered and how I solved them

March 24, 2010 · 2 min read

Combine EJB and WAR file in a same web service EAR

March 2, 2010 · 3 min read

2-way SSL with WebLogic server 10.3

February 3, 2010 · 2 min read

J2EE Programming Tips

May 4, 2009 · 2 min read