DEV Community

hiro@ profile picture

hiro@

404 bio not found

Joined Joined on  github website twitter website
Summer Bug Smash Completion Badge
Frontend Challenge Completion Badge
Eight Year Club
Seven Year Club
Writing Debut
Six Year Club
Five Year Club
Four Year Club
Three Year Club
Two Year Club
One Year Club
A multi-device push rollout remains incomplete while old logout behavior survives

A multi-device push rollout remains incomplete while old logout behavior survives

Comments
4 min read

Want to connect with hiro@?

Create an account to connect with hiro@. You can also sign in below to proceed if you already have an account.

Already have an account? Sign in
Consolidating Codex TODOs in Plane without merging different deliverables

Consolidating Codex TODOs in Plane without merging different deliverables

Comments
4 min read
Verify authentication recovery before treating Configuration as the root cause

Verify authentication recovery before treating Configuration as the root cause

Comments
4 min read
From 63 seconds to 60: checking a game trailer against its timeline and video files

From 63 seconds to 60: checking a game trailer against its timeline and video files

Comments
4 min read
Audit a game soundtrack by selection records, playback slots, and actual files

Audit a game soundtrack by selection records, playback slots, and actual files

Comments
4 min read
Define one input action per screen across mouse, touch, and gamepad controls

Define one input action per screen across mouse, touch, and gamepad controls

Comments 1
4 min read
An outbox preserves notification intent; delivery deduplication is a separate boundary

An outbox preserves notification intent; delivery deduplication is a separate boundary

Comments
4 min read
An idempotency key needs stored results: testing retries and concurrent requests

An idempotency key needs stored results: testing retries and concurrent requests

Comments 1
4 min read
Choosing Cron Triggers, Queues, or Workflows by where recovery should resume

Choosing Cron Triggers, Queues, or Workflows by where recovery should resume

Comments
4 min read
Inventory cross-room queries before moving D1 data into Durable Objects

Inventory cross-room queries before moving D1 data into Durable Objects

Comments
5 min read
Replacing deep OFFSET pagination in D1: rows read and inserts between pages

Replacing deep OFFSET pagination in D1: rows read and inserts between pages

Comments 1
4 min read
Debugging mixed ESM and CommonJS: separate module classification from loading

Debugging mixed ESM and CommonJS: separate module classification from loading

Comments
4 min read
Reproducing local image generation takes more than saving model weights

Reproducing local image generation takes more than saving model weights

Comments
4 min read
Recording generated-asset provenance, originals, and selection decisions

Recording generated-asset provenance, originals, and selection decisions

Comments
4 min read
Beyond the game build: checking itch.io submission copy and image files

Beyond the game build: checking itch.io submission copy and image files

Comments
4 min read
Before turning AI chats into a devlog, verify the numbers and completion claims

Before turning AI chats into a devlog, verify the numbers and completion claims

1
Comments 1
4 min read
Where to draw the boundary between GitHub Issues and Plane

Where to draw the boundary between GitHub Issues and Plane

1
Comments
4 min read
What belongs in a Plane Page, and what belongs in a Work Item?

What belongs in a Plane Page, and what belongs in a Work Item?

Comments
4 min read
Zero updated rows do not fail a D1 batch: testing the rollback boundary

Zero updated rows do not fail a D1 batch: testing the rollback boundary

1
Comments 2
4 min read
Split Plane Workspaces or Projects based on who may administer the data

Split Plane Workspaces or Projects based on who may administer the data

Comments
3 min read
When retrying scheduled publication avoids duplicates, and when a lost response breaks it

When retrying scheduled publication avoids duplicates, and when a lost response breaks it

Comments
4 min read
Reusing a game jam repository starts with event boundaries and explicit export targets

Reusing a game jam repository starts with event boundaries and explicit export targets

Comments
4 min read
Reviewing AI-generated code by breaking one invariant and reading the failing test

Reviewing AI-generated code by breaking one invariant and reading the failing test

Comments
4 min read
Comparing Promise.all, allSettled, any, and race when failure arrives first

Comparing Promise.all, allSettled, any, and race when failure arrives first

1
Comments
3 min read
Choose Next.js Server Actions or Route Handlers by the contract with the caller

Choose Next.js Server Actions or Route Handlers by the contract with the caller

Comments 1
4 min read
Choosing Plane Projects, Modules, Cycles, and Initiatives by what needs to be finished

Choosing Plane Projects, Modules, Cycles, and Initiatives by what needs to be finished

Comments
4 min read
Keeping Codex decisions in the repository and checking them against implementation evidence

Keeping Codex decisions in the repository and checking them against implementation evidence

Comments
4 min read
What reversing a D1 composite index changes in the query plan

What reversing a D1 composite index changes in the query plan

Comments
3 min read
Tracing Android safe-area spacing to the components that apply insets

Tracing Android safe-area spacing to the components that apply insets

Comments 1
3 min read
A push token per user is not enough: device-scoped registration and logout

A push token per user is not enough: device-scoped registration and logout

Comments
5 min read
Auditing 38 days of Qiita, Zenn, and dev.to records: scheduled does not mean published on time

Auditing 38 days of Qiita, Zenn, and dev.to records: scheduled does not mean published on time

1
Comments
4 min read
Organizing personal Plane projects around products rather than working directories

Organizing personal Plane projects around products rather than working directories

Comments
4 min read
Putting Codex into a Game Production Pipeline, from Godot Implementation to Release Checks

Putting Codex into a Game Production Pipeline, from Godot Implementation to Release Checks

Comments 1
4 min read
I Built Three Games and Chose None: Picking a Direction by Whether I Wanted to Play Again

I Built Three Games and Chose None: Picking a Direction by Whether I Wanted to Play Again

Comments
3 min read
AI Made Me Faster, but a Game Jam Made Me Finish: The Making of VOLT NOMAD

AI Made Me Faster, but a Game Jam Made Me Finish: The Making of VOLT NOMAD

Comments
4 min read
When Wrangler-generated types collide with Next.js DOM types

When Wrangler-generated types collide with Next.js DOM types

Comments
3 min read
Removing handwritten API types with tRPC RouterInputs and RouterOutputs

Removing handwritten API types with tRPC RouterInputs and RouterOutputs

Comments
3 min read
Turning Storybook stories into Vitest browser tests in Next.js

Turning Storybook stories into Vitest browser tests in Next.js

Comments
3 min read
I built a Qiita trend analyzer to decide what technical article to write next

I built a Qiita trend analyzer to decide what technical article to write next

Comments
3 min read
The stack I use to run two indie web and iOS apps

The stack I use to run two indie web and iOS apps

Comments
4 min read
Three problems I hit deploying Next.js 16 to Cloudflare Workers with OpenNext

Three problems I hit deploying Next.js 16 to Cloudflare Workers with OpenNext

Comments
3 min read
Adding Expo authentication to a NextAuth-based web service

Adding Expo authentication to a NextAuth-based web service

1
Comments
4 min read
Cloudflare D1 has no BEGIN TRANSACTION, so I tested its limits and batch API

Cloudflare D1 has no BEGIN TRANSACTION, so I tested its limits and batch API

1
Comments
3 min read
Keeping colors consistent between Tailwind on the web and React Native

Keeping colors consistent between Tailwind on the web and React Native

Comments
3 min read
Protecting a personal web app with Cloudflare Access and email OTP

Protecting a personal web app with Cloudflare Access and email OTP

Comments
3 min read
Using Base UI with a shadcn/ui-style component layer in production

Using Base UI with a shadcn/ui-style component layer in production

1
Comments
3 min read
API Design That Allows Partial Failures and Saves Only Successful Assets

API Design That Allows Partial Failures and Saves Only Successful Assets

1
Comments
2 min read
Review AI-Generated Assets In-Game Instead of Adopting Them Directly

Review AI-Generated Assets In-Game Instead of Adopting Them Directly

Comments
2 min read
Improving Combat Feel with Hit Stop, Slash Effects, and Combo Animations

Improving Combat Feel with Hit Stop, Slash Effects, and Combo Animations

Comments
2 min read
How I Designed Save Data for a Metroidvania

How I Designed Save Data for a Metroidvania

Comments
2 min read
Automated Testing for Enemy AI, Physics, and Map Connections in Godot

Automated Testing for Enemy AI, Physics, and Map Connections in Godot

Comments
2 min read
Building a Generation Queue Tool for Batch Character Creation

Building a Generation Queue Tool for Batch Character Creation

Comments
2 min read
Pipeline for Importing AI-Generated Pixel Characters into Godot

Pipeline for Importing AI-Generated Pixel Characters into Godot

Comments
2 min read
Release process for continuously delivering a personal dev app to TestFlight

Release process for continuously delivering a personal dev app to TestFlight

Comments
2 min read
Why Waitlist Promotion Should Be Determined Server-Side, Not Client-Side

Why Waitlist Promotion Should Be Determined Server-Side, Not Client-Side

Comments
2 min read
Design evolution toward using the same auth and permission model in Next.js and Expo

Design evolution toward using the same auth and permission model in Next.js and Expo

Comments
2 min read
Switching Between Web URLs and App Deep Links for LINE In-App Browser

Switching Between Web URLs and App Deep Links for LINE In-App Browser

Comments
2 min read
Data design for attendance management with capacity, waitlist, and proxy input

Data design for attendance management with capacity, waitlist, and proxy input

1
Comments
2 min read
Supporting Language Switching for Date Formats, Not Just Text, with i18next

Supporting Language Switching for Date Formats, Not Just Text, with i18next

Comments
2 min read
The Stale Godot Class Cache Bug That Passed CI but Broke Local Startup

Summer Bug Smash: Clear the Lineup 🐛🛹

The Stale Godot Class Cache Bug That Passed CI but Broke Local Startup

1
Comments 1
3 min read
loading...