A Framework to Make Decisions Faster as a Lead Software Engineer
A practical guide for lead engineers to make faster, better-informed decisions under pressure.
Recent content on TIL with Mohammad
A practical guide for lead engineers to make faster, better-informed decisions under pressure.
How does git worktree work and how it helps AI agents work faster and without conflicts
You'd usually use an AGENTS.override.md for ad hoc purposes
I’m running into some issues with the project setup Claude came up for me and I’m triaging it now. It’s using xcodebuild which prompted me to write this post. Prerequisite Highly recommend to acquaint yourself with the following definitions: Project Target Scheme Action Destination Product For that see my stackoverflow answer to: Xcode: What is a target and scheme in plain…
Why every AI guardrail shouldn't be just about cost, privacy and security but emotional well being, plus the inflection point that reduces asking questions and begins increasing AI delegation, anchoring (through the usage of specs) and joy.
Why direct view-to-view navigation breaks down at scale, and how a state machine with a dedicated navigation layer creates maintainable, testable mobile apps.
Dead simple, concrete examples of state-driven navigation. Build a 3-screen onboarding flow from scratch.
If you captured any state before doing some async work in your actor, then by the time your task is resumed, your captured state may be stale. This is what actor reentrancy is about. Because of this, you should avoid capturing things that are subject to change before your task is suspended. Instead, only retrieve values after your task is resumed. The term “reentrant” literally means…
How does Base 64, cursor collision, security, deletion of a cursor all come together, caching and stale data management
I used the following tutorial series from Apple on ‘Capturing and Displaying Photos’. They’re great. Just that it took me a bit to be able to piece together how components from AVFoundation work together. Working with AVFoundation isn’t really the kind where you read documentation and then can piece things together. It’s complicated. You might understand an individual…
Ever wondered what is getting suspended when Apple says 'suspension point'?
A laundry list on Live Activity challenges
Let's answer some lesser discussed architectural questions about Live Activities
Some tips for developing live activities and understanding its architecture
Sharing some tips on how to troubleshoot cases where tokens aren't getting updated or payload isn't getting updated. Or often payload is delivered but dropped by the app.
Key product decisions that may help to achieve a better Live Activity User Experience
Curious about why Swift's thread-safety mechanism is called an 'actor'? This post explores the origin of the name, clarifies common misconceptions, and explains why actors are about more than just asynchronous programming. Discover when to use actors in your Swift code and how they fit into the broader concurrency landscape
Discuss all aspects of interview
A good tree traversal excercise
Why having your own personal laptop is a game changer
most people think you need to study four years to get a job in tech. That's not true
Why are Swift Character ranges different from Integer ranges
Often as engineers we do ourselves a disservice and just do the hard work without measuring its impact. This post gives you strategies to promote yourself
Ever wondered what how two binaries interface with one another? Which changes impact ABI and which don't?
What's the difference between some and any? Why do they both exist? Which should I prefer using?
How to use frontmatter, shortcodes, make changes to your theme, do syntax highlighting
How does Hugo work? How are things structured? What are the main building blocks of Hugo?
Being a good lead is a lot about being first
Solve a fun challenged named 'Longest Common Subsequence' by learning how the direction in recursion can effect your perception but also make comparing code difficult
Of the most fun leetcode challenges I've ever done
Learn how to solve a challenging problem from LeetCode using dynamic programming and binary search. Find the longest increasing sequence of envelopes that can be nested inside each other.
Learn how to calculate the longest increasing subsequence. The differences of this with other tree based algorithms and more
Discussion about when you should start blogging, the importance of getting early feedback and how to get it, how to market your posts and more
Some gotchas with different kinds of trees, tree mappings and traversals
Learn how to use nm to count extra symbols that impact App Size
In this post I go through some of differences between the two linkers, their impact on app size and how we should be considerate of stripping symbols
In this post I extract all the good chunks from Apple's fantastic session on linker and how it does things to reduce app size. I also discuss some of the difference between Compiler and Linker
Jargons and Examples of the Xcode Build Pipeline
Ever thought what happens under the hood when you build your app?
How the their internals are different and where they're used
Ranges in swift are super simple to create. Yet they come in various forms. let r1 = 1...3 let r2 = 1..<3 let r3 = ...3 let r4 = 3... let r5 = ..<3 They all have range like characteristics, but have slightly different traits. It’s because they’re actually different types. Different Range Types let r1 = 1...3 // ClosedRange<Int> let r2 = 1..<3 // Range<Int> let r3 = ...3 //…
How cp ends up being dangerous...!
How to break down a recursive question into smaller pieces. Sophisticated Question.
How to break down a recursive question into smaller pieces. Easy Question
Why might pod lib lint fail to build while the app itself builds fine?
A different way of seeing tree explorations
Buried deep under Apple's K-12 resources?
Ever confused as to what the end result of your sorting is?
How do you fix a broken binary tree?
Are middle indexes always actually the middle index?