I strive to create technology that helps improve people’s quality of life while preserving our natural environment.
The GrubTubs Logistics web app I made (from scratch) for GrubTubs, Inc using React and Node.js turned routing from an hour-long task into a five-minute one, freeing up the Operations Manager to do his other tasks.
Customer information was pulled from HubSpot (authenticated using OAuth) and stored in a MongoDB database. Customer usage data was also pulled from another external resource and stored in the MongoDB database. This enabled my system to automatically provide the billing software with each customer’s usage data and automatically calculate overage fees (a previously manual task).
The app also featured a mobile-friendly page for viewing customers, their addresses, their location on a map (with a movable marker to tell drivers exactly where to go), and their service history with usage data.
Users logged in with their GrubTubs GSuite accounts, and permissions could be controlled so that the administrators, salespersons, and drivers could all access and edit the appropriate information. The app is deployed on Heroku.
At GrubTubs, the days on which customers were serviced was determined somewhat arbitrarily. As more customers were added, they were simply allocated to a day and a truck that had capacity. It worked, but a lack of geographic clustering made it far from optimal.
In an attempt to make this better, I created a Python script that would allocate customers to service days while considering service frequency and geographic location. Its goal was to minimize distance traveled, and it used a form of graph coloring to do this. It successfully generated suggestions which were given to Ops to more efficiently service customers.
BOCS is an extensible puzzle box, from both the hardware and software standpoints. Puzzles can be written in Python without any knowledge of the intricate workings of the BOCS. High-level logic is run on a Raspberry Pi Zero W, with Arduinos in responsible for controlling most I/O.
As the sole CS person working on BOCS, I architected the software system, the including inter-device communication protocol, and wrote the vast majority of the code.
The Amorphous Blob of Events (ABE) is a project developed by Olin College students in conjunction with the Olin College Library. It is an event repository for communities, with a RESTful API and as well as a "traditional" calendar frontend.
The calendar view itself (the part you’d print out and stick on the wall) is also of my design. After originally using the jQuery-based FullCalendar, we decided a non-React calendar component was getting in our way too much. When no satisfying React calendar component could be found, I created my own.
Network-connected headless devices (e.g. Raspberry Pis with no displays) are often difficult to connect to over WiFi. Static IP addresses can be laborious to configure and, when on congested networks, address conflicts often arise. DHCP solves those problems, but there’s no easy way to know what IP address a device has been given by a router.
HereIAm provides an all-in-one network status reporting solution to address this problem. A tiny client Python script reports the network status, including IP address and WiFi signal strength, to a server. A React web app then connects to this server (over WebSockets for live updating) and displays the reported device information.
As part of our module on systems and controls in Quantitative Engineering Analysis, my partner and I designed and analyzed the control system for an infant-warming bassinet. Our goal was to minimize heating time while keeping power draw below a certain threshold, such that it would not cripple electrical systems in developing regions of the world. We were able to prescribe PI control parameters to use to keep the max power draw below the desired threshold.
View our full report for more details.
For practice with reference frames, autonomous navigation, and obstacle avoidance, my partner and I used the LIDAR on a robotic Neato vacuum to complete a set of challenges. These challenges included mapping a playpen by combining scans taken at multiple locations, using the LIDAR to generate a potential field map around the robot and navigating to the “valley” (a hardcoded location where a bucket had been placed) using gradient descent, and attempting to autonomously locate and navigate to the circular bucket. Unfortunately, the LIDAR’s resolution provided inadequate for circle detection more than a few feet away from the bucket, and thus we were unable to successfully implement fully unguided navigation.
As an application of linear algebra, my partner and I implemented the eigenfaces approach to facial recognition. Though the photos of faces had to be taken in the same lighting conditions and cropped the same, the approach did work remarkably well, with a success rate of 91%.
My partner and I attempted to also implement a neural network capable of facial recognition, but we ran out of time. View our full report for more details.
When learning multivariable calculus, my partner and I designed and built a small boat meeting a specified criterion: it had to have an angle of vanishing stability (AVS) of between 120 and 140 degrees. After modeling various hull shapes and analyzing them in Mathematica, we CAD-ed hull sections, laser cut them out of hardboard, and assembled and demoed the boat without any testing. It worked perfectly, proving our AVS calculation accurate to within two degrees. View our full report for more details.
Modeling and Simulation concluded, for my partner and me, with a billiard kinetics simulator. Inspired by our pool shark professor, we modeled the physics of the game to determine how our professor could make a seemingly impossible shot. Check out the poster to see how it could be done.
I am happy to recommend Kyle based on my work with him at GrubTubs. Kyle interned with us and [the net effect was] a large increase in efficiency which had an impact on the bottom line. Kyle was mature for his age and worked well with all members of the GT team that he had to interface with. Interpersonally, he is extremely professional yet personable.
Prior to leaving the position, Kyle wrote a memo to the senior management with other ideas that he had thought of while working with us. This was greatly appreciated by senior management in the company and a number for his ideas have been implemented...
I would not hesitate to work with Kyle again and feel he would be a great asset to any company given his skill set, work ethic and proactivity.
- Peter Black
Pharmaceutical Consultant & COO of GrubTubs
(View on LinkedIn)