Why Can’t Johnny Program Securely?

October, 2022

The October 2022 tech talk was presented by Robert Seacord

Abstract

Secure coding (unsurprisingly) is hard. Our educational systems have failed to properly prepare students, and our assessments have overestimated their abilities. Analysis and testing is useful but inadequate. This presentation will discuss the gap in qualified secure coders and what we can do to eliminate it.

About the Presenter 

Robert C. Seacord is the Standardization Lead at Woven Planet, where he works on the software craft. Robert was previously a Technical Director at NCC Group, Secure Coding Manager at Carnegie Mellon’s Software Engineering Institute, and an adjunct professor in the School of Computer Science and the Information Networking Institute at Carnegie Mellon University.

He is the author of seven books, including Effective C: An Introduction to Professional C Programming (No Starch Press, 2020), The CERT C Coding Standard, Second Edition (Addison-Wesley, 2014) Secure Coding in C and C++, Second Edition (Addison-Wesley, 2013), and Java Coding Guidelines: 75 Recommendations for Reliable and Secure Programs (Addison-Wesley, 2014). He has also published more than 50 papers on software security, component- based software engineering, web-based system design, legacy-system modernization, component repositories and search engines, and user interface design and development. Robert has been teaching secure coding in C and C++ to private industry, academia, and government since 2005. He started programming professionally for IBM in 1982, working in communications and operating system software, processor development, and software engineering; he  also has worked at the X Consortium, where he developed and maintained code for the Common Desktop Environment and the X Window System. Robert is on the advisory board for the Linux Foundation and is an expert at the ISO/IEC JTC1/SC22/WG14 international standardization working group for the C programming language.

Past Presentations

Why Battle-Tested Software Engineering Still Matters in the Age of AI

The June 2026 Tech Talk was presented by Mario BenitezAbstractWhile use of AI in developing and maintaining software is increasing globally, this use is relatively new, and proven practices for using AI effectively are still emerging. There are different ways to use...

The SEA Data Warehouse

The April 2026 Tech Talk announced the availability of the SEA Data WarehouseAbstractThe Data Warehouse Working Group was initiated in September 2022, with the purpose of advancing the state of the practice and the art of software engineering by providing a source of...

Agentic Coding: The Earthquake That Topples the Software Factory

The March 2026 Tech Talk was presented by Larry MaccheroneAbstractThe tectonic plates beneath software development are shifting. They are moving too fast to predict what the landscape will look like when the earthquake hits. Still, we are sure that the coming...

Why Program Increment Estimates Miss: Hidden Variables for Planning

The February 2026 Tech Talk was presented by Dr. Bill Nichols and Dr. Tapajit Dey AbstractWhat is a credible range of dates for when the work in a product increment might finish? Software development work includes many sources of uncertainty, including the size of the...

Lessons from Using LLMs to Check Software Security

The January 2026 Tech Talk was presented by Dr. Mark ShermanAbstractLarge language models (LLMs) like ChatGPT are transforming the landscape of software development and evaluation, although claims of AI replacing programmers are often overstated. This session delves...

Process Isn’t a Four-Letter Word

The November 2025 Tech Talk was presented by David TumaAbstractAgile methods emerged as a direct rebellion against the heavyweight processes of the 1990s. And the Team Software Process (TSP) did too, by brilliantly reimagining process in a lightweight, agile way that...

Agile Strategy: Onward and Upward

The September 2025 Tech Talk was presented by Linda Parker GatesAbstractThis talk describes the application of Agile principles to strategic planning. It explores how applying balanced Agile values — such as prioritizing individuals and interactions, delivering...

Engineering of Complex Systems at NAVAIR: We Must Do More With Less!

The June 2025 tech talk was presented by Jeff SchwalbAbstractAt NAVAIR, we are experiencing a dwindling engineering workforce at the same time that we are trying to meet increasing demands for support to our warfighters. We have a combination of efforts uplifting the...

Victims vs. Victors: Navigating Career Uncertainty with Resilience

The May 2025 tech talk was presented by David VanEppsAbstractSetbacks are inevitable. Travel freezes, budget cuts, hiring slowdowns, layoffs — challenges like these can shake our sense of stability. While we can’t always control what happens, we can control how we...

Applying STPA to Improve Safety and Reliability of AI-Enabled Systems

The April 2025 tech talk was presented by Timothy DavisonAbstractThis talk explores the application of System-Theoretic Process Analysis (STPA) to enhance the safety and reliability of AI-enabled systems. STPA provides a structured and scalable approach to identifying...

Drive Improved Holistic Business Results with Lean/Agile Practices

The February 2025 tech talk was presented by Fred KoosAbstractAgile practices have roots in Lean Thinking and the Toyota Production System. These are holistic approaches to improve business results. As the word “Agile” was coined in 2001, the applications were...

Clarify Your Acceptance Criteria with GIVEN-WHEN-THEN

The January 2025 tech talk was presented by Matt McConnellAbstractGherkin, also known as GIVEN-WHEN-THEN, is an effective method for writing Acceptance Criteria at many levels in software development. It treats the software as a black box, focusing on the inputs,...

A Powerfully Simple Planning Framework

The December 2024 tech talk was presented by Dr. Brad HodginsAbstractUsing this very effective five-step approach, teams and individuals can create a detailed plan that will enable them to track their progress as they execute that plan. Organizations run on schedules...

Share This