← Back to field notes
Infrastructure6 min readOct 1, 2026

Lessons Learned & What's Next

A retrospective on building MistPulse solo: five lessons worth carrying into any infrastructure-facing project, and where the app goes from here.

Part 10 of 10 in Building MistPulse: A Network Architect's Field Notes

Share:XLinkedIn
Lessons Learned & What's Next

Nine posts ago, this series started with a simple frustration: a great platform, a portal that wasn't built for quick glances in the field, and a hunch that the Mist API could be reshaped into something that fit in a pocket. Looking back across the whole build, a few lessons stand out clearly enough that I'd tell them to anyone starting a similar project, whether it's a network tool, a security tool, or anything else that has to be trusted with real infrastructure.

Lesson one: verify before you build, every single time

The "curl first, build second" discipline from Part 3 is, without question, the single practice that had the largest return on the time it cost. It's not glamorous. It's a discipline that only pays off in the incidents that never happen: the bugs that got caught at the terminal instead of in production, the SLE migration in Part 9 that went smoothly because the new endpoint's shape was already known before a line of migration code was written. If I had to keep exactly one habit from this entire project and drop everything else, it would be this one.

The habits that pay off the most are the ones whose value shows up as incidents that never happen.

Lesson two: security has to be a design constraint, not a feature

The decision in Part 2 to never let the mobile app hold a Mist API token shaped every layer of this project that came after it: the proxy, the encryption, the allowlist, the redaction habits from Part 8. None of that was bolted on afterward. It was decided before the first screen was designed, which is the only point at which a decision like that is actually cheap to make. Retrofitting a security boundary into an architecture that wasn't built to have one is a dramatically harder and riskier project than building it in from the start.

Lesson three: build narrow, generalize on proof

The bulk rename story in Part 7 is the clearest example, but the pattern repeated in smaller ways throughout the project: resist generalizing a feature until a second, real use case shows up to prove the abstraction is worth its cost. Generalizing from imagination, before you have two concrete cases to compare, tends to produce the wrong abstraction: one shaped by guesses rather than by real, comparable data.

Five lessons from building MistPulse, visualized as a numbered infographic

Lesson four: fail loudly and honestly, not silently

This came out sharpest in the entity resolution work from Part 6, but it's a principle that applies everywhere a system makes an inference on incomplete information: a wrong answer delivered with confidence is more dangerous than an honest "I'm not sure." Every uncertain response in MistPulse, a low-confidence voice match, an ambiguous API result, is designed to say so, rather than silently guess and move on. That's a harder standard to build to than it sounds, because it means resisting the temptation to make a feature look more polished by hiding its uncertainty.

Lesson five: review has to be recurring, not a one-time gate

A solo project doesn't get the benefit of a second engineer catching what the first one missed. The substitute I built, deliberate, recurring bug-and-security sweeps, described in Parts 4 and 8, isn't as good as a real second reviewer, but it's dramatically better than no review process at all. The discipline of stepping back periodically, checklist in hand, and re-examining recent changes with fresh scrutiny is something I'd recommend to any solo builder, technical or not.

  • Verify API behavior with real calls before writing code against it
  • Decide the security architecture before designing the first screen
  • Build the narrow version first; generalize only once a second real case proves it's worth it
  • Design every uncertain response to say so honestly, rather than guess confidently
  • Make security and bug review a recurring habit tied to every deployment, not a one-time audit

What's next for MistPulse

The living feature-ideas document that caught the SLE deprecation early is still active, and it currently holds a handful of honestly-framed, not-yet-built ideas: each one marked with what would need to be validated before it gets built, in keeping with everything this series has been about. A few directions stand out: deeper live visibility into organization-wide changes as they happen, live authentication event visibility for network access control, and live guest-portal authorization visibility. None of these get built until they've gone through the same process described across this series: validated against real API responses, scoped narrowly first, and reviewed for security before they ship.

There's also a maintenance-shaped item on that list that isn't glamorous but matters: continuing to watch Juniper's own release notes for the next deprecation before it becomes urgent, the same way the SLE migration was caught early. Proactive maintenance isn't a single project milestone; it's a permanent, ongoing part of owning a tool that depends on someone else's API.

Closing thought

I started this project to solve a personal, specific problem: getting quick, trustworthy answers about my own network without opening a laptop. What I ended up with was also a genuine testbed for a question I care about professionally: whether a security-conscious architecture and a fast, iterative build process are actually compatible, or whether one always has to be sacrificed for the other. Ten posts and one working app later, my honest answer is that they're compatible, but only if the security decisions get made first, and only if the verification discipline never gets treated as optional under deadline pressure. Everything else in this series is really just the detail behind that one conclusion.

Thanks for following along through all ten parts. If you're building something similar, especially something that touches infrastructure you're responsible for keeping secure, I hope some part of this process is useful to you, mistakes included.

J

Written by

Jesus Hurtado

Network Architect and Cybersecurity Professional.

Comments

No comments yet. Be the first.

Leave a comment