Software engineer, computer scientist, and nerd.
Hi, I'm Garrett. Welcome to my corner of the internet.
I'm a computer scientist and software engineer specializing in software/systems architectures and programming languages. Some of my more recent projects include the Swarm programming language, the Extollo framework, and the CoreID SSO server.
I sometimes write blog posts and publish code from my projects.
HackKU is the University of Kansas' annual hackathon.
My group participated for our fourth year in a row where we built CrystalMath, a graphical, interactive worktable for math applications.
Our project was the runner up in the education track and also received the award for best domain name for crystalmath.tech
.
During the Fall 2021 semester at KU, I assisted with an honors seminar section
about algorithms and their applications to fields outside computer science.
Among other activities, I prepared and delivered a lecture on the halting problem.
Swarm is a programming language that abstracts parallel & distributed computing initially created by me and my senior project group at KU. Since then, myself and Ethan Grantz have continued working on Swarm and have released it as an open-source project.
HackKU is the University of Kansas' annual hackathon.
My group participated for the third year where we built Loc-Chain, a blockchain-based, anonymous contact tracing solution.
Extollo is a fully-featured, opinionated application framework written
in TypeScript.
The framework is still a work-in-progress, but so far includes a dependency injector, boot framework, ORM, job queue, routing stack, and a robust set of TypeScript utilities.
This website is powered by Extollo.
I an an avid self-hoster. As such, I have a lot of disparate apps that all have different login schemes, which can be a bit annoying to manage for myself and friends.
So, I decided to build a unified login system similar to things like CAS. CoreID supports OAuth2, OpenID Connect, LDAP, and SAML2 with universal 2FA and granular access controls. This project has taught me a lot about the different SSO stacks.
TeraCrunch is a Kansas City-based data analytics and machine learning firm.
I worked with them as a freelance systems engineer to handle infrastructure projects like backups and scheduled jobs, and smaller client projects such as a statistics aggregator, and Node.js application enhancements/maintenance.
HackKU is the University of Kansas' annual hackathon.
My group participated for the second year where we built Noded, a rich-data note-taking app designed to help people build personal information trees.
I liked this concept so much that I've continued improving it since then, and I use it for my personal notes to this day.
AllofE is a software company in Lawrence, Kansas, primarily focused on the eMedley web suite for higher-education.
I work as a software engineer doing full stack development in PHP/SQL/Angular. Of note, I designed and built a new automated proctoring flow used by 10+ schools built on TensorFlow and AWS Lambda. I also helped integrate and transition 50+ models and infrastructure components from a legacy framework to Laravel.
HackKU is the University of Kansas' annual hackathon.
I participated with a couple friends and we built WaitNoMore, a multi-tenant parking management app built on Python, Firebase, and Flutter.
For this project, we were awarded the Best Implementation of Google Cloud.
Flitter was my first take on a Node.js app framework, which has been deprecated in favor of Extollo.
I started it as a learning project and eventually built it out to include a unit-based startup framework, a dependency injector, an ORM, a job-queue wrapper, an auth framework, and more.
The CRMDA was a University of Kansas lab that assisted researchers with data analysis projects and computing.
I worked as a lab system technician there my freshman year of college maintaining the CentOS lab workstations, transitioning 20+ cluster scripts to the SLURM scheduler, and creating a proof-of-concept Kubernetes cluster on which I help a colloquium.
I studied computer science at the University of Kansas and received my bachelor's of science with university honors and highest departmental distinction. I also completed a minor in business.
The KRS Corporation is an enterprise manufacturer based in my hometown.
I worked there over the summer assembling various components. Of note, I designed an Arduino break-out circuit to automate the flashing of these components. This system reduced the time required to program the controller boards by half.
USD 416 is the school district in my hometown.
As a summer job, I worked as an IT technician where I helped replace 50+ access points as part of a wireless deployment, imaged 100+ computers using Novell and Active Directory, and assisted with user support.
For two years, I served as the technical-director of TEDxYouth@Louisburg and helped organize and live-broadcast the first TEDxYouth event at a high-school in Kansas.
Particularly, I helped plan schedules for breakout rooms, built the sign-in and ticketing system, and directed the live-production of the event itself for 150+ guests.
World Plate Adventures
World Plate Adventures is a lifetime exploration of international food. Each month, we will choose a country and spend a few days researching the food. Then, each week of the month I'll cook a new dish from that country.
The first cuisine I'm exploring is France, with la Mère Brazier's blanquette de veau.
Mitigating the iconv Vulnerability for PHP (CVE-2024-2961)
Recently, CVE-2024-2961 was released which identifies a buffer overflow vulnerability in GNU libc.
I had a hard time finding information on how to mitigate it at the OS-level. I collected my notes, in case they might be useful for someone else.
Read about it here.
MarkMark: simple, Markdown-based, federated bookmarks
MarkMark is a free (as in freedom) bookmark format designed to be machine-readable and easy to use.
The goal of MarkMark is to standardize "link sharing" pages to build connections between small websites on the Internet.
Down the Rabbit Hole of Linux Terminal Emulators
I've had a pretty stable shell setup consisting of Guake + Fish shell for ~5 years now.
Recently, I decided I wanted the ability to copy-paste output w/ screen
and
the ramifications of this forced me to re-examine my entire setup.
Read about my foibles here.
Adventures in AI-assisted proof generation
Begrudgingly, I recently spent a bit of time playing around with ChatGPT and its prowess with the Coq proof-assistant language.
I chronicle my adventures, and some of my broader thoughts, in this blog post.
Retro/70s Redesign
On a whim, I decided to redesign this site to have a bit more character. Initially inspired by this cool album art, I tried to incorporate retro/70s design elements.
A fun element of this design is how parametric it is. The color palette can be completely swapped out for a complementary one. I built several different palettes and randomly select one for each visitor.
I'll do a more in-depth write-up of the process soon. For now, though, you can play with the themes on the technical info page.