renan-rios / identity-security-posture.tsx
identity-security-posture.tsxhome.tsxworkiq.tsxlayouts
~ / case-studies / identity-security-posture

Identity
Security
Posture

A one-week hackathon prototype, now shipping in Microsoft Entra. Three versions, two rebuilds, and every design decision here traces back to the research, customer feedback or review that drove it.

Lead Product Designer Microsoft Entra · IDNA My biggest project yet
the arc — three states
v0 · The hackathon buildOne week, beside my day job. Proved the idea had legs.
v1 · The version that fell flatCorrect, consistent — and called dull in a leadership review.
v2 · The redesign that shippedRebuilt to reason out loud and wait for a human.
Public PreviewShipping next.
main ● 0▲ 0 renan-rios/portfolio TypeScript JSXUTF-8Slide 01 / 26
renan-rios / the-model.md
the-model.mdlayouts
v0 ~/renan-rios $ cat the-model.md
The model

Not everyone needs the same keys

A company hands out keys to everyone who works there — staff, executives, contractors, guests, and the automated accounts that run jobs with nobody watching. Each group needs a different set. Give anyone more than they need, and you widen what an attacker inherits if that account is taken over.

step 01 · identity segments
Sort them into groups

Admins, frontline staff, executives, engineers, guests, automated accounts. The rules that are right for one group are wrong for another — and every company groups them differently.

step 02 · good state
Say what “safe” means for each

For each group, a list of requirements every identity in it must meet: strong sign-in, no permanent admin rights, a managed device. That list is the group’s good state — and the company writes it, not Microsoft.

step 03 · the agent
Keep everyone there

People join, and access granted “just for today” never gets removed. The agent checks every identity against its own group’s list, spots the ones that slipped, and handles the safe fixes itself — asking first for anything risky.

“Identity security posture” is the answer to one question: how many identities currently meet the bar their own group is held to — and what is the most valuable thing to fix next?

main ● 0▲ 0 renan-rios/portfolio MDUTF-8Slide 02 / 26
renan-rios / status-quo.md
status-quo.mdlayouts
v0 ~/renan-rios $ cat status-quo.md
The status quo · how this is solved today, without AI

Everyone built the missing parts themselves

There was no single place for any of this. People pieced the picture together one tool at a time, with no shared definition of “healthy” to measure against. The closest thing was one security score for the whole company — not a good state per kind of account. So the teams who took it seriously built the missing parts by hand.

by hand 01
Build the groups

Nothing sorted accounts for you. An admin hand-picked users one at a time from a spreadsheet-like table and built every group themselves.

by hand 02
Warn the people affected

No built-in way to tell someone before a change hit them — so teams hand-built their own emails, timing and opt-outs.

by hand 03
Roll it out, and undo it

Every rollout and every rollback was manual. If something broke at 3 a.m., a person had to undo it by hand.

the picture had to be pieced together from → Secure ScoreConditional AccessPIMSign-in logsDevice compliance

Every company was solving the same problem privately, by hand — and only the teams with time to spare kept up with it. Even then, the two hardest questions were still unanswered: which change matters most, and is it safe to make?

main ● 0▲ 0 renan-rios/portfolio MDUTF-8Slide 03 / 26
renan-rios / the-spark.md
the-spark.mdlayouts
v0 ~/renan-rios $ git checkout v0-hackathon
Where it came from

A hackathon, and an unusual ask

A product manager on the Conditional Access team went looking for someone who could do two things at once — design the experience and build it in code. In one week, alongside my day job, that became a working prototype.

> Demonstrate the end-to-end Good State framework — from defining the good state, running a campaign, drift detection and automated remediation.
— the hackathon brief
Won the hackathon challenge
what it proved

Range, from day one — one person carrying a rough idea to a working build in a week, with no handoff in between.

main ● 0▲ 0 renan-rios/portfolio MDUTF-8Slide 04 / 26
renan-rios / v0-hackathon.png
v0-hackathon.pnghackathon-spec.mdlayouts
v0 ~/renan-rios $ open v0-hackathon.png
v0 · the hackathon build

What one week actually looked like

Built beside my day job. Rough, but the entire loop already worked end to end — analyse, group, measure, plan the fix.

01 · Analyse
empty-state.png
v0 empty state: an Analyze my tenant button and nothing else.

One button. Nothing existed until the agent had read the company’s set-up.

02 · Group
suggested-cohorts.png
v0 analysis: summary tiles, a donut chart and a list of suggested cohorts.

It sorted every account into suggested groups, and flagged the ones at risk.

03 · Measure
achieving-posture.png
v0 cohort detail: three gauges for standing privilege, phishing-resistant MFA and risk status, with a per-metric table.

Then one group against its own checklist, requirement by requirement.

04 · Fix
phased-rollout.png
v0 phased rollout: three phases with user counts and a start button.

And a phased rollout, drafted for you — pilot first, everyone last.

what it proved

An AI could read a company’s set-up, sort its accounts into groups, and name the riskiest one. That was the whole bet — and it held.

what it wasn’t

Tiles, a donut and a wall of text, buried inside another product. It could tell you something was wrong. It couldn’t help you do anything about it.

on the numbers

“Zava” is a fictional demo company — every figure here is placeholder data. Look at the design, not the numbers.

main ● 0▲ 0 renan-rios/portfolio PNGUTF-8Slide 05 / 26
renan-rios / second-brain/
second-brain/layouts
v0 ~/renan-rios $ open second-brain-goodstate.netlify.app
The second brain

Where every decision is written down

One private knowledge base holding every PRD, note, transcript, customer session and spec — the receipt for everything else in this deck.

PRDMeeting notesTranscriptsChatResearchPersonasFlows
42
customer sessions
90
meeting notes
34
specs
≈1,000
linked notes
why it exists

Nothing lives in someone’s head or a lost thread. Every input lands in one searchable place, wired together, so the agents and I always draw from the same source.

what it buys me

A paper trail. Every change traces back to a note — the decision, who drove it, and the date.

every change is backed by one of → CustomerLeadershipDesign

This is the difference between “I think we changed it because…” and opening the note and reading the date.

main ● 0▲ 0 renan-rios/portfolio FolderUTF-8Slide 06 / 26
renan-rios / the-bet.md
the-bet.mdlayouts
v0 ~/renan-rios $ cat the-bet.md
The bet

Leadership made a bet on it

The build drew real attention. Leadership asked us to keep going and turn it into something we could put in front of real customers — a one-week prototype became a staffed product on a path to preview.

> Identity Posture Agent: productizes the customer’s homework — risk analysis, phased rollouts, assessment, planning, remediation — so the org doesn’t have to do it manually.
— the kickoff that greenlit a staffed product
before
A one-week hackathon hack
after
A staffed product, three PMs, on a path to preview
main ● 0▲ 0 renan-rios/portfolio MDUTF-8Slide 07 / 26
renan-rios / what-they-asked-for.md
what-they-asked-for.mdcustomer-feedback/layouts
v1 ~/renan-rios $ cat what-they-asked-for.md
What the product grew into

Five things real customers asked us to build

Once real companies had it in their hands, they told us what to build next. Each of these was designed because someone asked for it by name — and every card below opens the actual conversation it came from.

Break-glass accounts
The emergency accounts a company keeps in reserve if all other admin access fails. The product has to find them and never touch them.
InSpark, NVIDIA, Toyota, NACHA — and one real incident
evidencePreview kickoff · 15 Apr
Knowledge base
Upload your own security policies and naming rules, so the advice fits your company instead of a generic best practice.
Accenture, Intesa Sanpaolo, BNC, Qualcomm
evidenceAccenture session · 18 Mar
Identity segments
Admins, executives, contractors and service accounts don’t need the same rules. Companies wanted to draw those lines themselves.
Wells Fargo, InSpark, Pivotal, Canadian Tire
evidenceMVP Summit · 24 Mar
Compliance frameworks
Show which published standard each requirement satisfies, so the work survives an audit or a pen test.
NIST 800-171 & CMMC — regulated and government customers
evidencePrivate preview summary
Rollback & safety nets
Preview the blast radius, pause mid-flight, and undo. Nobody will let an agent change access without a way back.
Ava, NVIDIA, BNC, Banco do Brasil
evidenceAva session · 12 Jun

Notice what they have in common: not one is a new capability for the AI. Every one is about giving the human a way to stay in control of it.

main ● 0▲ 0 renan-rios/portfolio MDUTF-8Slide 08 / 26
renan-rios / break-glass.md
break-glass.mdcustomer-feedback/layouts
v2 ~/renan-rios $ cat break-glass.md
Feature 1 of 5 · break-glass accounts

The account you must never touch

Every company keeps one or two emergency admin accounts locked away, for the day everything else fails. If an automated agent ever tightens security on those, nobody can get back in. So the product has to find them, and then leave them completely alone.

Then it happened for real. At NACHA, break-glass was configured perfectly and still failed — because under pressure the admin did not know how to use it. That one incident produced ten repair items.

main ● 0▲ 0 renan-rios/portfolio MDUTF-8Slide 09 / 26
renan-rios / knowledge-base.md
knowledge-base.mdcustomer-feedback/layouts
v2 ~/renan-rios $ cat knowledge-base.md
Feature 2 of 5 · knowledge base

Teach it your company’s own rules

Generic best practice is easy to ignore, because it does not know anything about you. Customers wanted to hand the agent their own written policies so the advice comes back in their language, against their rules.

That last note changed the brief. The same feature already existed elsewhere and had reached 13 tenants out of 2,947. So the problem was never the capability — it was earning enough trust that someone hands over their policies.

main ● 0▲ 0 renan-rios/portfolio MDUTF-8Slide 10 / 26
renan-rios / identity-segments.md
identity-segments.mdcustomer-feedback/layouts
v2 ~/renan-rios $ cat identity-segments.md
Feature 3 of 5 · identity segments

Not everyone in the company is the same

The first version shipped with one Microsoft-written definition of “admin”. Real companies looked at it and said their organisation does not divide up that way — and that they should be the ones drawing the lines.

Being straight about this one: the screen on the left is designed and prototyped, not shipped. Only the Microsoft-defined admin segment made the first release. Everything else here is the roadmap that the evidence bought.

main ● 0▲ 0 renan-rios/portfolio MDUTF-8Slide 11 / 26
renan-rios / frameworks.md
frameworks.mdcustomer-feedback/layouts
v2 ~/renan-rios $ cat frameworks.md
Feature 4 of 5 · compliance frameworks

Being secure isn’t enough — you have to prove it

Security teams do not only need to be safe. Once a year they have to sit in front of an auditor, an insurer or a regulator and show it. So every recommendation had to be able to say which published standard it satisfies.

So frameworks label the work — they never get blended into one number. That one sentence from a customer settled a decision the team had been arguing about internally. Worth flagging: of the 22 frameworks in the design, about six were named by real customers; the rest we inferred.

main ● 0▲ 0 renan-rios/portfolio MDUTF-8Slide 12 / 26
renan-rios / rollback.md
rollback.mdcustomer-feedback/layouts
v2 ~/renan-rios $ cat rollback.md
Feature 5 of 5 · rollback & safety nets

“Every software should always have a rollback button”

This is the simplest thing anyone asked for, and the hardest to argue with. Before a customer will let software change who can access what, they want to see what it will do, stop it halfway, and put it back.

Still being specced

There is no screen to show you yet. The demand is proven and the constraints are agreed — the interaction itself is still being written.

  • Settled: what has to be reversible, and who is allowed to reverse it
  • Open: whether “undo” means one click back, or one phase at a time
  • Open: what happens to access that changed after the campaign ran
  • Shipping around it meanwhile: excluded accounts up front, and a rollout that pauses itself if sign-ins start failing
status · in spec

And the honest status: our own engineering lead wrote it down — “the rollback button is in the mocks but there’s no implementation.” The guardrails around it are real. Rollback itself is the one thing on this list I cannot show you working.

main ● 0▲ 0 renan-rios/portfolio MDUTF-8Slide 13 / 26
renan-rios / v1-entra-baseline.png
v1-entra-baseline.pngthe-bet.mdlayouts
v1 ~/renan-rios $ open v1-entra-baseline.png
v1 · the Entra baseline

Rebuilt properly — and it fell flat

Microsoft Entra — Identity posture (v1)
The v1 identity posture page: a tenant-analysis card with four metric tiles and an identity-segments table, in standard Entra styling.

A page of its own, built to the house style: four numbers and a table.

what was right

Out of the agent and onto a surface of its own. Consistent with everything around it, legible, and technically correct.

what was wrong

It looked like every other settings page in the product. Nothing on it suggested an AI had actually reasoned about your company.

This is the version that got the hard feedback →
main ● 0▲ 0 renan-rios/portfolio PNGUTF-8Slide 14 / 26
renan-rios / turning-point.md
turning-point.mdprivate-preview-summary.mdlayouts
v1 ~/renan-rios $ git blame turning-point.md
The turning point · April 2026

Internal feedback. External feedback. One answer.

Over two weeks we got feedback on version 1 from two places — inside the company and outside it, and neither group knew what the other had said. Grey text is my plain-English translation.

They look impossible together: leadership wanted more AI, customers wanted less automation. But each is describing a different half of the same job, and one move satisfies both: let the AI do the thinking, and leave the deciding to the human. That sentence is version 2.

main ● 0▲ 0 renan-rios/portfolio MDUTF-8Slide 15 / 26
renan-rios / evolution.png
evolution.pngv0.pngv1.pngv2.pnglayouts
log ~/renan-rios $ git diff v0 v1 v2 -- posture-overview
The same screen, three times

Where it came from, and where it landed

v0 The hackathon build
v0 — inside the agent
v0: posture as a tab inside the Conditional Access agent.

A tab inside another product. Tiles and a donut.

v1 The Entra baseline
v1 — a page of its own
v1: a standalone identity posture page with metric tiles and a table.

Its own page — but four numbers and a table.

v2 What shipped
v2 — the redesign
v2: an AI-forward overview with a headline insight, a good-state trend and ranked recommended actions.

A headline, a trend, and three ranked moves.

change 01

The dashboard became a sentence — “your privileged tier is the biggest opportunity to reduce risk”, i.e. start with the people who can open the most.

change 02

A score you can watch move — one trend line, so progress between runs is visible at a glance.

change 03

The table became a ranked list — three moves, best first, instead of a dense table to read.

change 04

The company’s own context on screen — its industry, its rules, its size, so the advice reads as specific.

main ● 0▲ 0 renan-rios/portfolio PNGUTF-8Slide 16 / 26
renan-rios / decision-01.tsx
decision-01.tsxoverview.pnglayouts
v2 ~/renan-rios $ open decision-01.tsx
Decision 01

From a flat list to one ranked move

Identity posture — recommended actions
The shipped overview: one headline insight and a ranked list of three recommended actions, best first.

One headline read, then three moves in priority order — not an undifferentiated list.

LIST
EVERYTHING, NO ORDER
ONE
MOVE, WITH ITS REASONING
DESIGN the signal

Prioritisation is the product. A ranking of the few moves that close the most exposure beats a longer, more complete backlog.

the change

Collapsed the flat list into one ranked set of recommended actions, led by the single highest-impact move — with the share of risk it closes next to it.

what it unlocked

The admin starts on the move that closes the most exposure, instead of deciding where to begin.

main ● 0▲ 0 renan-rios/portfolio TSXUTF-8Slide 17 / 26
renan-rios / decision-02.tsx
decision-02.tsxrollout.pnglayouts
v2 ~/renan-rios $ git diff v1 v2 -- phased-rollout
Decision 02

The AI got a bigger job. A person still presses go.

Version 1 used AI to check things. Version 2 hands it the judgement: who moves first, in what order, when to stop. That is exactly why a person now has to approve it.

v1 AI as a checklist
v1 — phased rollout
v1 phased rollout: three phases listed with a start button, in standard Entra styling.

It scanned and ticked four boxes. Then three phases and a Start button, with no reason for that order.

v2 AI as the planner
v2 — redesigned rollout
v2 rollout: rollout-at-a-glance summary, AI-assisted recommendation, per-phase AI summary, start and preview-impact controls.

It plans the waves, argues for them in plain language, and monitors them. Every wave still waits for a click.

It picks the order. Wave 1 is “the admins with the lowest predicted disruption” — the agent’s call.

It predicts the fallout before anyone moves. A forecast, not a database lookup — the exact bar leadership set.

It drafts the comms and sets the date. It writes the message admins receive and proposes a deadline with a runway.

It stops itself. It watches whether people are still getting in, and pauses on its own if that dips.

Source: Private Preview change-control feedback · May–Jun 2026
main ● 0▲ 0 renan-rios/portfolio TSXUTF-8Slide 18 / 26
renan-rios / decision-03.tsx
decision-03.tsximpact.pnglayouts
v2 ~/renan-rios $ open decision-03.tsx
Decision 03

Show them exactly who this hits

Impact preview — Phase 1 (Pilot)
The impact preview drawer: who is affected, what users will experience, the exact notification they receive, and the safeguards built in.

The preview an admin sees before anything runs.

Admins won’t approve a change to powerful accounts if they can’t see how far it reaches. So we showed them — before anything runs.

  • Who’s affected — three people in this wave, none of them new to the process.
  • The exact message each person will receive, in the words they’ll actually read.
  • The safeguards, written out — emergency accounts excluded, each phase starts only on a click, pause and restore at any time.

Automation earns trust by showing what it’s about to do — and by knowing what not to do on its own.

main ● 0▲ 0 renan-rios/portfolio TSXUTF-8Slide 19 / 26
renan-rios / decision-04.tsx
decision-04.tsxbreak-glass.pnglayouts
v2 ~/renan-rios $ open decision-04.tsx
Decision 04 · the one a customer forced

The customer who broke our assumption

Every organisation keeps a couple of emergency accounts — the spare keys that get you back in when everything else locks you out. Our rollout had to leave them strictly alone. We assumed they always looked a certain way. A preview customer showed us they don’t.

Settings — Break-glass accounts
The break-glass settings page: auto-detected emergency-access accounts excluded from rollouts, each with verify and remove actions.

Emergency accounts, found automatically and excluded by default — with a human confirming.

CUSTOMER the signal

A preview customer’s emergency accounts didn’t match our rigid assumption. Our rollout would have either missed them — or locked the customer out of their own company.

the change

The product now finds emergency accounts itself, including ones defined by group, shows them to the admin to confirm, and excludes them by default.

why it mattered

The most valuable feedback we got wasn’t about the interface. It was about an assumption underneath it.

Source: break-glass customer sync · Apr 2026
main ● 0▲ 0 renan-rios/portfolio TSXUTF-8Slide 20 / 26
renan-rios / evolution.log
evolution.loglayouts
log ~/renan-rios $ git log --oneline --graph
The whole history

Every change, and who drove it

a1c0Posture born inside the agent(v0-hackathon)
DESIGNOne week beside the day job, as a tab inside another product — just to prove the idea had legs.
7f2eA first-run experience to orient admins
CUSTOMERCustomers couldn’t tell how to start, so we explained the agent before dropping them into it.
b4d1Posture steps out of the agent
DESIGNThe idea outgrew a panel buried inside another product — it needed a page of its own.
c93aAn AI review step on the rollout(v1-entra)
DESIGNFirst attempt at review-before-you-act. Right direction, basic execution.
d20fPhased rollout, fully redesigned
LEADERSHIPThe turning point — human-initiated waves, an impact preview, and safeguards written out on screen.
e57bPosture page, fully redesigned
DESIGNRebuilt around what admins actually try to achieve, and aligned to the new rollout.
f8a6Break-glass, made real-world(v2-shipped)
CUSTOMERRigid assumptions broke how real companies keep their emergency accounts, so the product now finds them itself.
b7c2Customisation suite added
CUSTOMEROne company’s definition of “good” is never another’s — segments, thresholds and exclusions became configurable.
HEADShipping to Public Preview
LEADERSHIPThree preview phases cleared; the prototypes became the production code.
main ● 0▲ 0 renan-rios/portfolio LOGUTF-8Slide 21 / 26
renan-rios / customer-themes.md
customer-themes.mdlayouts
v2 ~/renan-rios $ cat customer-themes.md
What customers taught us

Validated in the open

Through Private Preview the direction was tested across 20+ engagements — enterprises in finance, energy, tech, government and education, plus partners, MVPs and analysts. Three themes shaped nearly every decision.

what we heard
  • Customisation is non-negotiable — one company’s definition of “good” is never another’s.
  • Trust is earned in steps — admins climb a ladder. Few press “accept” at first, but they act on what it tells them.
  • Posture is cross-functional — it can’t live in one team’s silo.
the trust ladder
1 · Show meInsights only. Tell me what you found.
2 · I’ll do itI act manually on your advice.
3 · Ask me firstYou act, once I approve. Where the product sits today.
4 · Just handle itFull autonomy. Almost nobody starts here.
Synthesised from 24 Private Preview feedback sessions logged in the second brain. Customer names appear for an internal audience only — individuals and tenant data stay out.
main ● 0▲ 0 renan-rios/portfolio MDUTF-8Slide 22 / 26
renan-rios / shipped.md
shipped.mdlayouts
v2 ~/renan-rios $ cat shipped.md
Proof

What actually shipped

3
private-preview phases cleared, end to end
20+
customer, partner, MVP & analyst engagements
6
industries represented in preview
Production
code
engineering shipped my components — not a rebuild from a picture

The screenshots show a fictional demo company built for prototyping. Every figure inside them is placeholder data used to exercise the design — none of it is a result, and I make no claims from it. The four above are the real ones.

where it is now
Hackathon · v0One-week prototype — challenge winner.
Private Preview · v1–v2Redesigned and shipped to real enterprises across three phases.
Public PreviewShipping next.
BeyondNon-human and agentic identities, deeper compliance mapping, posture across platforms.
main ● 0▲ 0 renan-rios/portfolio MDUTF-8Slide 23 / 26
renan-rios / process.md
process.mdlayouts
v2 ~/renan-rios $ cat process.md
How this was possible

PRD to production, all in code

There was no handoff. The prototype was real, typed code from the first mock — so engineering shipped the same components instead of rebuilding from a picture. It is the only reason a one-week hackathon build could become a shipping product.

01
Frame the problem
Run the brief through AI, capture it into my knowledge base, pressure-test directions before a pixel exists.
02
Synthesise
Every note, transcript and doc feeds one place, so the real priorities surface rather than the loudest ones.
03
Research
Choose the methods; AI interrogates the findings; every deliverable committed to the repo.
04
Explore in codeno Figma
Three or four directions built as real code, iterated with the team on GitHub.
05
Prototype at full fidelity
Orchestrate Copilot, Claude and MCP into a production-close build.
06
Hand off through the repo
Engineers pick up the same repository — no translation, no drift.
why it matters here

Because the design and the build were the same artefact, the design couldn’t drift from what launched. No redlines, no rebuild, no lossy translation.

the second brain

Every input — briefs, notes, transcripts, research, customer calls — lives in one linked, access-gated knowledge base the agents read and write. It is why every decision in this deck has a source.

See the full process
main ● 0▲ 0 renan-rios/portfolio MDUTF-8Slide 24 / 26
renan-rios / collaboration.ts
collaboration.tslayouts
v2 ~/renan-rios $ open collaboration.ts
The collaboration

How the work actually got made

As lead designer I sat between three PMs, engineering and the wider Entra design org — and the loop below is how a rough idea became production code.

PM brings mocks
Rough, unfinished, a direction to react to.
We sync
Agree the direction before anything is built.
I work it through an LLM
Thinking out loud, in code, until it holds up.
Coded prototype
Real, typed components — not a picture.
Engineering ships it
The same components go into production.
iterate until it’s right — then back to the PM before engineering picks it up
three product managers

Each owned a slice — risky users and the posture dashboard; phased rollouts and the customer-facing analysis; tenant analysis, first-run and break-glass. I designed across all three.

engineering

Embedded throughout for feasibility, not just at handoff. They took my high-fidelity prototypes and shipped them as production code.

the wider design org

Weekly syncs with the other Entra designers, keeping this consistent with a design language much bigger than my one product.

the rhythm → Daily PM syncsBi-weekly engineering feasibilityWeekly demosLeadership review every ~3 weeksWeekly design-consistency sync
main ● 0▲ 0 renan-rios/portfolio TypeScriptUTF-8Slide 25 / 26
renan-rios / reflection.md
reflection.mdlayouts
v2 ~/renan-rios $ cat reflection.md
Reflection

A designer who ships ambiguity

A one-week hackathon prototype is now shipping in Microsoft Entra. What carried it there wasn’t one good idea — it was three versions, two rebuilds, and evidence I was willing to act on.

  • Range — I design and build, carrying an AI idea from zero to shipped.
  • Craft — the hardest feedback I got made the product; I rebuilt rather than defended.
  • Trust is a design material — previews, guardrails and a human in the loop are what earn the right to automate.
  • Prioritisation is the product — the value wasn’t finding more problems, it was choosing the first one.

Designing in code closed the gap between what I intended and what shipped — they were the same thing.

Renan Rios
Lead Product Designer · Microsoft Entra

An award-winning hackathon, carried all the way to Public Preview.

main ● 0▲ 0 renan-rios/portfolio MDUTF-8Slide 26 / 26
01 / 26