Software Engineer & Engineering Leader

Blaine Bell, Ph.D.

I build products and lead engineering teams across graphics, user interfaces, distributed systems, and AI. Drawing on a Ph.D. in Computer Graphics and extensive industry experience, I've worked from research and architecture to production software and developer tools.

I enjoy translating new technologies and research into practical software, including the integration of AI into commercial products. As a manager and hands-on engineer, I've built and mentored teams while working across head-worn displays, desktops, public displays, web and mobile platforms, distributed systems, and hardware integrations.

Blaine Bell

Research

View Management

My Ph.D. work introduced and coined the term View Management—an approach to user-interface design centered on managing what you see, using layout to control spatial relationships between objects while respecting visibility constraints.

The techniques control what users see across interfaces ranging from 2D desktops to immersive 3D environments, from view-only presentations to interactive systems, and from single-user to collaborative applications. The ideas remain especially relevant to virtual and augmented reality, where information has to remain visible, stable, and understandable inside a changing 3D scene.

View Management overview

A summary of the techniques and how they can be applied to interactive 3D applications.

These algorithms have also been enhanced for lower CPU usage, larger environments, more stable annotation placement, and runtime control over layout strategies.

Software platform

Data Programming (DP)

Data Programming is a software platform for building distributed applications that run across platforms and work together interactively. The central idea is simple: a program is an in-memory database.

DP embeds a program's logic directly into tabular structures. It is not simply another programming language; it is a different way of structuring and changing software at runtime. I built DP engines for iOS, Android, JavaScript, desktop Java, and C++, along with an IDE for building distributed applications across devices on the fly.

Why it is different

Runtime development

Program data and logic can be queried and changed directly in memory instead of requiring an edit/compile/restart cycle for every change.

Distributed by design

Standalone, client-server, and peer-to-peer applications can share the same programming model across multiple devices.

Ad-hoc connectivity

Devices can discover, connect, join, and leave at any time without relying on a central server or requiring application-specific communication protocols.

Cross-platform

The same concepts can be implemented on mobile, web, and desktop systems rather than maintaining a separate architectural model for each.

Development environment

I implemented an IDE for creating applications on multiple devices at runtime. Connected devices can participate over Wi-Fi or Ethernet, distributed tables can be defined and visualized dynamically, and applications can be developed without writing new socket APIs for each device relationship.

  • Develop multiple applications and devices from the same environment.
  • Support standalone, client-server, and peer-to-peer applications.
  • Support desktop C++/Java, iOS, Android, and web/JavaScript clients.
  • Add and remove devices during development.
  • Change distributed program structure without stopping and restarting the system.
Data Programming IDE
Main IDE, including tables and connected devices.
Distributed table editor
Distributed table definitions, strategies, and relationships.
How is DP different from hot code swapping?

Hot code swapping typically focuses on changing existing compiled functions at runtime and can have limitations when a structural change affects existing objects. In DP, changes are made to the program's tabular structures directly in memory. A structural operation such as adding a member variable is analogous to adding a column to a table and is implemented by the DP engine.

How is DP different from reflection?

Traditional reflection exposes special APIs for examining program structure. DP treats program structure itself as queryable data: tables, columns, rows, relationships, and system information can be inspected and modified through the same model used by application data.

Examples & demos

From ideas to working systems.

My work spans research, commercial software, engineering management, developer tooling, and interactive 3D systems. These projects explore approaches to difficult problems in spatial interfaces, visualization, and distributed applications through working implementations and prototypes.

3D Shopping

Interactive labeling and navigation for online 3D shopping experiences.

3D Real Estate

Applying interactive 3D labels and navigation to apartment and real-estate experiences.

Multi-user HMD system

A head-mounted-display system integrating battlefield information, video feeds, and connected devices.

Restaurant prototype

A distributed workflow prototype showing devices joining and leaving a running application.

Wayfinding

A distributed-display concept for helping people navigate unfamiliar physical spaces.

Interactive map prototype

Maps

A tile-based map using Space Management algorithms to place multiple popups without overlap. Open demo ↗

Potential DP applications

Virtual / Augmented RealityInternet of ThingsGamingWeb & MobileDigital SignageDistributed MapsDrones & Autonomous Systems

Background

About Me

I have more than 15 years of experience building commercial software and leading engineering teams, with a background spanning computer graphics, visualization, user interfaces, distributed systems, and developer tools. I enjoy working at the intersection of technical leadership and hands-on engineering—building teams, mentoring engineers, defining architecture, and working directly on difficult technical problems.

My Ph.D. in Computer Science from Columbia University focused on Computer Graphics and introduced View Management, an approach for addressing difficult layout and interaction problems in visualization, virtual reality, and augmented reality. My research has resulted in four patents as well as numerous publications and presentations.

At Workday, I led engineering teams working on Discovery Boards, Aurora, and Earth, with responsibility for both people and technical direction. More recently, I led frontend engineering at a startup building highly interactive software for understanding and managing distributed systems.

Earlier in my career, I built commercial 3D drug-discovery software at Schrödinger and served as technical lead for PyMOL. As co-founder of Ravn, I helped build a distributed, multi-user battlefield visualization system using head-mounted displays and integrating information from numerous devices and data sources.

Throughout my career, I’ve remained a hands-on engineer while taking on increasing responsibility for teams and products. I particularly enjoy building strong teams and tackling ambitious technical problems together.