Hi, I'm Lucas. I'm a software developer with a wide range of interests and a particular fondness for building things from scratch. Professionally, I work as an OpenStack software engineer for Canonical, the makers of Ubuntu and many open source projects. I am also a PhD student researching cybersecurity and AI. You can view my publications on ORCID.
In my free time, I primarily focus on games, game engines, and AI. I am always curious about how things work, and I find the best way to learn is to make things from scratch. Because of this, I often like to make projects in C or C++ with as few libraries as possible. My projects page has a few examples. Outside of software development and research, I have a longstanding interest in media preservation and self-hosted infrastructure.
This website serves as a collection of dev logs, as well as blog posts on other topics that interest me.
My PhD dissertation is on using knowledge graphs to detect anomalies in log files. In simple terms, my goal is to teach a machine learning model what "normal" system behavior looks like so that unusual or potentially malicious activity can be detected automatically. This involves converting a corpus of log messages representing normal system behavior into a knowledge graph. A machine learning model (specifically, a knowledge graph embedding model) is then trained to learn a representation of it. Then, when presented with a new log message, the model returns a score representing its confidence that the message is consistent with normal behavior. Low confidence indicates a suspicious message. Much more detailed information on this topic can be found in my publications.
Some of my recent work in this area explores using LLMs to help convert log messages into a knowledge graph format. Other work includes adapting my code to take advantage of high-performance computing facilities so that it can run across multiple nodes and GPUs to process more data in parallel or to run larger models.
I also developed a series of computer labs introducing the OpenStack cloud computing platform based on the Red Hat OpenStack Administration I labs. This lab series contains over 300 pages of content, and its source is available on GitHub. Although instructions to recreate the lab environment are included, the environment itself is not. The labs assume that an environment is built on top of NETLAB+.
Another area I care deeply about is media preservation. Video games, movies, music, books, home videos, family photos, and other forms of media contain valuable knowledge, memories, and experiences that should be preserved for future generations. I enjoy learning about the challenges involved in preserving different types of media and finding ways to keep data accessible over the long term.
I have digitized my family's VHS collection and hope to expand into preserving other media such as printed photographs and handwritten recipes. I maintain a self-hosted Debian server that provides several services for my family and friends, including Nextcloud for private cloud storage and phone backups, Jellyfin for enjoying our movies, shows, music, and books, and the occasional Minecraft server. I also sometimes contribute to Project Gutenberg Distributed Proofreaders.