01
iOS and Android
Concurrency, lifecycle and authentication issues in Swift and Kotlin.
Life / Swift / Kotlin / TypeScript / APIs
My Swift, Kotlin and backend code examples, with the decisions, failure cases and limits described alongside the implementation.
Try this / Practical field guide
A checklist for evaluating code samples, including the linked ZombieMutex references.
A space for the things I want to share
01
Concurrency, lifecycle and authentication issues in Swift and Kotlin.
02
Retries, idempotency, authorization and request contracts.
03
Positive paths, malformed input, boundary cases and regression checks.
Stories / Notes / Work in progress
No personal programming & code notes stories have been published in this collection yet. This section automatically fills with my own approved posts, notes, recipes, or build logs as I add them.
Visit the Life notebookPhotography / Original media
A spot for the first photograph
Original photos only, with descriptive captions
Stories behind the images
Details and context, not stock or invented travel photos
Photo entries appear automatically after original pictures and captions are approved and added to the Life notebook.
Engineering / Inspectable examples
I wrote these small examples and experiments around controlled inputs. They are separate from private customer work and are not physical hardware demonstrations. Open any sample for its checks, source references, and limitations.
TypeScript / Tested teaching helper
export function retryDelayMs(attempt: number, capMs = 8000): number {
const safeAttempt = Number.isFinite(attempt) ? Math.max(0, Math.min(12, Math.floor(attempt))) : 0;
const safeCap = Number.isFinite(capMs) ? Math.max(0, Math.floor(capMs)) : 8000;
return Math.min(safeCap, 250 * 2 ** safeAttempt);
}Cap exponential retry delays and let the caller enforce a total deadline.
TypeScript / Tested teaching helper
interface Decision { authenticated: boolean; authorized: boolean; integrityOk: boolean }
export function canMutateResource(input: Decision): boolean {
return input.authenticated && input.authorized && input.integrityOk;
}A client or attestation verdict cannot grant access to someone else's object.
Already on the site / Related material