Gurukul — an old discipline

Apple Application Developer

Ten years of craft in iOS.

I build for the Apple ecosystem — iOS, iPadOS, tvOS and visionOS. From live transit tracking to streaming at scale, and most recently a finance app I shipped alone, backend included.

  • 10+Years shipping
  • 36Apps worked across my career
  • 90%+Test coverage on Fuse
One core · four Apple platforms

The pulse is shared code reaching each platform. Hover one to see what shipped there.

scroll to explore

Selected work

Only what shipped to the App Store, or what a lot of shipped apps were built on.

My own product

MoMudra

Budgeting that follows your pay cycle, not the calendar month.

Solo iOS engineer · 2026 · iOS

  • 30 Jul 2026Shipped
  • SoloBuilt by
  • iOS 18+Requires
MoMudra home screen: $10,038 free to spend for the current pay cycle, derived from $11,300 income less $312 spent and $950 saved, with 19 days to pay day. Below it, hold-to-speak and type both log an entry, while Ask puts a question to the AI about entries already logged.
Home — free to spend, scoped to the cycle
  • SwiftUI
  • SwiftData
  • StoreKit 2
  • Swift Concurrency
  • Claude
  • Groq
  • Cloudflare Workers
  • KV

How it's builtA Cloudflare Worker holds the vendor keys and serves routing config from KV, so the app never calls a model provider directly. On device SwiftData persists the cycles, one cycle-scoped calculator owns every derived figure, and AI replies cache by prompt hash.

Client work · Robosoft

First Bus

Live bus tracking, routes and ticketing for a major UK operator.

Senior iOS Engineer · 2021–Present · iOS

  • 4.6★ · 197k ratingsApp Store rating
  • 80%+Test coverage
LIVE FEEDWHAT THE VIEW SEESWebSocketvehicle positionsNetwork layernormalised herewire shape stops at this lineDomainroutes · stopsSwiftUImap viewnothing past this line knows the transportONE PLACE OWNS THE SHAPE OF A LIVE VEHICLE
Where the wire format stops
  • Swift
  • SwiftUI
  • Atomic Design
  • Google Maps SDK
  • Swift-Dependency
  • Snapshot Testing

How it's builtSwiftUI on Clean Architecture and MVVM, modular where it needed to be. Google Maps carries routing, live location and stop-level updates, with Atomic Design in the view layer. The live vehicle feed arrives over a WebSocket and is normalised in the network layer, so the view layer never sees the wire format.

Client work · Robosoft

Fuse

One codebase shipping eighteen streaming apps across iOS, tvOS and visionOS.

Senior iOS Engineer · 2021–Present · iOS · tvOS · visionOS

  • 18Apps from one codebase
  • ~1 dayTo stand up a new brand
  • 90%+Test coverage
ONE SOURCEVARIES PER BRANDSHIPS ASShared coreCommandBuilderInteractor · RouterTemplateaccessibility,built in from the startDesign tokensFigma configBackend-drivenplacementno forks, no per-brand branchesiOSphone & tablettvOSfocus-engine navigationvisionOSspatial18 APPS · 2 BRANDS · ONE CODEBASE
One core, eighteen apps
  • Swift
  • SwiftUI
  • tvOS
  • visionOS
  • CommandBuilder
  • Interactor
  • Router
  • SSO
  • MUX
  • Braze
  • Branch.io
  • GitHub Actions

How it's builtBuilt on CommandBuilder, Template, Interactor and Router with protocol-oriented design and dependency injection. UIFocus Environment drives tvOS remote navigation, and accessibility was built across the whole platform from scratch rather than retrofitted late. Each brand carries its own design tokens and Figma configuration outside the shared core, and the backend drives UI and component placement.

Also shipped

Ten years across six domains. The early ones taught me Objective-C; the later ones are why I write Swift the way I do.

The craft

Five things I believe, and the work that had to pay for each one.

Sthapatya — the building of it

One owner per idea

A value computed in two places will disagree eventually — and I would rather ship three similar lines than one abstraction invented before it was needed.

func freeToSpend(in cycle: PayCycle) -> Decimal
// one owner — Home, widget and AI all call it
Paid for on Fuse
Laya — tempo and flow

Tests are what make speed safe

Coverage past 90% was never the goal. It was the price of changing shared code on a Friday and still sleeping that night.

@Test func unpaidManualRecurringReducesFreeToSpend()
@Test func thinkingBlockBeforeTextBlockStillParses()
Learned the hard way on Fuse and First Bus
Drishti — the way it is seen

Accessibility is structural

A focus engine retrofitted late is a rewrite, not a feature. Building VoiceOver and tvOS Focus from scratch cost less — and decided how the view layer was shaped.

PosterCard(show: show)
    .focusable()
    .accessibilityLabel(show.title)
    .accessibilityHint("Opens the series")
Built into Fuse from the first commit
Satya — what it says when it fails

Say the true thing when it breaks

What software says while failing is a design decision. When MoMudra’s AI cannot answer it says so plainly, and the question stays retryable.

guard response.stopReason != .maxTokens else {
    throw AIError.truncated
}
Proven on MoMudra — read the study
Abhyāsa — practice, repeated

Retooling is the job now

An agent may draft; I review every line and never ship what I cannot explain. Ten years in, the willingness to relearn the tools is worth more than any framework I already know.

Claude Code · Cursor · Codex · Xcode intelligence — daily, on MoMudra

The path

Not a list of jobs — the four times the question I was being asked changed. The tools beside each one are the honest record of what a decade actually looks like.

  • 2021 — Present · Robosoft · Bengaluru, remote

    Scale changed the question

    Every choice was made on behalf of teams I would never meet.

    18 apps · 2 brands · 3 Apple platforms

    The question stopped being “does this work” and became “what does this cost whoever inherits it.”

    The codebase taught me more than any course could. Feature flags, design tokens, XcodeGen, interactors and templates, dependency injection, an AppObserver pattern that keeps AppDelegate almost empty — reading code that good is its own apprenticeship.

  • 2019 — 2020 · Bajaj Markets · Pune

    Money on the other side

    The first place a mistake would cost someone money, not a session.

    6 product lines in one app — loans, cards, insurance, investments, UPI, EMI

    Convenience stopped being a neutral word to me here — a shortcut through an auth boundary is a promise you are making on the user's behalf, whether or not you meant to.

  • 2018 — 2019 · Muvi · Bhubaneswar

    Building for builders

    Writing for other developers, where an awkward API costs someone their afternoon.

    Muvi's customers stood up their own streaming services on what we shipped.

  • 2016 — 2018 · Mobiona · Bhubaneswar

    Where it started

    A services shop, Objective-C giving way to Swift one project at a time.

    This is where I hit the things nobody teaches you: project-file conflicts, why code needs a repository at all, animation timing, and SOAP and XML that did not want to be parsed.

    I stayed because of what I could see underneath it. The tools for building here, and the standard the platform holds you to, were better than anything else I had touched — and every piece of knowledge made the next piece easier. It compounds. That is the whole reason I am still at it.

What hasn't changed

  • Maintainable over cleverCode the next person can change without asking me first.
  • Owned end to endRequirement, architecture, delivery, release — not just the ticket.
  • Tested before shippedFrom a first unit test to coverage past 90% on a shared codebase.
  • Relearning the toolsObjective-C to Swift to SwiftUI to working alongside agents.

“Lift yourself by your own self. Do not let yourself sink.”

Bhagavad Gītā 6.5 · uddhared ātmanātmānam

Illustrated portrait of Diptiranjan Rout, working at a laptop.
Usually building something
Get in touch

Have something worth building?

Open to full-time roles. Remote first · Bhubaneswar, India · IST (UTC+5:30)

diptiranjan.rout.ios@gmail.com