Brian John is a full-stack software engineer specializing in developer productivity and secure AI-assisted coding. He joined BetterUp in 2017 as a senior full-stack engineer and, by AI Engineer Code 2025, was a principal engineer focused on helping research and development teams improve their work with AI.
His writing on faster Ruby dependency installation demonstrates an unusually concrete approach to performance. After finding that additional Bundler workers did little to accelerate CPU-intensive native-extension compilation, he used the MAKE environment variable to parallelize the underlying build instead. In his example, installation time fell from approximately 86 seconds to 36 seconds.
John brought similar precision to building Codex CLI subagents, motivated by a desire to preserve useful coding workflows across different assistants and model providers. His prototype starts a child Codex Exec process from a parent session, gives delegated work its own context, and passes results back through files and standard output. A lightweight Python executor manages agent configuration, execution permissions, and task-specific reasoning effort.
- Portable agent workflows: Delegation patterns should remain usable when engineers switch coding assistants or model families.
- Context isolation through subagents: Child processes can investigate large codebases independently and return concise results without filling the parent session’s context window.
- Permission-aware agent orchestration: Practical delegation requires careful handling of workspace-write access, credential availability, CODEX_HOME, external API communication, and sensitive repositories; lower-risk configurations still require security judgment.
- Stable command approvals: Writing changing prompts and agent names to files lets a fixed wrapper command retain its approval across repeated invocations without broadly disabling permission checks.
- Bottleneck-first optimization: Whether accelerating Ruby builds or coordinating AI coding agents, John identifies the actual constraint—including serial execution and long-running task timeouts—before selecting an implementation.