Introduction

As an independent software engineer, nothing compares to the feeling of identifying a real-world friction point and turning it into a polished, lightweight native utility.

Over the past few years, my focus has gravitated toward two deeply exciting areas:

  1. Native Apple Ecosystem Engineering: Leveraging modern Swift, SwiftUI, and Vision OCR to create lightning-fast iOS and macOS experiences.
  2. AI Tooling & Agent Workflows: Building streamlined environments, menu bar switches, and automation scripts for AI assistants like Claude Code.

Crafting Focused Solutions

1. Sesamo: Solving the 2FA Friction

Many users waste seconds everyday switching screens and manually copying Microsoft verification codes. With Sesamo, the goal was simple: zero latency, privacy-first on-device OCR recognition.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
import Vision
import SwiftUI

func recognizeVerificationCode(from image: CGImage) async throws -> String? {
    let request = VNRecognizeTextRequest()
    request.recognitionLevel = .accurate
    request.usesLanguageCorrection = false
    
    let handler = VNImageRequestHandler(cgImage: image, options: [:])
    try handler.perform([request])
    
    guard let observations = request.results else { return nil }
    return extractNumericCode(from: observations)
}

2. CCSwitch: Seamless API Environment Management

When working extensively with CLI tools and different API endpoints, managing environment variables manually is error-prone. CCSwitch lives quietly in the macOS menu bar, allowing one-click environment switching.

1
2
# Rapid Claude Code configuration with CCSetup
curl -fsSL https://hamguy.xyz/ccsetup/install.sh | bash

Key Takeaways

PrincipleTraditional ApproachIndie Builder Approach
ArchitectureHeavy multi-layer frameworksLightweight, native APIs
PrivacyCloud telemetry & data logging100% On-device execution
Iteration SpeedMonthly release cyclesContinuous shipping in public

The best software is not the one with the most features, but the one that solves a specific pain point so effortlessly you forget it was ever hard.


What Lies Ahead

In upcoming posts, I will dive deeper into:

  • Native SwiftUI performance profiling and memory optimizations
  • Best practices for structuring Model Context Protocol (MCP) servers
  • Lessons learned while launching independent apps on the App Store and Google Play

Stay tuned and feel free to connect via X / Twitter or GitHub.