Skip to content

Both.org

News, Opinion, Tutorials, and Community for Linux Users and SysAdmins

Primary Menu
  • About Us
  • Computers 101
    • Hardware 101
    • Operating Systems 101
  • Linux
    • Why I use Linux
    • The real reason we use Linux
  • My Linux Books
    • systemd for Linux SysAdmins
    • Using and Administering Linux – Zero to SysAdmin: 2nd Edition
    • The Linux Philosophy for SysAdmins
    • Linux for Small Business Owners
    • Errata
      • Errata for The Linux Philosophy for SysAdmins
      • Errata for Using and Administering Linux — 1st Edition
      • Errata for Using and Administering Linux — 2nd Edition
  • Open Source Resources
    • What is Open Source?
    • What is Linux?
    • What is Open Source Software?
    • The Open Source Way
  • Write for us
    • Submission and Style guide
    • Advertising statement
  • Downloads
  • Home
  • A minimalistic approach to debugging
  • Code
  • Debugging
  • Linux
  • Tools

A minimalistic approach to debugging

Originally published in 2016, this interview with Katrina Hayes on Opensource.com details her distinct approach to coding and debugging. A self-taught programmer, Hayes emphasizes simplicity in her tools, preferring minimalist methods. She discusses overcoming challenges in legacy systems, advocating for maintainable code bases to enhance long-term IT sustainability.
David Both May 11, 2024 5 minutes read
annoyingbugs

Image by: Opensource.com

Editor’s note: This interview with Katrina Hayes was originally published January 20, 2016 on Opensource.com. We’ve republished it here because it’s still relevant.


Carl Sagan once said, “We live in a society exquisitely dependent on science and technology in which hardly anyone knows anything about science and technology.” Katrina Hayes is clearly an exception to that—she uses her knowledge and skills to great effect to debug code.

Katrina took time from her busy schedule prior to her presentation, Logging in the debugger’s toolkit at the upcoming ScaLE 14X to talk to us. She talks about her surprisingly minimal use of tools and a bit about her debugging process.

How did you get started in coding and debugging in particular?

I was exposed to code at a young age, as my father and grandfather both worked with computers at SAS and BCBS. Debugging I was mostly introduced to during my days teaching myself Perl in college. You have to get real good at spotting missing semicolons real fast if you’re learning coding by running your own scripts through the command line.

Tell us about your own introduction to debugging tools.

I’ve actually always been kind of prideful about using minimalistic tools. I don’t even really use IDEs by default—on most of my own development I just use TextWrangler, and at work I currently mostly use UltraEdit. Just give me the code, a good description of behavior, and the ability to throw things at it and see what it spits out. That’s probably part of why I grew to use logging so much—I don’t have to do as much recording or testing if I can get my system (and possibly my users) to do that for me.

Every sys admin and programmer has a favorite bug that they like to tell about, whether because it was particularly difficult, humorous, or whatever. Please tell us about yours.

While perhaps not strictly a “bug,” one of my proudest incompatibility-surmounting moments involved integrating a particular type of rich HTML5 document produced by an educational presentation software package with the rest of the custom in-house educational software that had been built up as a mostly PHP application over a decade or so leading up to that point. This was when HTML5 was only really just beginning to catch hold. It involved 13 separate manual code changes that had to be made to each presentation output by the presentation software. I discovered all 13 of those by trial-and-error over several months, aided by logging and other notification mechanisms I utilized.

The abstract for your talk mentions poorly understood legacy systems with bug circumventions rather than fixes. How big is this problem and how critical is it to address?

Just my impression from talking to other programmers, but this seems to be the standard situation if you ask around the IT department of any company that’s had its doors open for more than a year or two. Really, unless a company puts a lot of emphasis on having a highly maintainable code base over its entire lifetime, this situation is inevitable eventually. And considering maintainable code only shows its value over the long-term, there is always going to be the temptation to trade off maintainability for more rapid deployment.

There are a lot of good arguments for rapid deployment, but I think there is a lot of space for firms to develop better habits here. I think going forward one important thing that might distinguish between firms that survive and firms that perish is which firms can best domesticate and nurture their code bases. It can’t just be a matter of throwing it out there and seeing what sticks anymore.

Do you have a defined personal process for debugging? Could you briefly describe it for us?

Not any highly developed process or anything, but generally I just spend some time thinking about the system affected by the bug in question and the way the bug fits into that system in particular. If it’s a part of a system I’m already familiar with, I might scan through some code or doodle things out. If it’s something I’m not familiar with, I will read as much code (or logs, or database dumps) as I can get my hands on. Unless it was quickly solved, I’ll usually then take some time to just chew on it before coming back again and more seriously looking for where the bug might be lurking. At this point, depending on the bug and my access rights, I might read logs or data dumps and make tweaks to code to see how that affects things. At that point it’s mostly just iteration. Poke at things, turn over rocks, see what spiders come crawling out.

How do you choose your debugging tools?

If it works, deploy it. If it’s hyped, ignore it until it’s required for use in an assignment for a continuing education course you’re taking.

What do you hope to accomplish with your talk at SCaLE 14X?

Share some experiences I’ve had with people who might get some use out of them, distill what I’ve learned in my career so far on a particular topic into something hopefully useful, and hopefully start some interesting discussions!

Tags: Debugging

Post navigation

Previous: Regular Expressions #4: Pulling it all together
Next: Why it’s important for leaders to mentor and support others

Related Stories

Photo by Scott Rodgerson on Unsplash
  • Cloud
  • Digital sovereignty
  • Linux
  • Open Source
  • Security

Digital sovereignty

Seth Kenlon May 15, 2026
Puzzle pieces coming together to form a computer screen
  • Fortran 77
  • History
  • Linux

A look back: f2c

Jim Hall May 13, 2026
Ubuntu-Resolute-Raccoon
  • Getting Started
  • Linux
  • Ubuntu

Getting started with Linux: Ubuntu 26.04

Don Watkins May 12, 2026

Random Quote

Those who don’t understand Unix are condemned to reinvent it, poorly.

— Henry Spencer

Why I’ve Never Used Windows

On February 12 I gave a presentation at the Triangle Linux Users Group (TriLUG) about why I use Linux and why I’ve never used Windows.

Here’s the link to the video: https://www.youtube.com/live/uCK_haOXPFM 

Why there’s no such thing as AI

Last October at All Things Open (ATO) I was interviewed by Jason Hibbits of We Love Open Source. It’s posted in the article “Why today’s AI isn’t intelligent (yet)“.

Technically We Write — Our Partner Site

Our partner site, Technically We Write, has published a number of articles from several contributors to Both.org. Check them out.

Technically We Write is a community of technical writers, technical editors, copyeditors, web content writers, and all other roles in technical communication.

Subscribe to Both.org

To comment on articles, you must have an account.

Send your desired user ID, first and last name, and an email address for login (this must be the same email address used to register) to subscribe@both.org with “Subscribe” as the subject line.

You’ll receive a confirmation of your subscription with your initial password as soon as we are able to process it.

Administration

  • Log in
  • Entries feed
  • Comments feed
  • WordPress.org

License and AI Statements

Both.org aims to publish everything under a Creative Commons Attribution ShareAlike license. Some items may be published under a different license. You are responsible to verify permissions before reusing content from this website.

The opinions expressed are those of the individual authors, not Both.org.

You may not use this content to train AI.

 

Advertising Statement

Both.org does not sell advertising on this website.


Advertising may keep most websites running—but at Both.org, we’re committed to keeping our corner of the web ad-free. Both.org does not sell advertising on the website. Nor do we offer sponsored articles at this time. We’ll update this page if our position on sponsorships changes.

We want to be open about how the website is funded. Both.org is supported entirely by David Both and a few other dedicated individuals.

 

 

Copyright © All rights reserved. | MoreNews by AF themes.