SlipstreamJobs tracks this role from the company's public career site. Apply directly on the employer's site.
Normal Computing is an applied AI company building foundational hardware and software for the semiconductor industry and critical AI infrastructure. The company operates across New York City, San Francisco, London, Copenhagen, and Pangyo.
You will own Normal CLI, a large interactive terminal application built in Python and Textual that semiconductor design verification engineers use for AI-assisted verification work. This role involves productionizing what began as a research tool and giving it dedicated end-user focus.
Key responsibilities include:
- Owning the terminal application's information architecture and interaction design: how engineers enter and edit instructions, how long agent runs remain legible during streaming, how tool use and proposed changes are presented for review, and how work is interrupted, resumed, and recovered after failures.
- Managing the local session client and being a leading voice in the client API that the rest of the product is built on.
- Ensuring cross-platform behavior across terminals, shells, multiplexers, remote sessions, macOS, Linux, Windows, WSL, non-English input, and constrained customer environments.
- Defining command, picker, progress, output, and review patterns that other engineers use when adding domain workflows.
- Handling streaming, cancellation, concurrency, and event-loop behavior for long-running work that must stay interruptible and understandable.
- Creating coherent product experience across surfaces with shared terminology, state, authentication, and handoffs between terminal and desktop/web products.
- Evolving the Textual application toward reusable components with clear separation between product UI, domain logic, and runtime concerns.
- Building snapshot and visual-regression coverage, packaging, installation, and self-update systems.
You should have 4+ years of software engineering experience with significant time building and maintaining interactive terminal applications, TUIs, or comparably rich local clients. Strong fundamentals in event-driven/asynchronous applications, cross-platform debugging, testing interactive software, and interface design are essential. Experience with terminal UI frameworks, PTYs, multiplexers, human-in-the-loop AI experiences, and cross-platform packaging is a bonus.