The Origin: Understanding Background Processes (2024) Every software engineer eventually wants to understand how programs interact directly with a computer's hardware. Back in 2024, my goal was to learn how operating systems handle keyboard inputs and screen rendering. To answer this, I built a basic system monitoring tool in Python.
The original iteration was functional but fragmented. I wrote separate scripts: one used pynput to listen to global keystrokes and save them to a text file, while another used pyautogui to snap pictures of the screen. Both scripts connected to Discord to upload the files. It worked perfectly as a proof-of-concept on Windows, but running multiple scripts that fought for the same API connection was inefficient.
The Evolution: Moving to Linux and Better Architecture (Present) Recently, I transitioned to using Fedora Linux with KDE Plasma as my main operating system. When I brought this older project over to my new OS, it immediately broke due to Linux's strict security rules. Fixing it forced me to completely re-architect the codebase.
I redesigned the project to meet professional software standards, which is exactly the kind of systems-level problem-solving I want to pursue in computer science:

Technical Growth and Takeaways This project represents my transition from writing simple, single-task scripts to designing a consolidated application that handles multiple background tasks at once. Working through the display server quirks on Linux gave me a much deeper understanding of how software interacts with the operating system it runs on. It transformed a basic coding experiment into a solid lesson in system telemetry, concurrent processing, and secure API design.