More Software Engineering Radio episodes

Derick Schaefer on Modern CLIs thumbnail

Derick Schaefer on Modern CLIs

Published 7 Jan 2026

Duration: 48:05

This podcast analyzes the evolution and design of modern Command Line Interfaces (CLIs), covering their history, philosophies, and applications in automation and concurrency.

Episode Description

Derick Schaefer, author of CLI: A Practical Guide to Creating Modern Command-Line Interfaces, talks with host Robert Blumen about command-line interfa...

Overview

The podcast explores the development and modernization of Command Line Interfaces (CLIs), tracing their origins from early teletype systems to their current relevance in software development. It examines key aspects that define a modern CLI, such as design philosophies inspired by the UNIX command model, object-based command structures, and integration with development tools. The discussion emphasizes the practical applications of CLIs in automation, data processing, and workflow management, while also addressing technical challenges like handling long-running tasks, memory optimization, and concurrency in languages such as Go and Rust.

The podcast also covers topics like CLI output formatting for both human and machine consumption, with a focus on the importance of JSON for interoperability. It introduces tools like Cobra and Pflag which aid in CLI development. Additional subjects include CLI security, authentication practices, documentation, and the potential of integrating AI with CLI tools. The conversation contrasts CLIs with web interfaces, highlighting the unique use cases for each, and underscores the importance of designing CLIs that are both user-friendly and technically robust.

Recent Episodes of Software Engineering Radio

10 Jun 2026 Jure Leskovec on Relational Graph and Foundational Models

Predictive modeling faces challenges with AI's limitations in structured data, prompting solutions like graph databases and relational deep learning with attention mechanisms to enhance accuracy, scalability, and real-time updates for enterprise applications.

3 Jun 2026 Dave Airlie on Linux Kernel Maintenance

The Linux kernel, the largest global software project, uses a hierarchical maintainer system with 80,150 contributors managing subsystems like DRM through public review, structured development cycles, and evolving practices to address scalability, quality, and integration challenges.

27 May 2026 Dwayne McDaniel on the Engineering Challenges of Secrets Management

Managing secrets like credentials and API keys in software development risks leaks causing supply chain attacks (e.g., PyPy, Clot, Cisco) due to secrets sprawl, plaintext storage, and misuse, prompting solutions like time-bound credentials, decentralized systems, vault tools (e.g., HashiCorp Vault), and strategies such as credential rotation and encrypted storage amid over 28.65 million hard-coded secrets in GitHub in 2025.

20 May 2026 Rob Moffat on Risk-First Software Development

Recommended: Risk identification and management is a forgotten art

Software development prioritizes risk management through frameworks like test-driven development and agile, addressing hidden risks, AI deployment challenges, open-source dependencies, and organizational prioritization to balance innovation with safeguards.

13 May 2026 SE Radio 720: Martin Dilger on Understanding Eventsourcing

Recommended: Useful Architectural Pattern.

Event sourcing is a system design approach that records changes as sequential events to ensure historical traceability, uses event modeling for aligning systems with human workflows, contrasts with CRUD architectures, and emphasizes slice-based design, event streams, and practical applications like legacy modernization and workflow simplification.

More Software Engineering Radio episodes