About:

The personal website of David Hang, a software engineer.

Website:

Specializations:

Subscribe to RSS:
A detailed cheatsheet on Kotlin scope functions, showcasing their usage and benefits for improving code readability and efficiency.
The post provides notes on Kotlin programming language and its associated libraries, focusing on concepts like new function types, extension functions, and scoped functions. It highlights the mockk library for mocking in tests and...
This blog post serves as a comprehensive cheat sheet for Bash scripting, detailing essential commands, structures, and best practices for software engineers. It covers script structure, variable usage, conditionals, loops, functio...
The blog post provides comprehensive notes on Java programming, focusing on concepts such as Streams, Spring Boot, JUnit, AssertJ, Mockito, and WireMock. It includes code snippets demonstrating how to create streams, implement tes...
The author shares their experience of learning Kotlin after starting a new job that requires proficiency in the language. They compare Kotlin to their existing knowledge of Python and Typescript, discussing various resources they ...

0New job - Atlassian

2025-05-17

...
The text is about the author's experience learning Java and Spring/Spring Boot as a non-beginner programmer, the resources used, and the main concepts learned.
The author lists several software engineering books they have read, providing a brief commentary on each one and mentioning a few books they are currently reading.
The text discusses the issue of deadlocks when running migrations on a live production system with Django and Postgres. It provides a solution to avoid deadlocks by modifying the migration file and making DDL changes non-atomic.
The text discusses the issue of deadlocks when running migrations on a live production system with Django and Postgres. It provides a solution to avoid deadlocks by keeping migrations in a transaction to a single table.
The text discusses a situation where CI tests were failing on a different system due to a case sensitivity issue in the filesystem and a folder name quirk. The problem was eventually solved by updating the reference filepath and u...
The text discusses a situation where CI tests were failing on a different system due to a folder name discrepancy caused by case sensitivity in the filesystem. The issue was resolved by updating the reference filepath and using Gi...

0AWS Lambda SAM CORS

2024-11-14

The author shares their experience with CORS issues when deploying AWS Lambdas using SAM. They were working on a personal project to extract data from PDF invoices and faced CORS errors when trying to deploy the Lambdas. They coul...
The author shares their experience with deploying AWS Lambdas using SAM and struggling with CORS. They were working on a personal project to extract data from PDF invoices and faced issues with CORS when deploying the Lambdas. The...
The blog post provides an introduction to the Django ORM, discussing its pros and cons, fundamentals, querying, performance improvements, gotchas, and other funky stuff. It also covers how to update rows, pagination, and order_by....
The blog post provides an introduction to the Django ORM, discussing its pros and cons, fundamentals, querying, performance improvements, gotchas, and other funky stuff. It also covers how to update rows, pagination, and order_by....

0Rust

2024-06-29

The author discusses their experience with Rust, both in a professional and personal capacity. They highlight the positive aspects of the language, such as the tooling and ease of use, while also mentioning some challenges and are...
The author discusses their experience with Rust, both in a professional and personal capacity. They highlight the positive aspects of the language, such as the tooling and ease of use, while also mentioning some challenges they ha...

0First post!

2024-06-26

...

0First post!

2024-06-26

...