Carl Dunham, Python Developer in Providence, RI, United States
Carl Dunham

Python Developer in 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
    Node.js, AngularJS, JavaScript, PostgreSQL, Python
  • The Search Agency
    Amazon Web Services (AWS), MySQL, PHP, JavaScript, HTML, Java, MongoDB, R...
  • Search 123
    HTML, MySQL, Perl, JavaScript, Java



Providence, RI, United States



Preferred Environment

RStudio, Git, Atom, Linux, MacOS

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: Node.js, AngularJS, JavaScript, PostgreSQL, Python
  • Founder and CTO

    2002 - PRESENT
    The Search Agency
    • 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: Amazon Web Services (AWS), MySQL, PHP, JavaScript, HTML, Java, MongoDB, R, AWS, Python
  • Vice President, Technology

    2002 - 2002
    Search 123
    • Led team to develop next-generation performance-based search technology using aspects of targeted marketing and linguistic- and meaning-based search techniques.
    Technologies: HTML, MySQL, Perl, JavaScript, Java
  • Managing Director, Simpli

    2001 - 2001
    United Online
    • 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: HTML, MySQL, JavaScript, Java
  • 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: HTML, MySQL, Perl, JavaScript, Java
  • Software Development Manager

    1993 - 1999
    American Power Conversion
    • 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: C++, Java
  • Consultant

    1989 - 1993
    Self Employed
    • Developed financial systems, office management systems, and other small business applications mainly in FoxPro.
    • Designed and implemented networked workstations and servers.
    Technologies: Visual FoxPro, C++, C
  • Software Engineer/User Interface Designer

    1988 - 1989
    Gateway Design Automation
    • 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: Shell, Lisp, C


  • Useful Cookery

    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

    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

    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

    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

    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

    Python, R, Visual FoxPro, Ruby, Java, JavaScript, C++, HTML, PHP, Perl, C, Lisp, Julia
  • Frameworks

    Django REST Framework, Bootstrap 3, AngularJS, Bottle, Django, Flask, Ruby on Rails (RoR)
  • Paradigms

    REST, Agile Software Development, Object-oriented Design (OOD), Concurrent Programming, MapReduce, Event-driven Programming, Design Patterns, SOA
  • Platforms

    Linux, Amazon Web Services (AWS), WordPress, MacOS, RStudio, Google App Engine
  • Storage

    MongoDB, MySQL, PostgreSQL, NoSQL
  • Other

    Software Architecture, Scientific Computing, Machine Learning, System Architecture, Spatial Statistics, AWS
  • Libraries/APIs

    jQuery, Restangular, Underscore.js, Node.js
  • Tools

    Git, Emacs, Subversion (SVN), Shell, Atom, CVS


  • MBA degree in Business
    1995 - 1997
    University of Rhode Island - Kingston, RI
  • Bachelor's degree in Computer Science
    1980 - 1985
    Brown University - Providence, RI

To view more profiles

Join Toptal
Share it with others