You need a browser with javascript to view this page! -Robert
About Me

I went to Carnegie Mellon for computer science and music. I'm passionate about making projects that create value. I'm interested in learning about everything, but given all of the constraints that keep me from doing that, I try to broaden the amount of things I'm at least conversational in.

I program all week during the weekdays, and am passionate about writing clean and correct code, using the proper idioms and conventions for that particular language. I never use the "this" operator in Javascript. I don't comment code all that much, but instead believe that the code should be good enough that it doesn't need comments.

On the weekends, I enjoy getting outside or hanging out with friends. I think living a balanced lifestyle is pretty important, and try to exercise and eat a good diet as a foundation for everything else that I do.

Awards

McGinnis Venture Competition: Won a $15,000 investment for Nebulus, Inc through the McGinnis Venture Fund.

Federal Laboratory Consortium '14, Denver: Selected for Outstanding Technology Development in the far West region for work on ADS-B sense and avoid software. http://www.nasa.gov/centers/armstrong/Features/armstrong_engineers_honored.html

Bug bounty

Facebook, Instagram: Bug bounty ($$), OAuth authentication attack https://www.facebook.com/whitehat/thanks/

Evernote: Security hall of fame, oauth vulnerability

Adobe/google: CSS shader vulnerability fixed in Chrome browser

Papers

(2014) OAuth demystified for mobile applications
In the proceedings for ACM CCS '14, Scottsdale, Arizona. Paper describes common vulnerabilities in mobile implementations of oauth.

(2013) Cross-origin pixel stealing: Timing attacks using CSS filters and shaders
In the proceedings for the (SIGSAC) ACM CCS '13, Berlin. Paper introduces novel timing attacks on browser rendering engine, vulnerability has since been fixed.
Link: ACM Digital Library

(2013) Noise-resilient speech segmentation using the Voting Experts algorithm
Lawrence Livermore National Laboratory
http://www.robertkotcher.com/pdf/speechSegmentation.pdf

(2013) Browser security mini-lecture: a mini-lecture I gave on a network attack, a proposal made in 2007 for a set of policies to protect against it, and why their proposal failed.
Dynamic Pharming and Locked-Same Origin Policies

(2011) MODAL: Motif Determining and Locating: senior Capstone project, presented at 2012 Meeting of the Minds at Carnegie Mellon University. http://www.robertkotcher.com/pdf/AtomicRelevance.pdf

(2010) AURAFX: A Simple and Flexible Approach to Interactive Audio Effect-Based Composition and Performance: In the proceedings for the International Computer Music Conference '10, published in the ACM Communications Magazine, vol. 1, edition 6; co-authored with Carnegie Mellon professor Roger Dannenberg. http://www.andrew.cmu.edu/user/jcmacdon/ACMC/ACMC-6.pdf

Work Experience

(Spring 2015 - curr) Armstrong Flight Research Center (NASA):
Building a streaming server at Edwards AFB for ADS-B packets, helping to incorporate ADS-B architecture onto NASA's Global Hawk for research missions, and architecting ADS-B software for licensing to private companies. http://www.nasa.gov/centers/armstrong/home/index.html#.UkcRZ2TXg98

(Summer 2014 - curr) Nebulus, Inc:
President/CEO of company building web-based recording software for musicians and audio engineers. Raised over $100,000 in seed funding. http://www.nebulus.io

(Spring 2014) Dryden Flight Research Center (NASA):
"Research and inventions for wireless architecture for UAV and space vehicles"
http://www.nasa.gov/centers/armstrong/home/index.html#.UkcRZ2TXg98

(Summer 2013) Lawrence Livermore National Laboratory:
Machine learning on enormous audio datasets
https://www.llnl.gov

(July 2012 - July 2013) Tunessence.com:
A music education website that teaches guitar, listens to you play, and gives instant feedback. UPDATE: Acquired in 2015 by Hal Leonard publishing company. http://www.halleonard.com/viewpressreleasedetail.do?releaseid=7961&subsiteid=1

(Summer 2012) Studio for Creative Inquiry, Carnegie Mellon:
Wrote a vocoder in OpenFrameworks, developed with OpenGl for the CMU School of Design
http://studioforcreativeinquiry.org/

(Fall 2011) JAVA for E Business Majors, tutor:
course was an in-depth tour of object-oriented programming concepts and web application development with Apache Tomcat and JAVA servlets.

(Fall 2010) Systems Programming in C and Unix, tutor:
gave weekly lectures on functional programming concepts, scripting under CMU professor Anada Gunawardena. Link to course website (same content, but different semester):
http://www.cs.cmu.edu/~guna/15-123S11/

Misc projects

MCUp (link soon)
A hardware/software solution to help restaurants serve drinks more efficiently.

AskRob (link soon)
A question/answer app that learns what knowledge people have, and who might be best suited for answering a certain question.

Fishpanel
A theme for the fish shell that pings mixpanel in real-time and shows a single event count in your command-line prompt. Zero-latency, minimal, graceful.

Gignitor.com
Gignitor was a website for musicians to find gigs, and for gigs to find musicians. Gignitor successfully matched up many musicians and gained decent traction given the few (zero) resources spent on marketing. (Gignitor was taken down because I didn't have time to maintain it any more.)

Music composition
A list of some of some music I've written

Programming skills by category:

Languages I've written at least two projects in: Javascript, HTML, CSS, Java, C, Swift, Matlab, Python, x86

Frameworks, languages I've written servers in: Pyramid (Python), Java servlets, Node.js, Ruby on Rails

Classes I've taken that I feel highlight my current skillset and interests: Computer music, web development, machine learning for signal processing, computational methods for the smart grid

Writeups

Here are a few of my favorite topics from recent classes. I decided to write these into a pdf because I lose and forget things. Please don't ask me this stuff in interviews, I won't

  • Independent component analysis (ICA)
    Independent component analysis tries to learn statistically independent signals from a set of linearly mixed input signals.

  • Expectation Maximization
    Expectation maximization is an iterative process for estimating parameters of multinomial distributions.

  • Latent variable analysis
    In the following notes, expectation maximization is used to describe latent variables in mulivariate, multinomial distributions to build generative models for spectrograms.

  • Sed is turing complete!
    A bit of fun that I had at the Lawrence Livermore summer '13 hackathon. I prove that sed is turing complete using μ-recursive functions.