Faizan Azhar.
← All posts

Faizan OS Week 3: A Milestone Feed and the First Privacy Bugs

September 5, 2026 · Faizan Azhar

A curated timeline feed showing trip, investment, and savings milestones pulled together from across a personal operating system

Week two ended with a pattern settling in: build something, use it for real, then find out what it's actually costing you. Week three kept that pattern going, but it also handed the app its first module count explosion and its first bugs that weren't about speed, they were about something showing up on screen that shouldn't have.

Table of Contents

Five Modules in Two Days

One stretch this week added Career, Decisions Log, and a ported-over Study Abroad tracker, on top of a new Content Calendar module, almost back to back. Career started as a straightforward job-search tracker, then got renamed, then had a Next Action field pulled out, then had its edit modal replaced with a plain read-only page. Decisions Log went through the same kind of churn, added, then had its card preview trimmed down within the same day.

None of this was indecision for its own sake. It's what actually happens when you can describe what you want but can't picture the whole thing at once. You ship a first version, look at it for five minutes, and immediately know what's wrong with it. That loop is fast when the person doing the describing is also the only user.

Life Timeline: The Curated Milestone Feed

The bigger addition was Life Timeline, a module that pulls milestone-worthy events out of other modules instead of asking me to log them separately. A big trip ending, a savings goal hit, an investment milestone crossed, all of it lands in one feed instead of living wherever it happened to originate.

Getting there wasn't clean. The first version showed recurring bills as if they were milestones and let events bunch up around the same date until the feed looked cluttered instead of curated. Future events showed up mixed in with past ones with no way to tell them apart. Each of those got fixed one at a time: recurring bills dropped out entirely, future events got shown but visibly greyed out, and a "notable transaction" flag was added so a big purchase only shows up if it's actually worth remembering, not just because it crossed some dollar threshold.

The idea behind Life Timeline is one I keep coming back to with this app: the value isn't in any single module holding more data, it's in the connections between modules actually surfacing something you'd otherwise have to go looking for.

When Privacy Mode Didn't Mean Privacy

Faizan OS has a privacy toggle that blurs dollar amounts across the app, useful for screen-sharing or just not wanting numbers visible if someone glances at your screen. This week, that toggle turned out to have holes in it.

On the Investments page, a redesign had quietly missed applying the toggle to entire sections: the hero total, portfolio rows, monthly contributions, one-time injections, snapshots, even milestone progress bars were all showing real numbers regardless of whether privacy mode was on. Return percentages had the same gap. Then, separately, a milestone calculation was found to be leaking real estate values through in a snapshot total even when that asset was supposed to be excluded from the portfolio view entirely.

None of these were dramatic in the way a crash is dramatic. Nothing broke. The page loaded fine, everything looked normal, right up until you turned privacy mode on and realized it hadn't actually hidden anything on that particular screen. That's what makes this kind of bug worth naming separately from a performance bug: a slow page just wastes your time, but a privacy toggle that silently doesn't apply somewhere is the kind of thing you only find by actually testing the thing it's supposed to do, not by watching for something to visibly go wrong.

The Bug That Could Have Quietly Erased a Save

The scariest fix this week wasn't about anything showing up on screen. It was about what happens when a load fails.

Several modules save by reading the full saved state, then writing back an updated version. If the initial read failed, silently, the code was treating that failure as "there's nothing here yet" instead of "I don't actually know what's here." Which meant a failed load, followed by a normal save, could have quietly replaced real saved data with an empty or partial version, no warning, no error, nothing to notice until you went looking for something that was supposed to be there and wasn't.

Nobody hit it. It got caught while working through modules asking a boring but necessary question: what does this do if the read right before it fails? The fix makes every module refuse to save on top of a failed read instead of assuming the failure meant "empty."

This is the same shape of bug that shows up more than once building something like this: it's never about what happens when everything works, it's about what happens on the one path where something doesn't, and whether the code assumes the best case or actually checks.

A privacy blur film peeling back to reveal hidden financial figures underneath, representing a data privacy leak

What's Next

By the end of week three, the module count had jumped noticeably, and the app had its first real lesson in what "privacy" actually requires: not just a toggle that exists, but one that's been checked against every screen that shows a number. Week four keeps building on that same idea, this time with a redesign that touches nearly every module at once, and the kind of visual bugs that only show up once you're actually living inside the new look every day.

A hand catching falling data plates representing a near-miss bug that could have silently overwritten saved data

Frequently asked questions

What is Life Timeline in Faizan OS?+

Life Timeline is a module that pulls milestone-worthy events from across other modules, trips ending, savings goals hit, investment milestones, into a single curated feed instead of requiring separate logging.

What was the privacy toggle bug in Faizan OS?+

A site-wide privacy setting was supposed to blur dollar amounts across the app, but a redesign on the Investments page missed applying it to several sections, so real numbers stayed visible even with the toggle on. A separate bug also let a real estate value leak into a milestone total it should have been excluded from.

Could Faizan OS have actually lost data during week three?+

A bug was found, not triggered in practice, where a failed data load was being silently treated as nothing saved yet instead of an actual failure. If it had fired during a real save, it could have overwritten existing data with an empty version. It was fixed before it caused any data loss.

Why did so many modules get added and reshuffled in the same couple of days?+

Because a first version of a module is often the only way to actually see what's wrong with the idea. Career, Decisions Log, and Content Calendar all shipped, then got trimmed or restructured within the same day or two once they were being used for real instead of just described.

Is a privacy blur leak a common kind of bug in apps like this?+

Yes. Any feature that has to apply consistently across many screens, like a privacy toggle, a permission check, or a formatting rule, is easy to miss in exactly one place. Catching it usually takes deliberately testing that feature against every screen it should touch, not waiting for someone to notice.

Tags

Faizan OSVibe CodingBuild in Public

Free operational audit

Want help building yours?

I structure and run offshore delivery teams for a living. Start with a free operational audit.