commercial
MSP security console
Whitelabel MSP Tool (B2B)
US MSP console · ~15k MAU · 2+ years on the team
Rules wizard, weekly client PDF, and text-to-policy. Three slices shipped on my argument.


The product
US B2B tool for MSPs: a web SaaS for administrators, and a Chrome extension for end users. Admins see employee activity and manage DLP, passwords, and which sites people visit — a dense security CRM.
The bar I held: every admin task should have a short time-to-complete, and a new feature should not break settings already coupled to it. Roadmap owner: Head of Product. Mine: problem framing, scope of the slice, and the case for or against. Three slices shipped on that argument — the Rules wizard, the weekly client PDF, and text-to-policy.
Case Studies
New Wizard
New admins faced a steep setup path (company → Microsoft enterprise apps → policies etc). I proposed, prototyped (incl. AI), and validated a guided wizard to cut time-to-complete for first successful setup.
OutcomeA clearer first-run path shipped. Early sessions had fewer “where do I start” support loops.
How I would measureThis was not instrumented. I would track time-to-first-successful-policy and drop-off on each wizard step. A win: a new admin finishes setup without a “where do I start” ticket.
Client-facing weekly security report
MSP clients needed a weekly PDF for the client-company manager: results + concrete next security steps. Management pushed “everything on one A4”; and content didn’t fit so I argued for 2–3 pages (form follows function).
I lost initially, and the product shipped my version ~6 months later.
OutcomeA client-facing report operators could actually use in an account conversation — not a one-page constraint.
How I would measureI would check whether the client manager forwarded or discussed the report, and whether support stopped asking to squeeze it back onto one page.
AI text-to-security-policy
Policy creation was the heaviest and most used page: too many options, hard to check conflicts with existing rules (users could have dozens of them).
I proved text-to-action was feasible: took a real policy JSON from devs + docs into Claude Code, iterated ~10 cycles on business logic and demoed to C-level.
OutcomeLeadership put AI-assisted rule creation on the roadmap.
How I would measureI would compare time-to-first-valid-rule against the click editor, and the share of drafts a person accepts without a rewrite.
Commercial angleLower time-to-value on the core paid workflow.
Slice Ownership
Besides the three cases above, I sat in planning and discussion of every new feature. A simple product on the surface, with several modules that are extremely complex in logic.
When we added features or changed old ones, I often found overlap with legacy logic — or feature quirks that could conflict with, or even break, the carefully curated settings admins had already made.
Sometimes that argument changed the feature logic, and the console design followed. To solve those problems I either proposed a new flow entirely, or stayed with explanatory copy. I chose based on how many people used the feature — how many users this could actually hurt. Sometimes a constraint explanation or a warning was enough.
Console
This is a web admin for creating enterprise information-hygiene “Rules.” Besides tracking employee web activity, admins could see workplace productivity, limit access to web resources for groups or individual users, set password-creation rules, and much else.
The product had several types of rules an admin could create and combine for the effect they wanted. Example: ban the marketing department from entertainment sites. But Adam in marketing needs that for work right now, so allow him. And only from 10:00 to 15:00, and only from the work account. That is one of dozens of possible combinations.
Once there are dozens of rules, it is easy to get lost in them — and almost impossible to hand creation or editing to another MSP employee who may not know that client well yet.
How I approached it: AI text-to-security-policy. I connected Claude Code to the documentation, distilled it, and asked lead engineers for Policy JSON files as examples. After a few iterations it was clear this could fix more than “I cannot hand a client to another MSP admin” — it could speed up work with rules in Policies overall.
Extension
On the user side the product is a browser extension for Chrome, Opera, and other leading-in-corporate browsers. It limited itself to pop-ups warning about web activity on particular sites, based on the Rules admins create.
After using the extension myself and hearing client feedback, I proposed adding a full web page so users would have a work hub of their own.
The pitch: users get personalized news from their company about Policy changes ahead of time; plus workplace analytics — productive time, limits and remaining time on particular sites, and so on. Behind those extras I saw a shift in the relationship between company admins, MSP admins, and extension users: instead of an extension that punishes and nags, a more ethical — and slightly cunning — move: earn trust in the security system.
I prototyped the idea and presented it to management. They rejected it: “for the user we should be invisible.” In my view the extension was already very visible — it just caused irritation. The idea stayed unshipped, with no chance to run moderated tests and see how users would react.
Achievements
Other features worth mentioning
- Aberrant events
- Extension management
- Business apps
- DLP / AI prompts (enforce ChatGPT data privacy)
- Rule expiration time/date
- Broadcast to users
- Whitelabel branding setup
- GIT-style rule changes approval
AI evangelism
I started working in Figma through Claude Code before Figma AI existed. Figma Make, and dozens of hand-built prototypes before Make. I cared about semi-automation and evolving the design process. Among other things:
- An agent that assembled the product information architecture
- An agent that figured out which pages/modules needed changes from a product brief
- An agent that looked for patterns already used in the product that could serve a new design (low success rate)
- An agent that drafted a basic idea for a new feature straight into Figma via Figma MCP
Making user-facing AI tools
Cheap revise loops. Most stayed prototype or got killed.

The rules UI is atypical and hard for MSP newcomers. I prototyped in Cursor: type instead of clicking the whole editor. Product docs were connected, so the model understood the logic. Output was a draft for a revise process — not final rules. After a few text passes, someone would know how to do it in the real UI without correcting later. Cheap quick win, not perfect. Stayed a prototype.
Separate experiment in the live console: paste a Slack thread, get a suggested set of cybersecurity rules.
LLM search for incidents — “what did user X do on Tuesday at 14:00?” Made sense out loud. Killed. I pushed gradual AI. Resistance was “this is new for developers, we do not want to spend time learning it,” plus “who pays for tokens?” At the product’s user count, caps would not have been a million-dollar burn. Could also have been a pain reliever for no mobile web: if text works, Slack from a phone. Displacing the MSP as the middleman between security and the client — I would have red-lit that myself.
Bets
Four bets I would walk a hiring manager through. Each one is a hypothesis, how I would measure it, what the company decided, and what I think now. Folded into one line: policy-as-a-short-video, wizards beyond Rules, and point-solution AI. Same frame, not the ones I would start with.
What-if before push
Result:Backlog
Hypothesis: previewing a rule (this user, time, site, device → allow / warn / block) stops an admin from breaking someone’s work. I would measure support tickets tagged “rule broke access” before and after, and time-to-first-safe-rule. The company put it on the backlog. I still think it is the right operator question. Backlog is a fair call if the engineering cost was real.
Policy diff, like a GitHub review
Result:Backlog
Hypothesis: old on the left, new on the right, and technical MSPs catch a bad edit before it ships. I would measure the share of policy edits reverted within a day. The company put it on the backlog. I still think the diff is the right check for this audience.
Employee portal
Result:Company killed it
Hypothesis: show who is at risk of becoming a low performer, and idle time drops — a shift in stance, not another nagging popup. I would measure idle hours per observed user and how often people dismiss the extension. The company killed it: “we are already too present on their machines.” They meant popup count. I meant the stance. A cheap test would have separated those two readings.
Idle time in dollars
Result:I killed it
Hypothesis: idle time in dollars helps a client manager in a recession. I would measure whether those roughly two managers per company opened the figure and used it in a conversation. The test needed client input and a CRM integration. That cost more than the learning, so I backed off. Right kill.
The loop
I spent hundreds of hours on demos and workshops with C-level, ran many moderated tests with clients, used PostHog and AI to study user behavior (depth, session length), and designed so it actually mapped onto the technical constraints.
Hundreds of 1:1s with product managers. Weekly with the CEO and other C-level.
The interesting part lasted while there was still logic, interviews, tests.
We ended the collaboration when design was split off from product conversations. Execution-only without a product loop does not interest me — I want to own what we build and why, not only the design file.