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. Outside of my studies, I'm an avid cyclist, musician, linux enthusiast. Prior to college, I was an active competitor in the Rubik's Cube speedsolving community. During the years when I was actively competing, my highlights included a North American Record, 90 podium finishes, and a top global rank of of 7th and 12th for the 2x2 and 3x3 Rubik's Cubes, respectively.

I recently completed my BS and MS in Computer Science at Case Western Reserve University under Dr. Soumya Ray, with my thesis "Dynamic Structure Adaptation for Communities of Learning Machines." Now, I work on Software Engineering and Data Science at the Johns Hopkins University Applied Physics Laboratory . My current work involves developing automated systems for biological threat classification, full stack software engineering with Angular, Java, and Kotlin, and DevOps using Kubernetes, Ansible, and NixOS.

Work Experience
CWRU Department of Computer and Data Sciences
Teaching Assistant, September 2020 - May 2022
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
Stars: 217, Forks: 30
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: 28, Forks: 3
mobile friendly, self hosted status dashboard for T-Mobile ISP routers
css daisyui docker docker-compose dockerfile html javascript shell svelte sveltekit tailwindcss typescript
Stars: 1, Forks: 1
personal website and project portfolio written with typescript, svelte-kit, and tailwind CSS
cloudflare-workers css hcl html javascript shell svelte sveltekit tailwindcss terraform typescript
Forks: 1
Automating course registration because waking up at 7:00AM is just plain cruel.
nix python selenium shell
Nix Server Config
Basic server configuration using Nix and home-manager to manage local user environments.
home-manager linux nix nixos shell vim script
Lung Tumor Classification
DICOM Slice classifier with transfer learning via ResNet50 with ImageNet weights
keras medical-image-processing python tex transfer-learning
Technologies I Use