Hi! I'm Justin, a data scientist at Crisp, a company whose mission is to solve the massive problem of global food waste (as much as 1/3 of all food produced never makes it to peoples’ mouths!) through better data. My job is to glean insights from the large amount of data available in the food supply chain. To do this, I draw on skills like machine learning, natural language processing, statistics, information retrieval, and numerical optimization. But really, my job is about finding ways to solve complex and often ill-defined problems. Software is the medium I use to do that, but I like to think that the problem solving skills I use are no different than the skills used by artists, inventors, and other creative professionals.
For as long as I can remember, I've had an intense (colossal?) curiosity about how things (tangible and intangible) work. I find it incredibly satisfying to be able to grasp the "magic" behind cell phones, airplanes, movie special effects, suspension bridges, you name it. This quirk probably goes a long way towards explaining why I have a PhD in electrical engineering from The Ohio State University, and why I almost wrecked my girlfriend's car by being preoccupied with a blinking light on a traffic light control box.
This site is mostly just a place for me to have a home on the interwebs — I don’t update it nearly as often as I should, but I hope you find something useful here!
The documents distributed by this server have been provided as a means to ensure timely dissemination of scholarly and technical work on a noncommercial basis. Copyright and all rights therein are maintained by the authors or by other copyright holders, notwithstanding that they have offered their works here electronically. It is understood that all persons copying this information will adhere to the terms and constraints invoked by each author's copyright. These works may not be reposted without the explicit permission of the copyright holder.
Thoughts I've Had*
*that I've written down for you to read
As part of a project for work, I needed to design an architecture for a system that could handle an infinite stream of asynchronous "events" (basically, actions triggered by end-users that my system needed to respond to). Since we were anticipating a high volume of events, it was important that the system be able to operate in a multi-threaded environment. Additionally, we wanted the system to be modular and extensible so that as functionality was added or modified (for example, adding a new consumer of events, or replacing an existing persistent storage mechanism with another one), the architecture would remain unchanged...