Hi, I'm Kennan.

The Essentials

Hey, I'm Kennan!

I first started programming on calculators with TI-BASIC back in high school, and I've been addicted ever since. In my spare time, I love cycling, skiing, and contributing to open-source software. Previously, I was an active competitor in the Rubik's Cube speedsolving community, where my highlights included a North American Record, 90 podium finishes, and global 12th place rank for the 3x3 Rubik's Cube.

I completed my BS and MS in Computer Science at Case Western Reserve University with my thesis "Dynamic Structure Adaptation for Communities of Learning Machines," supervised by Dr. Soumya Ray. Now, I'm a full-stack software engineer at the Johns Hopkins University Applied Physics Laboratory, where my current work focuses on applying NLP and semantic knowledge representation methods to detect early stage biothreats from large-scale public data sources. In conjunction with this work, I specialize in using DevOps tools to build higher quality software and optimize developer workflows.

Work Experience
CWRU Department of Computer and Data Sciences
Teaching Assistant, September 2020 - October 2024
Classes: CSDS 440: Machine Learning, CSDS 391: Introduction to Artificial Intelligence, CSDS 343: Theoretical Computer Science
  • Designed and graded course assignments and exams
  • Taught supplementary lectures to reinforce course material
  • Hosted weekly office hours to answer questions and provide feedback on theoretical written work and programming assignments
Machine Learning Reinforcement Learning Bayesian Networks Theory of Computation
Johns Hopkins University Applied Physics Laboratory
Machine Learning & Software Engineering Intern, April 2020 - August 2020
  • Designed random forest, Bayesian network, and deep learning models for viral and bacterial threat classification using Scikit-Learn, Tensorflow, and Keras
  • Implemented a data processing pipeline using dna2vec to perform feature extraction and dimensionality reduction from sequenced DNA
  • Contributed to a large scale Angular application to provide an online learing approach to automated document tagging and classification
Python Machine Learning Tensorflow dna2vec
Johns Hopkins University Applied Physics Laboratory
Software Engineering Intern, May 2019 - August 2020
  • Worked in a Kanban development environment to quickly and effectively produce thoroughly documented, tested software for contract sponsors
  • Contributed to an Android application written in Java and Kotlin to implement an attachment cache mechanism, reducing form upload time by as much as 75%
  • Developed a web application with spring boot backend, Angular frontend, and Selenium unit tests, utilizing an internally designed UI library to deliver Elasticsearch social media analytics
Java Kotlin Angular Typescript Selenium
Agriplex Genomics
Software Engineering Intern, September 2018 - May 2019
  • Developed a job scheduling application from scratch in Angular and designed an algorithm to optimize job scheduling to increase data throughput.
  • Designed a Postgres database model to store jobs and their associated data, and built a corresponding REST API to allow application interaction.
  • Created an Amazon AWS management server to create and destroy EC2 instances to efficiently allocate funds and expedite job processing.
Angular Typescript Postgres AWS
Projects
System
Stars: 428, Forks: 44
Declarative system configurations using nixOS, nix-darwin, and home-manager
darwin dotfiles flake home-manager lua nix nixos python shell vim vim script
TMobile ISP Client
Stars: 33, Forks: 4
mobile friendly, self hosted status dashboard for T-Mobile ISP routers
css daisyui docker docker-compose dockerfile html javascript shell svelte sveltekit tailwindcss typescript
Portfolio
Stars: 6, Forks: 1
personal website and project portfolio written with typescript, svelte-kit, and tailwind CSS
cloudflare-workers css hcl html javascript svelte sveltekit tailwindcss terraform typescript
RegistrationBot
Stars: 1, Forks: 1
Automating course registration because waking up at 7:00AM is just plain cruel.
nix python selenium shell
Technologies I Use
Python
Scikit-Learn
Tensorflow
Keras
NixOS
Bash
Awk
TypeScript
Javascript
Angular
Vue
Svelte
HTML
CSS
Java
Kotlin
SQL
Scheme