CTO
2014 - PRESENTSpendabit- Developed a custom “scraper” engine capable of locating and importing products from arbitrary eCommerce websites.
- Constructed a search engine with an index of millions of products from hundreds of external sources (eCommerce websites, primarily).
- Devised novel algorithms (“tricks”) for improving search-result relevance beyond standard keyword matching methods.
- Managed a test-suite covering hundreds of use-cases and edge-cases across search, scraping, and basic app functionality.
- Designed a responsive user interface using HTML5, CSS, Bootstrap, and a sprinkling of JavaScript.
Technologies: PostgreSQL, Scalatra, ScalaSenior Software Engineer
2015 - 2019Salon Lofts- Supported and extended an online-scheduling system used by thousands of stylists across the United States.
- Extended application's test-suite to include hundreds of "full-stack" test cases (full-stack meaning, running against a real web-browser, interacting with the application more or less as a real user would).
- Developed a "waiting list" system that attempts to auto-fill schedule openings by interacting with clients via text messages when an opening arises (with a dab of "natural language processing" to try to determine which clients are most/least likely to be available).
- Implemented a feature allowing stylists to enforce cancellation policies (by requiring some/all clients to provide a credit-card when booking).
Technologies: Amazon Web Services (AWS), AWS, Elasticsearch, MySQL, RSpec, Ruby on Rails (RoR), RubyDeveloper
2014 - 2015Emailium- Supported a second-hand Rails application with limited documentation.
- Extended said Rails app to add new features ranging from enhanced search functionality to user interface improvements.
- Reverse-engineered many app components for lack of solid documentation.
Technologies: Sphinx Search Engine, MySQL, Ruby on Rails (RoR)Chief Programmer and Technologist
2009 - 2014DownsizeDC.org & Zero Aggression Project- Designed and implemented the “Educate the Powerful” System, a tool enabling constituents of the U.S. Congress to quickly and efficiently contact their representatives via automation of congressional web-forms.
- Developed a polling and petitioning application for ZeroAggressionProject.org using Scala and Scalatra micro-framework.
- Maintained a number of websites across several servers, including individual and shared test suites to keep it all ticking smoothly.
- Developed custom mailing-list management software (as replacement for the rickety phpList open-source tool) used to send regular mailings to a 30,000-subscriber mailing list, coded in Scala and leveraging the JavaMail stack.
- Provided counsel on all of the organization's technical matters.
- Delivered technical support to the organization's user base as well as the team.
Technologies: Linux, Apache Tomcat, MySQL, PostgreSQL, PHP, Java, ScalaSenior Developer
2008 - 2009Pubget- Held one of two development roles in getting the Pubget bio-science search engine off the ground.
- Led the development of a powerful “screen-scraping” engine which enabled Pubget to aggregate articles from thousands of scientific journals and provide access to the latest journal articles (from Nature, JAMA, etc.) days or weeks ahead of the then industry-standard PubMed.
- Leveraged a powerful Solr search server, distributed across many physical machines, to provide split-second search across the content of millions of scientific articles.
- Experienced a startup company going from the "out-of-the-garage" phase to becoming a "real" company with an office, proper staff, and the things that go along with that.
- Spearheaded the company's automated testing efforts (unit tests, etc).
Technologies: Apache Solr, MySQL, Ruby on Rails (RoR)Lead Developer
2005 - 2007SCRIP-SAFE- Developed a Java/J2EE-based web application to enable educational institutions to exchange confidential documents (namely, student transcripts) securely.
- Leveraged a number of agile (in comparison to other Java technologies, anyway) and open-source technologies, including Hibernate, Spring, and Lucene.
- Worked with non-technical people within the organization and at institutions to understand the requirements and needs of those in the industry.
Technologies: Linux, Apache Lucene, Spring, Hibernate, Apache Struts, Java