▚ writing/
Writing on software engineering, AI, and building products.
Technical articles, random musings, and reflections on programming, architecture, and product development, collected in chronological order. Browse by category if you prefer.
#artificial-intelligenceYour Agent Has Too Many ToolsMCP tools consume context and affect prompt caching. CLIs and tool search point toward a better pattern: progressive disclosure for agent capabilities.#artificial-intelligenceThe Great Token ArbitrageA look at the emerging pricing gap between AI subscriptions and model APIs, and what it could mean for AI SaaS companies.#reflectionsUser Experience Is No Longer Just for UsersAs AI agents become capable collaborators, modern software increasingly needs to be legible to both humans and agents.#artificial-intelligenceBeyond RAG: Agentic Context ConstructionA look at how coding agents reveal a different abstraction for RAG: constructing context through navigation, iteration, and tool use.#web-developmentAnnouncing @taskade/temporal-parser@taskade/temporal-parser brings a real lexer and parser to ISO 8601, RFC 3339, and IXDTF in TypeScript.#web-developmentDiagnosing H12 and H15 errors with Socket.IO on HerokuHeroku H12 and H15 mean different timeouts. Diagnose the 30-second request limit, 55-second idle window, Socket.IO heartbeats, and transport issues.#ios-developmentHow to Remove and Report iCloud Calendar SpamUse Apple's current steps to report junk iCloud Calendar invitations, delete unwanted events, and unsubscribe from spam calendars on iPhone or iCloud.com.#finance-and-educationThe Bitcoin ExperimentReflections on Bitcoin as the greatest economic and social experiment of the 21st century, exploring trust in financial systems and the evolution of currency.#ios-developmentWhy UITapGestureRecognizer Has No Touch-Down StateUnderstand the UIGestureRecognizer state machine, why tap recognizers have no began state, and when a continuous long-press recognizer is appropriate for press feedback.#ios-developmentStatus Bar Style Not Changing in UIKitFix a UIKit status bar style that does not update: return the preference from the controller UIKit consults, forward container ownership, and capture non-fullscreen presentations when needed.#finance-and-educationCompleting my first MOOC: Computational Investing, Part IMy experience completing Georgia Tech's Computational Investing course on Coursera, earning a certificate with distinction and discovering the power of MOOCs.#ios-developmentSlides: A Primer to Unit Testing and Continuous Integration in iOSComprehensive guide to unit testing and continuous integration for iOS development. Covers testing techniques, command line tools, and setting up CI servers.#reflectionsReflect 2011Some notable milestones I have achieved in the year 2011.#ios-developmentviewDidUnload Was Never the Opposite of viewDidLoadviewDidUnload was a low-memory callback, not the counterpart to viewDidLoad or a deallocation hook. It has been deprecated and never called since iOS 6.#ios-developmentKeeping Index Within BoundsA simple, robust approach to managing list indices using clamping. Learn how to prevent out-of-bounds errors with minimal code.#finance-and-educationRecommendation: Yale Financial Market CourseA review of Robert Shiller's Yale Financial Market lectures, freely available on iTunes. An excellent resource for anyone interested in finance, from novices to experts.
16 essays · follow via rss →