J David Smith

PhD Student at the University of Florida

  Contact Information

+1 859 492 6577

 About Me

I am a 22-year old student recently graduated summa cum laude from the University of Kentucky with a BS in Computer Science and Mathematics. I have interned for IBM a couple of times in different groups, and began the Computer Science PhD program at the University of Florida in Fall 2015.

I began learning to program more than a decade ago, with the intent of making video games. I began by learning C++ and Java on the advice of my aunt, a software engineer. Since then, I have continued learning about software, computing, and mathematics through practice, reading, and coursework.

In college, I spent a few semesters working under Dr. Nathan Jacobs on Computer Vision topics. I also tutored with the Tau Beta Pi honor society, spent a summer interning at IBM in the ExtremeBlue program, and participated in the ACM collegiate programming competition.

  Research Interests

Anonymity & Privacy in Social Networks
How much information is leaked by pseudonymous social networks such as Twitter? What is the lower bound on information leaked and what steps are necessary for users to reach it?
Privacy Without Anonymity
Can we build systems that avoid the pitfalls of anonymity (#Gamergate, for example) while preserving the benefits that we want (safe communication channels for opressed peoples, for example)? If so, how can we transition existing networks to this kind of system?
Teaching Computer Science
What causes so many students to switch out of Computer Science? What concepts give students the most difficulty? How can we improve our explanations of these concepts?

 Personal Projects

Learn2Play Hearthstone
  • Objective: To develop a program that could learn to play Hearthstone by watching the screen (not memory scraping or other such methods).
  • Trained a Linear SVM to classify a frame of video as Hearthstone or Not Hearthstone using OpenCV to extract frames from videos and compute descriptors, and scikit-learn to train and run the SVM.
  • Trained a HOG-based object detector to detect minions on the board using dlib.
  • Built a data collector for Twitch.tv which can automatically download videos for game streams.
  • Initially a class project with plans to continue working on it.
  • Built a web service in Clojure that allows claiming a social media account by submission of a cryptographic signature.
  • Built a web service in Python and ClojureScript that scrapes existing forums and displays the results in an infinitely scrolling page for easier viewing.
League of Legends Social Graph Constructor
  • Built a Clojure program to scrape the League of Legends API and construct a graph of social connections.
  • The graph represents likelihood of two players being friends, showing how information could potentially be leaked by the API. (There is no call to get a user's friend list)

 Employment History

PhD StudentUniversity of Florida

August 2015 – Present

Software Engineering Intern (AppScan Source)IBM

May 2015 – August 2015

  • Developed a dataflow visualization from concept to complete prototype.
  • Specialized the visualization for use by developers in fixing security vulnerabilities.
  • Prototype built in JavaScript using Node.js with the React.js and D3.js libraries.
Undergraduate Research AssistantUniversity of Kentucky

May 2013 – May 2014, August 2014 – May 2015

  • Assisted with Computer Vision research under Dr. Nathan Jacobs
  • Developed a web-based interface for image calibration and the measuring of objects in images. Built in JavaScript using HTML5's inline SVG with Django (a Python MVC framework) on the backend.
  • Helped with data collection, model construction, and model training for research papers. Primarily worked in Python and used Caffe for deep-learning.
ExtremeBlue Technical InternIBM

May 2014 – August 2014

  • Designed and built a service for IBM’s Bluemix PaaS offering that enables users to manage & analyze traffic flowing to their application.
  • Researched competing search engine offerings, prepared comparative analysis and recommendation based on intended use case.
  • Used IBM’s DataPower appliance as a control point to enforce traffic policies and ElasticSearch with Kibana to provide rapid feedback on policies.
  • Written in JavaScript. Used Node.js for the service implementation and AngularJS for the user interface.
  • Managed tooling and built continuous deployment pipeline using Jenkins.
TutorUniversity of Kentucky

January 2014 – April 2014, August 2014 – November 2014

  • Provided free, public tutoring in Computer Science and Math to undergraduate students.