Open to product design roles Tel Aviv-Yafo · --:-- local

I design interfaces for moments when every second counts.

I'm Ofek, a Product Designer with 7 years of experience designing mission-critical systems for the Israeli Air Force: command & control, mission planning and real-time monitoring. I work side by side with product managers and engineers from discovery to delivery, and my CS background helps the designs actually ship.

7 yrsdesigning operational systems for the IAF
50%faster key tasks after redesigning core workflows
~50operators researched and tested with, 24/7 shifts
4 teamsadopted the shared design system I led

Selected work

Complex, data-dense tools for people who can't afford to miss anything. Product names and data are altered for confidentiality.

About

Rigor from the control room, care for the person in the chair.

For seven years I designed the systems Israeli Air Force operators rely on around the clock. That work taught me to sit through a night shift before drawing a single screen, and to measure a design by fewer errors under pressure, not by how it looks in a review.

I hold a B.Sc. in Computer Science and write HTML, CSS and JavaScript, so engineers and I speak the same language. I'm now looking to bring that rigor to a product team building meaningful, user-centered products.

Away from the screen: drums, scuba diving, woodworking, running and chess.

Experience
2021–2025

Product Designer, Core Operational System

Consultant · Israeli Air Force

  • Owned end-to-end design of a mission-critical system with the PM and a dedicated dev team.
  • Cut key task time by 50% by redesigning core workflows from research and usability tests with ~50 operators.
  • Reduced operator errors in real-time scenarios through clearer hierarchy, alerting and status visualization.
  • Designed real-time monitoring dashboards that turn dense data into action.
2018–2021

Product Designer, Multi-System Portfolio

Israeli Air Force

  • Designed command & control, mission planning and maintenance systems in parallel, from requirements to delivery.
  • Led a shared design system adopted by 4 development teams.
  • UX consultant to product managers and dev teams across IAF units; mentored new designers and taught UX methodology.
Skills & education
Design
Product design, user research, usability testing, interaction design, information architecture, prototyping, design systems, data-dense UI & dashboards
Tools
Figma, Illustrator, Photoshop, AI-assisted design workflows
Code
HTML, CSS, JavaScript, Java, Python
Education
B.Sc. Computer Science, The Open University of Israel (2026) · UX/UI Specialist Program, John Bryce (2019)
Languages
Hebrew (native), English (fluent), Spanish (fluent)
Contact

Let's build something people can rely on.

All work
Case study 01 · Israeli Air Force

Flare: from hard-coded alerts to alerts operators build themselves

Flare is a system for managing alerts and automated actions. It is one of seven operational systems that work in sync to protect Israel's airspace, and one of the systems I planned and designed in my role.

Role

Product Designer, end to end

Team

Product manager, development team

Users

Shift operators, 24/7, 12-hour shifts

Scope

Research, rule builder, scheduling, live control panel

Flare rule editor: rule groups on the left and a node graph from All Entities through Area and two Planes to an Alert
Background

Watching the sky for 12 hours straight

Starlight is a real-time system for protecting the airspace. It is staffed 24/7 and built around a map, where each entity represents an aircraft and carries its details.

Part of the operator's job is to spot anomalies and suspicious behavior in the airspace in real time. That takes full concentration across 12-hour shifts.

To help operators cope with the system's cognitive load, the team decided to try alerts. The basic alerts, mostly hard-coded, helped a little, but they needed frequent changes and every change took up valuable development time.

That is where the idea came from: a subsystem that lets operators create their own custom alerts.

How it started

From code-based alerts to custom alerts

Through user research, meetings and silent observation during shifts, I found that a lot of time and effort went into tracking every aircraft to catch deviations and events. That load made it hard for the shift to focus on actually handling those events.

Operators were spending their attention on finding the events, and had too little left for handling them.

From there I mapped four needs:

Automatic anomaly detection

Detect anomalies and unusual behavior in the airspace automatically and alert the operator. For example, alert when an Airbus A380 is in the sky.

Fixed follow-up actions

Once behavior is flagged, the operator has to perform the same set of steps while juggling many other tasks. I saw a chance to automate those steps and take load off the shift.

Flexible alert settings

Which alerts matter depends on the current threat picture and operational status, so alerts need to be adjustable per shift.

Personal fit for each operator

Operators run their shifts differently. Some want to mute every alert, others want to set alerts themselves. Alerts had to adapt to each person.

Ideation

A system for alerts and automated actions

The ideas started with an alert management screen and a way to switch off existing alerts. They grew into a full system for managing alerts and automated actions, which operators can turn on and off in real time. I sketched it in four parts.

01

Create the alert

Creating an alert starts with defining the anomaly the operator wants to find. I planned a search-based system: the operator enters the unusual conditions, and the system finds matching events regardless of the order of the conditions.

Passenger plane+ Airline: El Al+ At Ben Gurion+ Flight no. 123

Concept: the ideal search-based query, where conditions can come in any order.

02

Define what should happen

After defining the alert, the operator sets the actions that follow when the anomaly is detected. I mapped every possible action and let operators pick any number of follow-ups, with no limits or dependencies between them: highlight the aircraft, show its flight history, report it.

03

Set how the alert is used

The operator sets the alert's active hours, for example for flights that are only suspicious at night. The creator also assigns groups and tags, so the alert is easy to classify and find later.

04

Manage rules live during the shift

The alerts a shift needs change with the threat picture and operational status. I wanted a screen where the operator picks which rules run during that shift and which alerts are relevant to them.

An unexpected problem

The search screen couldn't be built in time

The development team received the specs but ran into a problem: they couldn't build the central entity-search screen within the project's timeline.

Later, one of the developers suggested an open-source library that could solve it, but with limits on how the system would work. It supported filtering, not search. The conditions would depend on each other and on the order they appear in.

That meant adapting the solution and rethinking the design.

The open-source flow as proposed: a chain of round nodes labelled with letters, from all entities to area, planes, filtered planes and alert
What the developers proposed. Each node narrows the one before it: all entities, then an area, then planes, then filtered planes, then an alert. Right-clicking a node opens a filter window (if it has one), and conditions inside it can only be joined with OR.
My solution

Making a filter graph readable

I kept the library's node-based model and redesigned what it shows and how operators work with it.

The nodes

The original nodes were circles with random colors and letters. I changed them to an oval shape that shows what the node contains from the outside, with a matching icon and one fixed color for each node type.

Round lettered nodes above, redesigned oval nodes below showing type, icon and content: Area Ben Gurion air base, Plane id LY324, Alert planes collision warning
Before and after. Above, the original letter circles. Below, the redesigned nodes: you can read "Area: Ben Gurion air base" without opening anything.

Filter node windows

Double-clicking a filter node opens a window for choosing limiting conditions and the relation between them (OR / AND). Step through how an operator builds a condition:

Filter window with a saved condition and a new condition row joined by OR
Adding a relation. Choosing OR adds a new condition row, grouped with the first.
Complex filter: two OR groups and two single conditions joined by AND
A complex filter. OR groups nested inside an AND, readable as one sentence per line.

Information nodes

Double-clicking an information node, such as an alert or an action, opens a window for its details: a title, a description, a priority level, and the automated actions that run when the alert is clicked.

Alert window with title, details, High/Medium/Low level and actions on click: show history, open window, mark, freeze
Alert node. Priority and follow-up actions live in the same window, so the alert and its response are defined together.

Adding a node

To add a node, the operator clicks the arrow next to the node it should come from and picks the type of node to create.

Add node menu: Plane, Area, Alert, AND, OR, Mark, Show History
Add node menu. Entities, logic and actions, each with the same icon and color it carries on the canvas.
Putting it together

Creating a rule

Building a rule happens in two stages: first the nodes, then the extra details about the rule.

Stage one: the structure

Rule editor: rule groups on the left, node canvas in the middle showing All entities, Area, two Plane nodes and an Alert
Structure tab. Rules are organized in groups on the left; the node graph is built on the canvas.

Stage two: rule details

The details: who created the rule, relevant tags, the group it belongs to, and its schedule.

Additional details tab with creator, tags, group and timing fields
Additional details tab. Creator, tags, group and timing.

Scheduling lets a rule run only during certain hours or days. That makes alerts more precise and cuts down false alarms.

Timing settings: active from 06:00 to 23:00, daily, with a visual active window bar
Custom schedule. Active hours with a daily or custom repeat, and a bar that shows the active window at a glance.
Timing set to active at all times, rule runs 24/7
Always on. One switch for rules that should run 24/7 with no time limits.
Connecting to the operational system

Switching rules on and off, mid-shift

Flare is connected to the operational system, and rules run through it. So I added a side panel inside Starlight where operators turn rules on and off without leaving the map.

Flare side panel in the dark Starlight map: rule groups like Airspace Control and Threat Detection with toggles and counters
Flare inside Starlight. Rule groups with live toggles and counts of active rules, docked next to the airspace picture.