David Karn

Web Application Developer

GPS Tycoon

Android SDK, Java, Ruby, Sinatra, MySQL, Google Maps API

Developed a strategy/simulation game for Android based around google maps and GPS position. The game divides the world map into square tiles a third of a mile wide, and allows players to purchase and build buildings on the tile they are currently standing in.

Every time a tile is purchased its market value goes up by a dollar and the next player to visit it can steal it from its owner by paying the current market value. Cash and resources (like iron, oil, workers, scientists) are paid out every hour based on the market value and presence of natural resources in tiles a player owns. They can then use cash and resources to buy more land, or build buildings and powerups that will let them increase their resource production or attack other player's tiles.

Plan Bandit

Javascript, React, Node.js, Google places api, Google maps api


Expedia Hackathon Apigee Prize Winner

Developed the frontend for an application to let users share their itineraries online and book through expedia.


Javascript, Google Chrome Extensions


Miser hides 'share this on facebook', or 'like this video' or 'tweet this' buttons as you browse the web. Miser also provides a toolbar button you can click to reveal a popup with widgets to share and view likes for the social networks of your choice, so you can like or share a page when you decide to.


Javascript, React, Node.js, annyang, Moodle API


Startup Weekend Edu 2015

Developed with a team a digital assistant for teachers. The app allows a teacher to say out load "Ok Steve, start grading *assignment name*", then it will look up that assignment in the learning management system, and let the teacher assign grades to students by saying "*students name* scored *score*" (eg "John scored 10 out of 12"). Steve preloads the list of assignments and students and uses fuzzy word matching and phonetics in order to match names and commands accurately.


Javascript, Angular, Socket.io, Node.js


Startup Weekend Uni 2016

Developed an app with a team to allow users to reserve and pay for meals ahead of time, and built a dashboard for waiters in a restaurant to see orders as they come in.


PHP, CodeIgniter,, MySQL, Linux, Ruby, Facebook, eBay API, Google Charts


Worked on an existing PHP/Codeigniter/Mysql-based web database of ancient coin sales and auctions. Work included software design/development in multiple languages, server administration, and database administration, including:

  • Refactored much of coinvac.com's programming to improve performance and robustness, as well as adding features including a fulltext search and PHP/javascript based chart/graph builder based on searches.
  • Developed a tool in Ruby for scraping hundreds of ancient coin auction listings on a daily basis from eBay's Finding API into the sites database.
  • Used Scheme to develop an eBay auction sniper and several other auction scrapers for various databases of coin auction listings to post into Coinvac's database.
  • Set up, administered, migrated between LAMP servers, setup synching between test and prod, mysql replication, set up git, bind9, apache+php+mysql, postfix, cron

Foodies For Kenmore

Javascript, jQuery, Leaflet, Socrata API


Kenmore Hackathon 2015 - 1st prize winner

Developed an app to plot data from King County and US Census on commercial buildings, employee density, and vacant lots in Kenmore, in order to help food trucks determine the best spots to park their trucks.

Hoopes Wineyard

Wordpress, HTML5, CSS3, Mobile, Javascript, jQuery, Pagelines, Paypal, Gravity Forms

  • Migrated two wordpress sites between servers, set up order forms using gravity forms and jigoshop for paypal integration and tracking orders/products, pagelines plugin for layout.
  • Coded custom logic for shipping+tax+price order calculation and display using jQuery and wordpress php hooks
  • Designed order form for hoopesvineyard.com based off of print material layout and coded in CSS3

CDI Publication Inc

PHP, MySQL, NoSQL, HTML5, CSS3, JavaScript, jQuery
  • Developed a module for an existing marketing platform for creating squeeze pages (landing pages designed to get leads like email addresses, phone numbers, etc.)
  • Built admin interface for adding pages, assigning to tests
  • Setup system to direct URLs to split traffic between pages belonging to a test group and record hits, conversions, referrers
  • Added admin interface to track conversions, reassign split tests


Linux, Ruby, Ruby on Rails, AJAX, jQuery, MongoDB, NoSQL, Google Maps API, Google Accounts API, Facebook API, CSS, HTML, Payments Integration, Unix
  • Developed a beta version for an application where local business advertise their services by location (based on zip-codes they were targeting) for a monthly fee, and users could search for and rate providers using Google maps.
  • An agile approach to software development with pivotal tracker was used.
  • Used the US Census’s ZCTA data was used to build a database of zip-code coordinates, and zip-code boundaries were drawn on the Google Maps part of the application.

My Money Making Home

LAMP, Linux, Myspace MyAds API, PHP, MySQL, Javascript, Facebook API, Curl, Bash
  • Many screen scrapers for watching competitors activity on Facebook/Myspace ad networks that run in the LAMP environment, utilizing Curl, Linux, PHP to scrape information about displayed advertisements on social networks, and store and analyze the scraped data in MySQL
  • Several tools for automating submitting ads in bulk to Facebook and Myspace

Communities Tech

LAMP, Linux, PHP, Prado, OOP, MySQL, AJAX, jQuery, Javscript, CSS, HTML

  • Designed and developed the Bangaia social networking platform for CommunitiesTech in PHP using the Prado web framework. Developed the application on a Linux server running the LAMP stack
  • The platform allowed anyone to create their own social network, with individual design/themes
  • Social network users could post and discuss video/audio/text content
  • Used Prado components to make a generic class for uploading and storing content in multiple languages, which made the entire site, user-submitted content and all multilingual, with right-to-left language support