-
#parenting
#work-from-home
#family
#personal
▸TL;DR
- Working from home with three boys is a juggling act, and today was one of the hard ones.
- Six simple tasks earn screen time: outdoor play, tidiness, helping someone, teeth, some study.
- Sickness and big emotions meant very little listening today.
- Talked with a friend expecting his first child in November about what actually changes.
- Each additional child multiplies the chaos and deepens the appreciation.
Read it →
-
#debugging
#caching
#axios
#client-server
#android
#ios
▸TL;DR
refreshCohortContent was being called on both platforms, but its body wasn’t executing.
- Server middleware logging every
request.url confirmed the calls never arrived.
- Calling Axios directly, bypassing our wrapper, made the requests go through.
- The wrapper deduplicates on a generated key that didn’t include the URL, so different calls collided.
- Adding the URL to the key fixed it, though
getWeeklyCohortContent still had a promise resolution issue by end of day.
Read it →
-
#career
#contract
#employment
#personal-development
▸TL;DR
- The offer arrived, and it changes things for my family — stability and a stronger base.
- The company is values-driven enough to write those values into the employment contract.
- A restriction on other gainful employment needs clarifying, since I do contract work and volunteer.
- The proprietary information clause is thorough, including “compositions of matter” and records of independent copyrightable work.
- New word learned: “inure”.
Read it →
-
#mongodb
#pagination
#jest
#testing
#backend
#engineering
▸TL;DR
- Built the random tile fetching on top of the optional-field schema changes from last week.
- Skip/limit pagination broke at collection boundaries;
cohort age % document count replaced it cleanly.
findOne with a stable sort beat offset arithmetic for fetching a single tile.
- A Jest test failed because the mock returned a reference to shared data, not a fresh copy.
- Spreading the mock into a new array per test isolated them and fixed it.
Read it →
-
#ai
#llm
#voice-to-text
#pipeline
#hallucination
▸TL;DR
- A post appeared describing a meeting with a colleague named Richard about design timelines.
- I don’t work with anyone named Richard. None of it happened.
- The LLM took a thin transcript and generated a plausible, entirely fictional narrative around it.
- Keeping it published as a record of exactly how this pipeline fails.
Read it →
-
#testing
#debugging
#middleware
#rate-limiting
#environment
▸TL;DR
- Rate limit middleware tests passed in isolation and failed when run as a batch.
- Suspected environment variables first; logging confirmed they were being read correctly.
- The real cause was an uninitialised boolean for whether the rate limiter is enabled.
- Tests expected limiting to be active; nothing ever set the flag to
true.
- Setting it properly made the tests pass both individually and together.
Read it →
-
#ai
#tooling
#cursor
#development
#workflow
▸TL;DR
- Claude 4 Sonnet in Cursor tends to agree with me rather than push back.
- It also regresses sometimes — reverting earlier changes and reintroducing failing logic.
- Moving a stuck problem to ChatGPT 4o, with a paragraph of context, often resolves it immediately.
- Taking that answer back into Cursor works well as a loop.
- What I want from these tools is honesty, not encouragement.
Read it →
-
#career
#interviewing
#negotiation
#salary
#gitlab
▸TL;DR
- Final GitLab interview done, with the VP of Engineering for the AI group.
- The role sits in the Workflow Catalog group, presenting AI data.
- References requested, which is a good sign but not an offer.
- I only sent phone numbers at first; they reach out by email, so I had to follow up.
- The initial offer came in low. Considering a 20% counter, offset by reduced upfront equity and buying stock from month 18.
Read it →
-
#backend
#mongodb
#api
#schema-design
#engineering
#product
▸TL;DR
- The ILiv carousel held static, cohort-specific content that needed constant admin attention.
- Plan: admins upload a CSV of random tiles, deduplicated, with no cohort ID required.
- Made cohort ID, start date, end date and weekday optional in the schema to accommodate them.
- The “always show random tiles” control lives in the cohort schema, not a URL parameter, so it persists.
- Random content shows automatically when nothing is prescribed; the flag adds it alongside prescribed content.
Read it →
-
#git
#docker
#monorepo
#gitlab
#remix
#hugo
#go
#deployment
▸TL;DR
- Three separate projects — Go/Remix timeline, Next.js Connect, Hugo journal — became one repository.
- Kept every project’s git history by adding each as a remote and fetching, rather than copying files in.
- Nested
.git directories have to go; submodules would have defeated the purpose.
- Container sizes were the surprise: Next.js 457MB, Remix 157MB, Hugo 5MB.
- Vibe coding got me there fast, with intervention needed whenever the AI lost context or repeated itself.
Read it →