Software Engineer, Terminal Interface
Core
Own the productionization of Normal CLI, a large interactive terminal application for AI-assisted chip verification, focusing on interaction models, information design, and cross-platform behavior.
Role type
Senior IC software engineer (terminal/TUI applications)
Builds
Normal CLI (Python/Textual), local session client, and client API for the broader EDA product suite
Domain
Semiconductor industry, AI infrastructure, EDA (Electronic Design Automation)
Deliverable
production ML models | product features
Required skills
Interactive terminal application development (TUI), Python, event-driven/asynchronous programming, cross-platform software engineering, keyboard and text input handling, rendering performance optimization, process and signal handling, debugging across system boundaries, testing interactive software, working with researchers and domain experts
Preferred skills
Textual, Rich, prompt-toolkit, curses, Bubble Tea, Ratatui, Ink, PTYs, terminal emulation, multiplexers, remote shell abstractions, human-in-the-loop AI tool design, cross-platform packaging, self-update systems, internationalization, IME support, visual regression testing, Electron, desktop frameworks, semiconductors, EDA, hardware engineering workflows
Technologies
Python, Textual
Responsibilities
Design information architecture and interaction patterns for commands, navigation, input, editing, streamed output, progress, review, interruption, and recovery; Ensure correct and fast behavior across terminals, shells, multiplexers, remote sessions, macOS, Linux, Windows, and WSL; Define structured-event interfaces for the runtime to consume; Establish standards for UI components used by research and product engineers; Optimize responsiveness under load for long-running streaming work; Architect reusable components and separate product UI, domain logic, and runtime concerns; Implement snapshot and visual-regression testing, packaging, installation, and self-update systems
Seniority
Senior, hands-on IC