David Cao's Blogs

Welcome to my blogs page!

Why Monorepos Make AI Coding Tools Way Smarter

8/23/2025

Monorepos significantly enhance AI coding tools by providing full context across frontend, backend, and shared code. This article explains how unified codebases enable better AI suggestions, fewer errors, and more effective pair programming with AI assistants.

Software EngineeringAINon-technical
Why Monorepos Make AI Coding Tools Way Smarter

Things that literally doubled my productivity as a programmer

7/26/2025

Discover practical productivity tips and tools that can significantly boost your programming efficiency, from keyboard shortcuts to automation techniques.

Must-ReadProductivityNon-technical
Things that literally doubled my productivity as a programmer

Xcode might be eating up your hard drive space!

7/1/2025

Xcode's DerivedData folder can consume massive disk space on Mac. This article explains how to find and safely delete it to reclaim storage, with a real-life example of freeing up 276 GB.

XcodeMobileTechnical
Xcode might be eating up your hard drive space!

How I learned git rebasing — a real life work scenario

6/22/2025

A real-life scenario demonstrates how git rebase can help separate feature work from dependent changes. The article explains a branching situation, the problem with merging, and how 'git rebase --onto main A' solves it, highlighting the value of practical experience.

GitTechnical
How I learned git rebasing — a real life work scenario

Canonical URL sharing on mobile browsers and a workaround for static sites

6/6/2025

Mobile browsers often share canonical URLs, which can strip important context from links. This article explains why, the impact on users, and a workaround for static sites to preserve full URLs when sharing.

WebJavascriptFrontendTechnical
Canonical URL sharing on mobile browsers and a workaround for static sites

Write clean Flutter code with extension methods

6/12/2024

Learn how to write clean Flutter code using Dart extension methods. This article explains how to add new methods to existing classes, provides practical examples like date-only extraction and string capitalization, and encourages creating your own extensions for cleaner, more maintainable code.

FlutterDartTechnical
Write clean Flutter code with extension methods

How to learn programming in 2024

5/25/2024

Learning programming in 2024 is easier than ever thanks to abundant resources, but it's also easy to get overwhelmed. Focus on mastering core concepts, building real projects, and following your interests to stay motivated. Avoid "tutorial hell" by applying what you learn and tracking your progress.

Non-technicalLearning-to-program
How to learn programming in 2024