← Back to Portfolio

Blog

Notes on mobile development, architecture, and engineering craft

LATEST

React Native Performance: Bridge, Lists, and the Native Thread

Web React performance is a re-render and bundle-size problem. React Native adds a third one: the JS-to-native bridge. Here's what actually moves the needle on a device.

2026-08-15 · 4 min read
REACT

SOLID Principles in React Native: Building a Component That Doesn't Bite You Later

I first learned SOLID design principle on native iOS development. Turns out it applies just as much to a messy React Native component that grew from 50 lines to 500 because "it was just one more prop."

2026-07-25 · 3 min read
NX

Nx Monorepo: Notes From Actually Learning It

I kept hearing 'just put it in an Nx monorepo' without anyone explaining what that buys you. Here's what actually clicked once I set one up myself.

2026-07-18 · 4 min read
JAVASCRIPT

Async/Await Error Handling: Try-Catch Patterns That Scale

A try-catch wrapped around ten lines of async code tells you nothing about which line actually failed. Here's how to write error handling that scales past the first function.

2026-07-11 · 4 min read
REACT

React Performance: Memoization, Code Splitting, and Bundle Analysis

Most React performance problems aren't solved by scattering useMemo everywhere. Here's how to actually find what's slow, then fix the right thing.

2026-07-04 · 3 min read
TYPESCRIPT

Dependency Injection in TypeScript: Patterns Beyond Singletons

Singletons solve 'only one instance.' They don't solve 'this class is impossible to test without hitting a real database.' Dependency injection does.

2026-06-27 · 3 min read
SECURITY

OWASP Agentic Skills Top 10: The Layer Nobody Was Securing

MCP defines how a model talks to tools. Skills define what those tools actually execute, and until now nobody had a threat model for them. OWASP just published one.

2026-05-23 · 4 min read
GITHUB

Setup Multiple GitHub Accounts on Mac

Stop fighting with git authentication. Here's how to configure SSH to cleanly separate multiple GitHub accounts on one machine.

2026-05-02 · 3 min read
PYTHON

Notes on Learning Python

A comprehensive reference covering Python from basics to advanced concepts. e.g. variables, control flow, OOP, async, and key libraries.

2026-03-24 · 3 min read
IOS

Securing Your API Keys in Xcode: Step-by-step Guide

There are a few different ways to securely add an API key to an Xcode project, depending on the level of security you need and the resources you have available.

2023-03-05 · 4 min read
JAVASCRIPT

Automatically Format Code on Save with ESLint in VSCode: A Step-by-Step Guide

Learn how to use ESLint to automatically format your code on save in VSCode. This step-by-step guide shows you how to set up your editor to save time and ensure consistent formatting.

2023-02-11 · 3 min read
IOS

SOLID Principles in Software Development: Building Better, Easier-to-Maintain Software

SOLID principles are fundamental guidelines that help software developers design more maintainable, testable, and composable software.

2022-01-20 · 3 min read
SWIFT

How I reclaim the space of my Mac's storage

I use XCode and iOS simulator daily, this is what I do to get back some storage space on my Mac other than doing what's mentioned in Apple Support site.

2021-07-24 · 2 min read
SWIFT

Why connectivity check is important and how to get it right

Have you ever use an app while you have an internet connection, but the app tells you "Looks like you are offline!"? So, here's my note on Network Reachablity.

2021-01-08 · 4 min read
REACT

Understanding peerDependencies in package.json

I didn't know about peerDependencies until after I create a react native library myself. I've seen it before, but didn't really know or care why it was written in some of package.json file.

2020-12-19 · 1 min read
SWIFT

[Swift] Improve test feedback by passing file and line to XCTest assertion

To get clear understanding why a test fails, provide two simple parameters on any of helper method created in XCTest

2020-12-05 · 1 min read
SWIFT

[Swift] Test Network Request. Learn the strategies and their trade-offs.

My notes on four different network testing strategies. End-to-end testing, mocking by subclassing, mocking with protocols, and URL protocol stubbing.

2020-11-22 · 3 min read
IOS

[iOS] Singletons and Global Instances impact on system design and testability

Singletons is a way to make sure a class only have one instance to provide a single access point to it.

2020-11-1 · 2 min read