Featured series
View all seriesReact Native → Swift
Native iOS for senior React Native engineers: what really changes in Swift, SwiftUI, state, navigation, data, concurrency, persistence, tooling and the App Store, and what you can only do in native.
Agent loop
Building a coding agent from scratch, one loop at a time, every part in runnable code.
All articles
What is Jev: TypeSafe AI's model that decides instead of writing
What is Jev, TypeSafe AI's System One model: it returns typed decisions with probabilities instead of text. How to call its API, what it costs and when to use it.
Read moreWhy hire me through Upwork: protected payments, a verifiable track record and arbitration
What you gain by hiring through Upwork: money in escrow until you approve each milestone, auditable hours, a track record nobody can edit, and arbitration.
Read moreYou inherited a product: the code audit before you continue
What a code audit reviews when you inherit a product from another team, what the written verdict says, and how to decide between keeping, fixing and rewriting.
Read moreWhat is a product engineer, and how is that different from a programmer?
What a product engineer does, how the role differs from a programmer, and how to tell which of the two your business needs before you hire anyone.
Read moreWhat you can only do in native: WidgetKit, Live Activities, App Intents, StoreKit 2, Foundation Models and watchOS
The iOS capabilities React Native does not offer and that justify Swift to a client: WidgetKit, Live Activities, App Intents and Siri, StoreKit 2, the on-device language model with Foundation Models and watchOS. Series close and sales argument.
Read moreiOS testing and tooling for seniors: Swift Testing, snapshots, mocks, Instruments and build times
How to test an iOS app coming from Jest and Testing Library: Swift Testing versus XCTest, snapshot testing, mocks via protocols and URLProtocol without jest.mock, XCUITest versus Maestro, Instruments, SwiftLint and modularizing to cut build times.
Read moreBuild, signing and the App Store: what EAS hid from you
What EAS Build did for you and is now yours: certificates, provisioning profiles and entitlements explained once, Fastlane match for team signing, TestFlight, the App Review guidelines that reject the most, the Privacy Manifest and Tuist.
Read moreUI, theming and animations in SwiftUI without NativeWind or Reanimated
How to do theming, animations and accessibility in SwiftUI coming from NativeWind and Reanimated: design tokens in the Asset Catalog, Dynamic Type as the default, SF Symbols, withAnimation, matchedGeometryEffect, PhaseAnimator, native gestures and Liquid Glass as a day-one API.
Read moreFrom the expo-* ecosystem to Apple frameworks: the equivalence table by domain
Which Apple framework replaces each expo-* package when you move from React Native to native iOS: camera, location, authentication, payments, notifications, files and more, with the Info.plist permissions and the silent crash everyone hits once.
Read moreiOS persistence: SwiftData, GRDB and Keychain, and why Realm is no longer an option
How to choose between SwiftData, GRDB and Core Data to persist data in an iOS app, why Realm stopped being an option, why the Keychain survives uninstalling, and how to design offline-first and sync with CloudKit.
Read moreSensitive data out of the prompt: a TypeScript library written in 39 minutes from its specification
sanitype redacts, masks or drops sensitive data inside the process before a payload leaves for an LLM, a log sink or a third party. How it is implemented in TypeScript.
Read moreSwift concurrency: goodbye event loop. async let, TaskGroup, actors and Swift 6
Swift Concurrency for people coming from JavaScript: why there is no event loop, how async let and TaskGroup replace Promise.all, what actors and @MainActor are, what Sendable requires and why in Swift 6 a data race is a compile error.
Read moreData in Swift: what TanStack Query did for you and how to build your cache layer
There is no TanStack Query in Swift. How to design the data layer of an iOS app with URLSession and Codable, a repository that emits with AsyncStream, SwiftData or GRDB as the local cache, invalidation and supabase-swift.
Read moreSpec-Driven Development in React Native: an MVP that lists the world's earthquakes, specified before writing code
I applied Spec-Driven Development to a React Native MVP that lists the world's earthquakes: the specification decides what goes in the list, and its acceptance criteria become the tests.
Read moreSwiftUI navigation without file-based routing: NavigationStack, a Route enum and deep links
How to move mentally from Expo Router to SwiftUI: NavigationStack with a Route enum, the Coordinator pattern, deep links and Universal Links, and what swift-navigation adds when sheets and alerts become state.
Read moreState and architecture in SwiftUI: from Zustand and Redux to @Observable and TCA
How to manage state in SwiftUI coming from Zustand and Redux: MVVM with @Observable as the default, when TCA justifies its learning curve, dependency injection with swift-dependencies or Factory, and why to modularize into packages from day one.
Read moreVoice agent that books appointments: ElevenLabs, Cal.com and a backend that never lets the model guess
How I built a voice agent that books 30-minute appointments with ElevenLabs and Cal.com, and why the Fastify backend is what keeps the model from inventing times.
Read moreSwiftUI is not React, even if it looks like it: body, identity, modifiers and layout
SwiftUI explained for people coming from React: what body is compared to render, why a view's identity matters, how modifier order changes the result, the layout system without flexbox and the map from hooks to property wrappers.
Read moreSwift for people who already master TypeScript: the five differences that change how you design
Swift explained for TypeScript developers: value vs reference semantics, optionals as part of the type system, enums with associated data, protocols with extensions, and Codable instead of zod.
Read moreWhy a senior React Native developer should learn native in 2026
When native iOS beats React Native (widgets, day-one APIs, on-device ML), when it loses (two platforms, OTA, team) and why learning Swift adds to your toolkit instead of replacing it.
Read moreThe hard limits of an autonomous agent: what keeps it from disaster
The limits that separate an experiment from an agent you'd leave running: iteration and token caps treated as a budget, command and path allowlists, a kill switch, idempotency and observability.
Read moreData annotation jobs: what labeling and reviewing AI responses involves
What data annotation jobs and AI response review are: the tasks involved, how they feed model training (RLHF), and how annotator quality is measured.
Read moreOrca: the ADE for orchestrating a fleet of coding agents in parallel
I tried Orca, the open-source Agent Development Environment (ADE), to run a fleet of coding agents in parallel—Claude Code, Codex and more, each in its own isolated worktree.
Read moreFrom a Jira ticket to a pull request: the end-to-end autonomous system
How I turned the agent into an autonomous system: a Jira ticket triggers it (webhook or polling), a queue with persistent state processes it exactly once, and it returns a PR and a Jira comment.
Read moreThe agent inside a real repo: isolating tasks with git worktree and shipping a PR
How to put an agent loop to work on a real repository: isolate each task with git worktree, reproduce the bug with a test, run the whole suite, and ship a PR instead of a merge.
Read moreFrom generating files to using tools: a code agent's ReAct loop
The shift from generating the whole function to an agent that reads, searches, edits, and runs with tools: the ReAct loop and why the agent builds its own context instead of receiving it in the prompt.
Read moreWho writes the agent's tests: three ways to define what's correct
Who writes an agent's tests defines what counts as correct. Three levels of input: spec and tests by hand, examples the agent turns into tests, or the repo's suite as the evaluator.
Read moreThe sandbox in an agent loop: from the model's text to a reliable observation
The sandbox in an agent loop turns the model's text into a reliable observation: extract the code from the prose, check that it parses, run it with a timeout, and isolate the process.
Read moreThe simplest loop that works: a write-test-fix agent, step by step
The simplest agent that works: spec and tests by hand, the model writes the code, it runs, and the failure feeds back as context. A complete write-test-fix loop in code that runs.
Read moreWhat an agent loop is (and isn't): state, action, stop
What an agent loop is and isn't: its three components—state, action, and stopping condition—and why 'build me an app' is input for a chat, not an agent.
Read moreModel routing with OpenRouter and DeepSeek to cut costs without losing quality
How I routed models in production with OpenRouter, using DeepSeek for the bulk of traffic and premium models only where it matters, cutting LLM costs without degrading quality.
Read moreI automated a news site with n8n: from 20 RSS feeds to WordPress drafts
How I built an n8n pipeline that reads 20 RSS feeds, deduplicates with Postgres, curates and rewrites with tiered AI, and leaves the article as a WordPress draft with an image and a Telegram alert.
Read moreNo articles match that search.