Scroll To View More
Carl Dunham

Carl Dunham

Providence, RI, United States
Member since January 20, 2014
Carl has a lifelong passion for building software, systems, and teams. He caught the bug in college, began working with a startup the summer before graduation, and hasn't stopped since. He loves learning new languages and technologies, and most of all, he like using them to build large, interesting things.
Carl is now available for hire
  • oneID
    Python, Postgres, JavaScript, AngularJS, Node.js
  • The Search Agency
    Python, AWS, R, MongoDB, Java, HTML, JavaScript, PHP, MySQL
  • Search 123
    Java, JavaScript, Perl, MySQL, HTML
  • Concurrent Programming, 20 years
  • Object-oriented Design (OOD), 20 years
  • C++, 20 years
  • Software Architecture, 20 years
  • Java, 17 years
  • Python, 8 years
  • Agile Software Development, 7 years
  • R, 4 years
Providence, RI, United States
Preferred Environment
Mac, Linux, Atom, Git, Tcsh, RStudio
The most amazing...
...system I've ever designed was a full-stack SaaS SEM bid management system that used predictive algorithms, models, and large data sets to optimize campaigns.
  • Senior Software Architect
    2014 - PRESENT
    • Architected and developed an Identity-as-a-Service for consumers and IoT devices.
    • Applied symmetric and asymmetric cryptography techniques.
    • Wrote major sections of online donations platform used by political and non-profit organizations.
    • Built out IoT infrastructure for secure communication among edge devices, infrastructure servers, and users.
    • Engineered support and devops as needed.
    Technologies: Python, Postgres, JavaScript, AngularJS, Node.js
  • Founder and CTO
    The Search Agency
    2002 - PRESENT
    • Built and led the team that developed AdMax┬« platform, a data-driven decision support system for online marketing campaigns.
    • Developed core frameworks in Java and PHP for ORM, page formatting, concurrency control, and other platform services.
    • Led product development of AdMax local platform, including working with Tier I clients to manage requirements and system integration.
    • Performed data analysis using R and Python on large data sets to extract trend and performance insights.
    • Built location taxonomies from public and other data source in R and Python, including polygon to point-radius conversion algorithms and fine-grained population estimates.
    • Continue to serve as a member of the Board of Directors.
    Technologies: Python, AWS, R, MongoDB, Java, HTML, JavaScript, PHP, MySQL
  • Vice President, Technology
    Search 123
    2002 - 2002
    • Led team to develop next-generation performance-based search technology using aspects of targeted marketing and linguistic- and meaning-based search techniques.
    Technologies: Java, JavaScript, Perl, MySQL, HTML
  • Managing Director, Simpli
    United Online
    2001 - 2001
    • Led teams of scientists and engineers to develop state-of-the-art microtargeting technology. Initial applications of the technology resulted in a 3x increase in click yield.
    Technologies: Java, JavaScript, MySQL, HTML
  • Director of Software Development
    1999 - 2001
    • Designed and coded features in Java, JavaScript, and HTML, working with Cognitive Scientists and Linguists to develop new search enhancement and targeted content technology.
    • Heavy use of corpus-based/statistical NLP techniques and neural network technology.
    Technologies: Java, JavaScript, Perl, MySQL, HTML
  • Software Development Manager
    American Power Conversion
    1993 - 1999
    • Introduced several new products, including software that Microsoft included as the UPS monitoring component in Windows 2000.
    • Led redesign of core PowerChute product in Java. First deliverable was developed in half the time as the previous platform with a fraction of the defects.
    • Researched technology trends and assessed impact to APC's business. Wrote several analysis papers and presented quarterly overviews to CEO and executive management.
    • Led team developing award-winning SNMP network management solutions for APC devices. Products included server, workstation, and embedded hardware platforms.
    • Involved with the design and implementation of PowerChute plus for OS/2, Windows NT, and Unix. Improved graphical user interface design using XVT toolkit. System was written in C++.
    Technologies: Java, C++
  • Consultant
    Self Employed
    1989 - 1993
    • Developed financial systems, office management systems, and other small business applications mainly in FoxPro.
    • Designed and implemented networked workstations and servers.
    Technologies: C, C++, FoxPro
  • Software Engineer/User Interface Designer
    Gateway Design Automation
    1988 - 1989
    • Hired to design modern user interfaces for new product features and in upgrading existing ones.
    • Initiated implementation of portable library that would enforce proprietary look and feel while using familiar paradigms from each host platform.
    Technologies: C, C++
  • Software Engineer
    1985 - 1988
    • Member of a team designing and implementing User Interface Management System based on early version of X Window System (X6).
    • Involved with User Interface designs for M/CAE product.
    Technologies: C, Mainsail, Lisp, Shell
  • Useful Cookery (Development)

    Simple website to publish the "USENET Cookbook", an early version of crowdsourcing via a moderated newsgroup. Involved translating TROFF (typeset) files into MongoDB documents by way of JSON, and publishing them through a template-driven Python back-end.

  • Climate Data Analysis (Development)

    Using map-reduce on AWS to pull from a large meteorological data set and produce maps in R showing wind speed variability.

  • Patent: System and method for determining weighted average success probabilities of internet advertisements (Other amazing things)

    A method and related system for determining the weighted average conversion (or click-through) probability (WACP) associated with an activity, such as an internet advertising bid activity. The method involves gathering information associated with prior actions relevant to future actions, such as bidding on internet advertisement placement, for example. The gathered information, such as clicks, impressions and conversions resulting from an advertisement placement, is used in an algorithm to calculate the WACP. The method may be carried out as part of a system including one or more computing devices and the execution of instructions embodied in computer-readable media. The algorithm may include the option of weighting the data used, such as by valuing recent data more than older data.

  • Patent: Method and system for attributing an online conversion to multiple influencers (Other amazing things)

    A method is provided for identifying and crediting interactions leading to a conversion, comprising acts of for each of at least one defined time interval, defining a recency factor used to scale a credit amount given to an influencing event occurring during the defined time interval; identifying at least one influencing event that influenced a conversion event; for each of the at least one influencing events, identifying a defined time interval in which the influencing event occurred and accessing the recency factor for that defined time interval; and apportioning the credit amount given to the conversion event among the at least one influencing event according to the recency factor for each influencing event.

  • Patent: Cost-per-action search engine system, method and apparatus (Other amazing things)

    Embodiments of the present invention are directed to a search engine system, method, and apparatus comprising a search engine, a participant management system, at least one storage database, a listing database, and at least one feedback mechanism. The search engine accepts input data and utilizes the input data to search for information related to the search terms. Upon retrieval of relevant information, the data analysis module organizes the data related to the search terms into a search results list. To determine the placement of listings upon a search request, the data analysis module determines the probability, for each relevant listing, that the user will ultimately complete the desired action if the listing is shown, wherein the probability of action is determined by a plurality of factors. This probability is then combined with the specific CPA for the advertiser. Transaction information derived from a search and click is returned through the feedback mechanism to the search engine for revised calculation of listing placement.

  • Ruby on Rails Best Practices and Tips by Toptal Developers (Publication)
    This resource contains a collection of Ruby on Rails best practices and Ruby on Rails tips provided by our Toptal network members.
  • Languages
    R, Python, Ruby, JavaScript, C++, Java, Julia
  • Frameworks
    Django REST Framework, Bootstrap 3, AngularJS, Bottle, Django, Flask, Ruby on Rails (RoR)
  • Paradigms
    Object-oriented Design (OOD), Concurrent Programming, Agile Software Development, REST, MapReduce, Event-driven Programming, Design Patterns, SOA
  • Platforms
    Linux, Amazon Web Services (AWS), WordPress, Mac OS, Google App Engine
  • Storage
    MongoDB, MySQL, PostgreSQL, NoSQL
  • Misc
    Scientific Computing, Software Architecture, Machine Learning (ML), System Architecture, Spatial Statistics
  • Libraries/APIs
    jQuery, Restangular, Underscore.js
  • Tools
    Emacs, Subversion (SVN), Git, CVS, Gimp
  • MBA degree in Business
    University of Rhode Island - Kingston, RI
    1995 - 1997
  • Bachelor's degree in Computer Science
    Brown University - Providence, RI
    1980 - 1985
I really like this profile
Share it with others