Software Engineer, Codex Apps

OpenAISan Francisco, CA
1d

About The Position

The Codex App team owns the desktop application and IDE extension that bring Codex into developers’ daily workflows. We build product experiences end-to-end, and we care equally about usability, performance, and reliability. Our stack is centered on a TypeScript/Node/Electron application that interfaces with external systems including the Codex CLI and app server (Rust). Building great features here often means designing clean boundaries between UI, local services, and native processes — and making the whole system observable and resilient. We’re hiring a Full Stack Software Engineer to build and evolve the systems that power the Codex desktop app and IDE extension. “Full stack” here means owning flows from UI → Node/TypeScript backend layers → IPC/process orchestration → integration with Rust services. This is a product-minded role. You’ll help define workflows, pick the right abstractions, and ship features that feel fast and dependable in real developer environments.

Requirements

  • Have strong TypeScript/Node fundamentals and enjoy owning product features end-to-end.
  • Have experience with Electron or desktop app architecture (renderer/main separation, performance pitfalls, packaging/release concerns).
  • Are comfortable integrating with native processes/services (e.g., Rust) and designing clean, testable boundaries.
  • Know (or are excited to learn) IPC patterns and distributed-systems-like thinking applied locally: message ordering, buffering, backpressure, retries, idempotency.
  • Bring strong product judgment and enjoy iterating based on real usage and feedback.

Nice To Haves

  • Have experience with developer tools, CLIs, or IDE integrations (nice-to-have).

Responsibilities

  • Build end-to-end features across the Electron app (UI + Node/TypeScript backend layers).
  • Design robust integrations with the Codex CLI and app server (Rust), including process lifecycle, streaming output, and error handling.
  • Own IPC architecture and patterns (renderer/main boundaries, message schemas, backpressure, safety, debugging).
  • Build systems for orchestration: long-running tasks, incremental progress updates, cancellation, retries, and state synchronization.
  • Improve reliability, observability, and performance (logging/tracing/metrics, profiling, crash/debug tooling).
  • Partner with design and product to turn ambiguous needs into crisp, shippable workflows.
© 2024 Teal Labs, Inc
Privacy PolicyTerms of Service