About Me

I'm most proficient in Java because its the language I learned data structures in, and because I love Android development (although Kotlin is the new kid on the block...) I have a soft spot for the expressiveness of languages with functional features; map, reduce, fold, and lambdas are indispensable to me. However, give me any codebase in any language and I'll grok it without trouble; I love seeing optimized code anywhere, from well thought-out numpy code that minimizes loops to C networking code, even though I don't consider myself to be interview-ready in those languages.

I've been interested in neural nets since I realized I was barking up the wrong tree by applying bag of words to SIFT descriptors when developing a sketch-based image retrieval system.

I'm an open source aficionado; have contributed a few patches, mostly to Android projects, including Firefox for Android. Always looking to get more involved.


A stock exchange simulator allowing humans and bots to trade together; a rewrite of Exchange Portal in Java. I extended the system with ØMQ and exposed an API for bot developers to enable simulations of high frequency trading.
A sketch-based image retrieval Android app with a local mode meant to return closest matches in the user's photo album and a remote backend mode in Python, incorporating both color and spatial features.
A node.js chatroom/file sharing application with persistence so users can see files and messages from before they joined. Uses socket.io for the realtime chatbox; backed by Redis for the chatbox/session management and message log.
A sample location-based game utilizing all four Android components. Notifications are sent and new tasks generated whenever the user reaches the task's generated location.
A color-layout based image retrieval system which segmented images in the database and computed the median color for each segment in various color spaces such as HSV, RGB, and Lab, and constructed a tree for each segment, thus forming a random forest. I contributed to the development of a naïve bayesian approach which predicted the most probable color of the unfilled regions in the specified layout, based on any filled surrounding regions.
Come see how I think algorithmically; also my training ground to get me up to speed on new languages.