Eight Business Card App iOS Dev Team

top profile works link

Overview

In April 2025, transferred to Sansan, Inc.'s Eight division and joined, mid-way through, the rebuild project for the Eight business card app on iOS. The project aims to rebuild a 13+ year-old, heavily complexified iOS codebase from scratch, under the principle of how to build features that are easy to discard. Over this year, I sharpened two capabilities: driving development from design documents and weaponizing generative AI and MCP to raise development productivity.

Description

From April 2025 to April 2026, as a member of a team of 8+ iOS engineers in Sansan, Inc.'s Eight division, worked on the rebuild project. Primarily took responsibility for three areas: design-document-driven feature development, migrating to the new design (VIPER) and deciding on Swift Concurrency adoption, and operating development with generative AI and MCP built in.

For design-document-driven feature development, authored 10-20 design documents for the onboarding, search, settings, and cross-cutting foundation areas, and implemented features end-to-end along those documents. The distinguishing practice was the discipline of writing the design document before writing code, and drawing module boundaries at the unit of each design document. By splitting modules at the feature level, I kept the architecture in a shape where each feature can be discarded in the future, and by deciding responsibility boundaries before starting implementation, I left no ambiguity. Documents captured not only conclusions but also the decision made and the alternatives considered, so that members joining later could understand the background of each decision. Furthermore, as a quality bar for the design document itself, I evaluated each document against does a reader feel no friction reading it top to bottom? and does each diagram convey its meaning at a glance?.

For migrating to the new design (VIPER) and deciding on Swift Concurrency adoption, while taking advantage of the greenfield environment, I held firm on the stance of not making technology an end in itself. Even when tempted to fully adopt Swift Concurrency or SwiftUI, I deliberately chose conventional technologies when the trade-offs — significantly reduced readability or additional implementation required solely to use the API — led to a different conclusion. A representative example is the policy of keeping UIKit at the center of screen implementation. By consistently holding the position that "the design document comes first, and the most appropriate technology is selected for that design," I achieved a structure where old and new technologies combine as a design-driven necessity.

For operating development with generative AI and MCP built in, integrated generative AI tools — Claude Code, Codex, and Cursor — into daily development and pursued operational practices that stabilize output quality at a production-grade level. As a personal OSS that reinforces this approach, I designed and implemented SwiftGuidelinesMCP, an MCP server that lets generative AI reference Apple's official Swift API Design Guidelines, and published it on GitHub. I continuously improve it while using it heavily in my own daily development, and it serves as a practical foundation for stabilizing generative AI output quality. For the team, I contributed to formulating and sharing generative AI usage guidelines.

What runs through all of the above is the principle of how to build features that are easy to discard. As the foundation that supports this practice, I deeply studied two books — Writing Skills for Scientists and Engineers and The Art of Readable Code — and applied them across both prose and naming. This effort not only contributed to building "discardable features" but also functioned as improving the accuracy of generative AI output and a defense against ambiguous generative AI results, creating a state where writing, code, and generative AI usage can all be driven by the same principles.

Key Words

Swift, SwiftUI, UIKit, Swift Concurrency, VIPER, SwiftPM, XCTest, Swift Testing, CI/CD, Vibe Engineering, Claude Code, Codex, Cursor, MCP (Model Context Protocol), Technical Writing, Design Documentation, Productivity

Links

SwiftGuidelinesMCP — GitHub


back to works