Kevin Krenz

Home // Projects // Contact

Projects

Here are some of the projects I’ve completed while working on my master’s degree.

Introduction to Operating Systems

Multi-threaded web server
Created a multi-threaded webserver based on a simplified protocol.
Technologies: C, Linux sockets, pthreads
Proxy web server and cache
Converted web server into a proxy, translating protocol requests into http requests
Created a simple cache that communicates with the proxy via shared memory
Technologies: C, sockets, shared memory, message queues, curl, pthreads
Downsampling image service
Created a service that downsamples images via an RPC service
Technologies: C, Sun RPC

Computer Networks

Spanning Tree Protocol
Devloped a simplified version of a distributed spanning tree protocol to run on a layer 2 topology.
Technologies: Python, Mininet
Software-defined networking firewall
Created a configureable firewall for an OpenFlow enabled switch.
Technologies: Python, Pyretic
BGP Hijacking Attacks
Explored vulnerabilities in BGP by simulating topologies and attacks.
Technologies: Python, Mininet

Database Systems Concepts and Design

Tool rental service
Designed and implemented an online inventory and tool rental service, focusing on the data model design.
Technologies: Python, Flask, MySQL

Advanced Operating Systems

Virtual Machine Manager
Created a virtual machine manager that dynamically manages the CPU and memory allocated to virtual machines.
Technologies: C, libvirt
Barriers
Implemented and evaluated various barrier designs from the paper by Mellor-Crummey and Scott.
Technologies: C, OpenMP, MPI
Simple Distributed Service
Created a simple, distributed web store service that obtains product bids from multiple vendors.
Technologies: C++, Protocol Buffers, gRPC
MapReduce Implementation
Implemented a simplified version of map/reduce framework.
Technologies: C++, Protocol Buffers, gRPC