Hootan Moradi
// MARK: - Introduction

let hootan: iOSDeveloper

8+ years building iOS apps, from digital health to enterprise banking.
This isn't a portfolio — it's a playground.

Based in the Netherlands Swift · SwiftUI · UIKit · Combine 0 retain cycles (currently)
Hootan.swift
1struct Developer: Identifiable, Codable {
2 let name = "Hootan"
3 let domain = "hootan.dev"
4 let passions = ["Swift", "SwiftUI", "System Design"]
5 var caffeineLevel: Double = .infinity
6
7 func buildSomethingGreat() async throws -> App {
8 try await pourCoffee()
9 return try await ship(withLove: true)
10 }
11}
→ Console Output
// MARK: - About

The Developer Behind the Code

README.md

Hey — I'm Hootan. I've been writing Swift since the days when you had to fight UIKit just to get a custom transition working. Over the past 8+ years, I've shipped apps in health tech, fintech, gaming, and e-commerce — sometimes as the only dev on the team, sometimes inside a large SDK organization. Both teach you things the docs never mention.

Right now I'm at Backbase in Amsterdam, working on a white-label banking SDK that powers apps for financial institutions around the world. My days involve managing multiple LTS branches, migrating legacy RxSwift to Combine, pushing test coverage past 90%, and lately — adapting everything for iOS 26's new design language. Before that, I spent five years at Karafs, Iran's biggest digital health startup (5M+ users). That's where I led a full UIKit-to-SwiftUI migration targeting iOS 13, doubled the build speed, and built the networking and data layers from scratch.

Outside of my day job, I'm deep into AI-powered development. I build agentic workflows that handle the full dev cycle — from reading a ticket to opening a PR. I've used those same agents to build entire products from zero: Invoicent and NexusCommerce were shipped without writing a single line of code manually. It's my way of stress-testing what AI can actually do when you give it real constraints and real deadlines.

I also run HiOLO — a small AI holding company where I incubate and ship products like Kahoo, Stravix, FlowForge, and more. It's part lab, part portfolio, part excuse to keep building things that interest me.

// When I'm not in Xcode, I'm probably watching football, hiking somewhere in the Netherlands, or having a strong opinion about optionals.

8+
Years iOS
10+
Products Shipped
90%+
Test Coverage
4
AI Products
// MARK: - Memory Management

ARC: The Silent Accountant

Every object lives on borrowed time. ARC counts references with mechanical precision — when the count hits zero, it's over. No negotiations. Click to retain, release, and watch the lifecycle unfold.

RetainCycle.swift
1class Person {
2 var apartment: Apartment?
3 deinit { print("Person deallocated") }
4}
5
6class Apartment {
7 var tenant: Person? // ⚠️ Should be weak
8 deinit { print("Apartment deallocated") }
9}
10
11// They refer to each other. Neither can die.
12// This is fine. 🔥
→ Console Output
// MARK: - Value vs. Reference

The Copy You Didn't Expect

Structs copy. Classes share. It sounds simple until it isn't. Mutate one side and watch what happens to the other.

struct Point — Value Type
original
{ x: 0, y: 0 }
0x7ff0a001
copy
{ x: 0, y: 0 }
0x7ff0b002
// Click to mutate the copy
class Point — Reference Type
original
{ x: 0, y: 0 }
0x600003c0
reference
{ x: 0, y: 0 }
0x600003c0
// Click to mutate the reference
// MARK: - Structured Concurrency

await the Inevitable

Modern Swift concurrency in motion. Watch tasks suspend, resume, and resolve — or throw trying. Hit run and observe structured concurrency unfold in real time.

fetchData()
idle
{ }
decode()
idle
validate()
idle
render()
idle
// Output appears here after execution…
// MARK: - Things I've Shipped

Built & Released

From enterprise banking SDKs to AI-powered products. Each of these taught me something the documentation didn't cover.

Backbase iOS SDK

Enterprise

White-label banking SDK used by financial institutions worldwide. Migrated reactive layers from RxSwift to Combine, maintained four parallel LTS branches with semantic versioning, and built AI-assisted workflow tools that orchestrate the full dev cycle from ticket to PR. Adapted for iOS 26's design language and pushed test coverage past 90%.

SwiftCombineCI/CDGitHub ActionsSnapshot TestsAccessibility

Kahoo

AI · HiOLO

An AI-powered calorie and nutrition tracker. Full-stack personal project — mobile app, backend, and AI pipeline. Smart meal logging with intelligent insights and personalized health recommendations. Built under the HiOLO umbrella.

SwiftAI/MLFull StackHealth & Wellness

VPORT

visionOS

An immersive VR concert platform for Apple Vision Pro. Stream live music events in 360-degree spatial audio and video — front-row seats from anywhere in the world. Built for visionOS with pay-per-minute access, on-demand replays, and a global content provider network.

visionOSRealityKitSpatial AudioAVKitApple Vision Pro

FlowForge

Open Source

Production-ready AI workflow orchestration platform with durable execution, step memoization, sub-agents, and LiteLLM routing. Event-driven architecture for building complex agentic workflows that survive failures and resume from where they left off.

PythonAI AgentsDurable ExecutionLLM Orchestration

Stravix

AI · HiOLO

AI content creation platform that learns your brand voice and publishes without prompting. Full infrastructure — frontend, backend, database, AI pipeline. From SEO blogs to social posts, with image generation and multi-platform scheduling built in.

AI InfrastructureFull StackContent AISaaS

Invoicent

App Store · HiOLO

A focused invoicing app — create clean invoices, export polished PDFs, and send them from your phone. Minimal and Classic templates, multi-currency support, branding, tax handling, and a workflow that takes under a minute. Available on iOS, Android, and web. Built entirely from zero using my own AI agents — no manual coding.

SwiftSwiftUIStoreKit 2PDF GenerationCross-Platform

NexusCommerce

SaaS · HiOLO

Multi-marketplace commerce platform — unify Amazon, eBay, Shopify, Walmart, Bol, Zalando, and Kaufland from one cockpit. AI-driven pricing, real-time inventory sync across 7 channels, review intelligence, LLM visibility tracking, and ad automation. Built for EU sellers scaling across marketplaces. Like Invoicent, built entirely from zero by my AI agents — architecture, code, and deployment, all agentic.

NestJSSupabaseAI/MLClickHouseMulti-Marketplace

TeamLap

AI · Internal Tool

Real-time planning poker and agile retrospectives — built to solve a real pain point inside our team at Backbase. Fully AI-generated from idea to production. No manual coding, just a problem that needed solving and agents that could build it.

AI-BuiltReal-timeAgilePlanning PokerRetrospectives

KudoCircle

AI · Internal Tool

Collaborative group greeting cards — unlimited contributors, multimedia support with photos, GIFs, and videos, plus adaptive layouts that just work. Another tool born from a team need at Backbase, fully built by AI agents from zero to shipped product.

AI-BuiltCollaborationMultimediaGroup Cards

Karafs

Digital Health

Iran's fastest-growing health startup — 5M total users, 500K monthly active. Led the complete UIKit-to-SwiftUI migration (back to iOS 13), built a custom coordinator to bridge both worlds, engineered the network layer with Swift Logger + Alamofire, and doubled the project's build speed. Five years of shipping at scale.

SwiftUIUIKitAlamofireFastlaneTestFlightMVVM

PenPlay

Game

A real-time multiplayer doodling game. Designed the state machine using Apple's GamePlayKit to drive the entire game experience, and implemented the networking layer with gRPC for efficient client-server communication.

GamePlayKitgRPCState MachinesMultiplayer

…and there's more where these came from. I can't help it — I see a gap in the market and my brain won't rest until there's a repo for it. Building is how I think. Shipping is how I sleep.

// TODO: learn to stop starting new projects
// FIXME: unlikely

// MARK: - Let's Connect

Open for New Connections

Whether it's a project, a conversation about Swift internals, or a strong opinion on optionals — I'm listening.