<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"><channel><title>Nanda Mochammad, Tech Mentor &amp; iOS Engineer</title><description>Tech mentor and iOS engineer in Surabaya, Indonesia. Seven years of production iOS across banking, healthcare, and education, now facilitating at the Apple Developer Academy and working on retrieval-augmented generation and NLP.</description><link>https://nandamochammad.xyz/</link><item><title>SwiftData in production: what the tutorials do not tell you</title><link>https://nandamochammad.xyz/writing/swiftdata-in-production/</link><guid isPermaLink="true">https://nandamochammad.xyz/writing/swiftdata-in-production/</guid><description>SwiftData demos look easy until you ship a POS app with 10,000 transactions. A field guide to the four traps that bite real apps (@Query overuse, unpaginated lists, delete-rule crashes, and background writes) with production Swift code and an honest SwiftData vs Core Data vs GRDB verdict.</description><pubDate>Sat, 04 Jul 2026 00:00:00 GMT</pubDate></item><item><title>The AI Access Ladder: a framework for responsible AI use in learning</title><link>https://nandamochammad.xyz/writing/the-ai-access-ladder/</link><guid isPermaLink="true">https://nandamochammad.xyz/writing/the-ai-access-ladder/</guid><description>We did not ban AI. We built a ladder instead: five levels of access, from no-AI fundamentals to full delegation, matched to what a learner is actually trying to build. The decision rules, the science of desirable difficulty, and the honest results, including the failures.</description><pubDate>Sat, 27 Jun 2026 00:00:00 GMT</pubDate></item><item><title>The quiet power of Claude Code hooks</title><link>https://nandamochammad.xyz/writing/the-power-of-claude-code-hooks/</link><guid isPermaLink="true">https://nandamochammad.xyz/writing/the-power-of-claude-code-hooks/</guid><description>Hooks are the part of Claude Code almost nobody turns on: small shell commands that fire at fixed points in the agent&apos;s loop, so you can auto-format every edit, block a dangerous command before it runs, or ping yourself when a task finishes, deterministically, without asking the model to remember. A look at what they are, where they live, and three I keep switched on.</description><pubDate>Tue, 23 Jun 2026 00:00:00 GMT</pubDate></item><item><title>App icons with Icon Composer: from Figma to Xcode 26</title><link>https://nandamochammad.xyz/writing/app-icon-with-icon-composer/</link><guid isPermaLink="true">https://nandamochammad.xyz/writing/app-icon-with-icon-composer/</guid><description>A step-by-step guide to creating adaptive iOS and macOS app icons using Icon Composer in Xcode 26. Pick a Figma community template, export SVG, configure layers for light, dark, and tinted appearances, then wire it up to your target.</description><pubDate>Sun, 21 Jun 2026 00:00:00 GMT</pubDate></item><item><title>Prompting for general tasks: common mistakes and how to fix the answer</title><link>https://nandamochammad.xyz/writing/prompting-for-general-tasks/</link><guid isPermaLink="true">https://nandamochammad.xyz/writing/prompting-for-general-tasks/</guid><description>Most bad AI answers come from the same handful of prompt mistakes: vague ask, missing context, no example, no format. This is the anatomy of a prompt that works, a short taxonomy of the errors people actually make, and a symptom-to-fix table for repairing a response instead of starting over.</description><pubDate>Sun, 21 Jun 2026 00:00:00 GMT</pubDate></item><item><title>Vibe coding vs engineering: where is the line?</title><link>https://nandamochammad.xyz/writing/vibe-coding-vs-engineering/</link><guid isPermaLink="true">https://nandamochammad.xyz/writing/vibe-coding-vs-engineering/</guid><description>Vibe coding is real and it works, for the right things. A field guide to the spectrum between talking a feature into existence and actually engineering it, the stakes-by-lifespan matrix that tells you which one a task deserves, and one rule that survives contact with production: you can vibe what you could verify.</description><pubDate>Sat, 20 Jun 2026 00:00:00 GMT</pubDate></item><item><title>Becoming AI-fluent: a learner&apos;s playbook for the 4Ds</title><link>https://nandamochammad.xyz/writing/becoming-ai-fluent-a-learners-playbook/</link><guid isPermaLink="true">https://nandamochammad.xyz/writing/becoming-ai-fluent-a-learners-playbook/</guid><description>Knowing the 4D framework is not the same as living it. This is the implementation side: why AI fluency matters for learners now, what changes when you build the habits versus when you don&apos;t, and a per-session and four-week routine that turns Delegation, Description, Discernment, and Diligence into reflexes.</description><pubDate>Fri, 19 Jun 2026 00:00:00 GMT</pubDate></item><item><title>The 4D framework: a learner&apos;s map for working with AI</title><link>https://nandamochammad.xyz/writing/the-4d-framework-for-working-with-ai/</link><guid isPermaLink="true">https://nandamochammad.xyz/writing/the-4d-framework-for-working-with-ai/</guid><description>Anthropic&apos;s AI Fluency course teaches four habits (Delegation, Description, Discernment, Diligence) for working well with AI. Here is what each one means, the sub-skills inside it, and why a learner who internalises the 4Ds gets more from AI without quietly outsourcing their own understanding.</description><pubDate>Thu, 18 Jun 2026 00:00:00 GMT</pubDate></item><item><title>Connect Claude to your Zotero library with a local MCP server</title><link>https://nandamochammad.xyz/writing/connect-claude-to-zotero-with-mcp/</link><guid isPermaLink="true">https://nandamochammad.xyz/writing/connect-claude-to-zotero-with-mcp/</guid><description>A step-by-step guide to wiring Claude into your own Zotero library with a local MCP server. Search, summarise, and pull quotes from your papers in plain conversation, with every hop staying on your machine.</description><pubDate>Tue, 16 Jun 2026 00:00:00 GMT</pubDate></item><item><title>Run your Linear board from Claude Code: set up the Linear MCP</title><link>https://nandamochammad.xyz/writing/set-up-linear-mcp-with-claude-code/</link><guid isPermaLink="true">https://nandamochammad.xyz/writing/set-up-linear-mcp-with-claude-code/</guid><description>Linear ships an official hosted MCP server, so wiring it into Claude Code is one command and a browser sign-in, with no install and no API key. This is a plain, step-by-step guide to connecting it, confirming it works, and using it for real project management without letting it loose on your tracker.</description><pubDate>Tue, 16 Jun 2026 00:00:00 GMT</pubDate></item><item><title>Let Claude Code set up the Zotero MCP for you: a prompt-first guide</title><link>https://nandamochammad.xyz/writing/set-up-zotero-mcp-with-claude-code/</link><guid isPermaLink="true">https://nandamochammad.xyz/writing/set-up-zotero-mcp-with-claude-code/</guid><description>You do not have to install or configure anything by hand. With Claude Code in auto mode, you prompt and it does the work. This is a plain, step-by-step guide to the prompts, the checks, and confirming the connection on both macOS and Windows.</description><pubDate>Tue, 16 Jun 2026 00:00:00 GMT</pubDate></item><item><title>Printing thermal receipts from an iPad: ESC/POS over Bluetooth</title><link>https://nandamochammad.xyz/writing/printing-thermal-receipts-from-ipad-esc-pos/</link><guid isPermaLink="true">https://nandamochammad.xyz/writing/printing-thermal-receipts-from-ipad-esc-pos/</guid><description>There is no Swift package that just works for the cheap thermal printers Indonesian shops actually buy. This is the byte-level field guide (ESC/POS, Core Bluetooth, MTU chunking, and a small ReceiptBuilder you can copy) for printing a Rupiah receipt from an iPad.</description><pubDate>Sat, 13 Jun 2026 00:00:00 GMT</pubDate></item><item><title>Git branching strategies that scale: from a solo repo to a team of fifty</title><link>https://nandamochammad.xyz/writing/git-branching-strategies-at-any-scale/</link><guid isPermaLink="true">https://nandamochammad.xyz/writing/git-branching-strategies-at-any-scale/</guid><description>A practical field guide to the four branching models that cover almost every project (commit-to-main, GitHub Flow, trunk-based, and Git Flow), with the commands for each and a clear rule for knowing which one you are actually in.</description><pubDate>Fri, 12 Jun 2026 00:00:00 GMT</pubDate></item><item><title>Git workflow for teams: the daily habits a shared repo runs on</title><link>https://nandamochammad.xyz/writing/git-workflow-for-teams/</link><guid isPermaLink="true">https://nandamochammad.xyz/writing/git-workflow-for-teams/</guid><description>A practical playbook for working in a shared repository: branching cleanly, writing commits that explain themselves, opening reviewable pull requests, staying in sync without rewriting shared history, and choosing how a PR lands.</description><pubDate>Fri, 12 Jun 2026 00:00:00 GMT</pubDate></item><item><title>Structuring a new SwiftUI project so month six does not hurt</title><link>https://nandamochammad.xyz/writing/structuring-a-new-swiftui-project/</link><guid isPermaLink="true">https://nandamochammad.xyz/writing/structuring-a-new-swiftui-project/</guid><description>A practical starting structure for a fresh SwiftUI app: the entry point, grouping by feature instead of by kind, where state actually lives, naming conventions, and the honest signal for when to reach for Swift Packages.</description><pubDate>Fri, 12 Jun 2026 00:00:00 GMT</pubDate></item><item><title>Platform, Multiplatform &amp; Companion App: what&apos;s the actual difference?</title><link>https://nandamochammad.xyz/writing/platform-multiplatform-companion-apps/</link><guid isPermaLink="true">https://nandamochammad.xyz/writing/platform-multiplatform-companion-apps/</guid><description>Three terms that describe how Apple apps relate to hardware, and how code is shared (or not) across devices. Defined, illustrated, and compared with references to Apple&apos;s documentation and WWDC sessions.</description><pubDate>Thu, 11 Jun 2026 00:00:00 GMT</pubDate></item></channel></rss>