A black-and-white collage: Nikos presenting at the Ericsson Developer Conference, the Ericsson logo, and a slide on the history of enabling communication.

The problem

Private 5G software is dense: a lot of state, a lot of configuration, and a lot of things that go wrong in ways only an expert would recognise. The screens were rarely the hard part. The hard part was the space between design and engineering, and that is where all three of these cases live. Each one stands on its own.

The work is under NDA, so what you see here is the method and abstracted diagrams, not the real screens.

What I did

01a · AI-ready Figma deliveriesScreens show how it looks. Specs say how it behaves.

Our developers used AI to turn Figma into code, and it kept building the annotations instead of the interface.

My part
Research, an audit framework, and the delivery-for-ai skill
Result
Adopted as the team-wide standard

Our design files were built for humans: screens buried under sticky notes, arrows, colour overlays and rationale sitting on top of the interface. The AI could not tell the difference, so it tried to build the sticky notes too. As one developer put it, “Annotations confuse the AI.”

Before 27 screens · 148 annotations · one flat canvas

After 17 screens in sections · 3 specs

The same file, drawn abstractly to stay NDA-safe: every mark in the left panel is one of the 148 annotations.

I documented two real developer workflows to see where it broke, opened a Slack channel so feedback kept coming, and read about twenty case studies from teams like Atlassian, Spotify, Miro and Figma. The pattern was the same everywhere: structured input produces better output. To say how bad our files were, I wrote a small audit framework. It is my own, not an industry standard, but it let us talk about a file being more or less AI-ready instead of just “messy”.

AI-readiness audit framework: five dimensions, each scored 0 to 2.
No.DimensionScore
01Structural separationAre delivery screens on their own page or section, or mixed in with everything else?012
02Naming conventionCan an AI tool tell annotations apart by name, for example a handoff/ prefix?012
03Component semanticsDo frames and layers have meaningful names, or "Frame 47"?012
04Interaction dataIs behaviour machine-readable, or trapped in arrows and tables?012
05Noise ratioWhat share of the nodes are annotations rather than real interface?012
My own framework, not an industry standard: five dimensions, 0 to 2 each, out of 10.

Then I built a Kiro skill, delivery-for-ai. Point it at a polish page and it produces a clean delivery page in the same file: screens on the left, organised by feature; a few structured notes on the right about behaviour, style tokens and what changed. The rule that made it work was keeping those notes strictly about behaviour. When they described the interface too, the AI started inventing things.

Screens

show what it looks like

Specs

say how it behaves

  • Interaction behaviour flows, states, conditions
  • Style tokens theme, colour, type, components
  • Changes summary what is new, what changed
The delivery page: clean screens on the left, the three [SPEC] frames on the right.

I tested it with a developer over four rounds, fixing what broke each time. It went from the AI inventing a toolbar that didn’t exist to the developer saying “this is pretty good, the issues are on my side now.” Then I wrote it up as a shared standard, so it wasn’t just something I did on my own files.

01b · Build better togetherInvite one person one step earlier.

Design and development worked in sequence instead of together, so Frida Edstam and I built methods people could start using the next morning.

My part
Co-creating the methods with Frida Edstam, and the talk
Result
A talk at the Ericsson Developer Conference, and a printed handout for everyone in the room

PM to design, design to front-end, front-end to back-end. Everyone reacted to what the person before them had already decided, and nobody else was in the room when the decision got made. What we asked for is smaller than it sounds: invite one person from another discipline one step earlier than usual. You are giving them context, not extra work.

The handoff trapEach discipline reacts to the stage before it. The way out: one person, one step earlier.

  1. ProductFeature idea
  2. DesignerDesign studyBrainwriting
  3. DesignerLo-fi designMini-demo
  4. DesignerHi-fi designOne-person invite
  5. Front-end · back-endDevelopUX + front-end pairingMini-demo
  6. QA, everyoneTestUX bug bash
  7. TeamRelease
  8. EveryoneIterateUX improvements channel
The loop from the talk. Gold tags are the co-creation methods and habits, placed where they bring another discipline in early.
Nikos presenting at the Ericsson Developer Conference, clicker in hand, with the remote audience in another office on the screen behind him.
Presenting Build Better Together at the Ericsson Developer Conference, Kista, April 2026.
Nikos and Frida Edstam laughing together over coffee at the conference.
With Frida Edstam, who co-created and co-presented the talk.

Printed · A4 · one page

A copy for everyone in the room at the Ericsson Developer Conference, so people could start the next morning without us.

Take one

Principles are easy to nod along to and impossible to act on, so every method came with a time box, a group size and a source. “Collaborate more” is not something anyone can put in a calendar.

Build better together

Practical methods and habits for cross-discipline collaboration · EDC 2026

Co-creation methods

  1. Brainwriting
    1. Write the problem statement visibly
    2. Everyone writes ideas in silence · 5 min
    3. Rotate papers, build on others' ideas · 3 min
    4. Discuss the most promising directions

    Silent writing removes loud-voice bias and production blocking. Groups generate 20% more and better ideas than brainstorming.

    When
    Complex problem · many directions
    Kind
    Ideation
    Time
    15–20 min
    Group
    3–8, mixed
  2. UX + front-end pairing
    1. Designer and developer, same screen
    2. Walk through the real implementation
    3. Small issues: fix on the spot
    4. Bigger issues: write the ticket together

    95% of developers enjoy pairing more, with 15% fewer defects. Removes suspicion between disciplines.

    When
    Feature has working UI · before release
    Kind
    Review
    Time
    15–30 min
    Group
    1 designer + 1 developer
  3. UX bug bash
    1. Break the experience, not the code
    2. Behaviour: does it feel right?
    3. Copy: clear and consistent?
    4. States and edge cases: empty, loading, error, long text, zero items

    Applies the shift-left principle to experience quality. Developers notice what designers miss.

    When
    Once per sprint · before release
    Kind
    Quality
    Time
    30–60 min
    Group
    2–5, mixed
  4. Design Studio
    1. Everyone sketches 6–8 ideas · 5 min
    2. Present and critique · 2–3 min each
    3. Sketch again with the feedback · 5 min
    4. Converge on the strongest directions

    Cross-disciplinary sketching surfaces unknowns a designer alone would miss. Recommended by NN/g.

    When
    Early in a feature · wide problem space
    Kind
    Ideation
    Time
    60–90 min
    Group
    4–8, mixed
  5. Crazy Eights
    1. Fold paper into 8 panels
    2. Sketch 8 ideas in 8 minutes
    3. Present all the sketches
    4. Dot-vote on the strongest

    Time pressure forces quantity over quality, producing more creative output. A core exercise in the Google Design Sprint.

    When
    Many visual ideas fast · any stage
    Kind
    Ideation
    Time
    15 min
    Group
    Any size
  6. The one simple ask

    On your next feature, invite one person from another discipline one step earlier than usual, and try one small method: a brainwriting session, a mini-demo, a pairing session.

Daily habits

  • Public channels

    Feature or design decision? Shared channel, not a DM. Knowledge stays visible and decisions keep their context.

    About the product? Shared channel.

  • Mid-sprint demos

    Something visual working, even rough? Invite the designer for 15 minutes. It catches misalignments while they are still cheap to fix.

    Show early. Fix cheap.

  • One-person invite

    Every share-out or review: invite one person from another discipline. A developer in a design review. A designer in planning.

    One person, one step earlier.

  • UX improvements channel

    Anyone reports UX issues: confusing labels, slow transitions, missing states. Designers triage them into a backlog.

    Anyone posts · triage · backlog.

The one-page handout Frida Edstam and I gave out at the talk, re-set here with its sources linked, so people could start the next morning without us in the room.

Workshops are the easy part. None of it sticks unless ordinary days change too, which is why half the handout is daily habits. We gave it out at the conference so people could start without us in the room, and that mattered more to me than the talk: a talk is forty minutes, the handout is still on people’s desks.

01c · Generative UI for dashboardsDesign the rules, not the screen.

Our dashboards hold far more telecom data than any static layout can show, so in a hackathon we designed one that assembles itself.

My part
The card component, the specs, the prototype and the proposal, in a Tweak Week team with three other designers and a front-end developer
Result
A US back-end team used the component to display live data

What someone needs to see depends on their role and on what the network is doing right now, and building a new dashboard for every case is slow. So the proposal was a canvas and an assistant. The assistant assembles a whole layout from context, cards arrive pre-filled, and you steer it two ways: ask in the chat, or act on the cards yourself.

Canvas · ~70%Live
Trendsource · live
KPI98.2%source · live
Listsource · live
KPI41mssource · live
Statussource · live
Trendsource · live
Assistant · ~30%
  1. I’ve laid out a dashboard for your role, and I’m watching it live. Ask for a change, or edit the cards directly.
  • Whole layouts, assembled from context in one go.
  • Consistent containers: content varies, the card shell doesn’t.
  • AI suggests, the person decides: pin, keep or dismiss any card.
  • Transparency: every card shows its source and freshness.
Illustrative. Try it: ask in the chat, or pin and dismiss cards. When something changes, the card that matters grows and the rest make room.

Generative UI is easy to get excited about, so before designing anything I checked what had actually been shown. People prefer dynamic card interfaces to chat by roughly 72% (Stanford and Georgia Tech, 2025). Generated interfaces match expert designs about half the time, and constrained component catalogs beat free-form generation (Google Research, 2025). Dashboards should adapt to how expert the user is (IEEE Drillboards, 2025). So the assistant would not draw screens freely; it would assemble our own cards.

That meant the card had to work first. It was a fixed-size box that broke the moment a layout became dynamic, so we rebuilt it as one content-driven component that responds to whatever width the grid gives it.

Static card fixed width, fixed height

  • Breaks the moment a layout becomes dynamic
  • Limits what data can be shown at all

Dynamic card width and height follow the content

  • Responds to whatever width the grid gives it
  • One component instead of a set of special cases
A live layout, not a picture: the right-hand grid reflows as the window narrows.

Then we built it end to end, from the Figma component to live data, so the specs had to hold up at every step. A front-end developer adapted the real component, and a back-end team in the US used it to show live data and graphs.

  1. 01Card componentBuilt in FigmaDesign team
  2. 02Component specMarkdown, versioned in GitLabDesign team
  3. 03HTML prototypeGenerated straight from the specTo check the spec held up
  4. 04Real componentAdapted by a front-end developerLive data from a US back-end team
The deliverable was the spec: each step was built from the one before it, not redrawn.

How it went

Team-widemy AI-ready delivery method, adopted as the standard

A developer and a US backend team shipped real code from my specs.

Frida Edstam and I turned our design–dev methods into a talk at the Ericsson Developer Conference.

Tested with a developer over four rounds before it became the standard.

In all three, the developers were in it from the start.

What I learned

Bring developers in from week oneNone of the three cases worked because I was clever on my own

Screens show what it looks like. Specs say how it behaves. Mixing them broke our AI-readability.

My job is shifting towards defining constraints and judging what comes back.

Clean, organised input produces better code with fewer mistakes.

Clean, organised input produces better code with fewer mistakes. That sounds obvious written down, but it changes what a design deliverable is for. You end up writing for two audiences at once, humans and AI agents. Version control and specs are quietly becoming design tools, and the valuable part of the job shifts towards defining the constraints, then judging what comes back.

UX is moving from designing screens to designing systems of rules.

NS 26, an AI helper that has read this site. It is not Nikos.

Hello. I’m NS 26, an AI that has read this site.

I can be wrong, so each answer links the page it came from. Ask me anything about Nikos’s work, or press Notice to see how your questions are used.

NS 26

After Dieter Rams’s FS 80 for Braun, 1964.