Change the future

David vs Goliath: Fighting Big Budgets with Python

Michael Waud, Eric Palakovich Carr

Audience level:
Industry Uses


How do you compete with well funded corporations and other institutions when you’re a non-profit? Use Python to take advantage of the resources you didn’t know you had and compete for grants you thought you couldn’t get. Python has helped our small organization piggyback new research on existing efforts, win more grants, and share more ideas.


At the Schroeder Institute, our mission is to conduct cutting-edge intervention and policy research and to stimulate innovative research ideas in tobacco control. We are funded through grants, an endowment, and fundraising, but all of this pales in comparison to the budget of tobacco companies. A few of the projects where our research and Python have intersected:

  • Base Infrastructure

    • Heroku with Heroku Add-ons
    • Amazon RDS
    • Django
    • Celery
    • Postmark for email
    • Twillio for text messaging
    • Monitoring with Pingdom, New Relic, Sentry, and Logentries
  • Facebook Application

    • Smoking is very tied to social networks, so developing an intervention that spreads socially can be more effective and cost less to reach a wider audience
    • This intervention is modeled to spread like an epidemic. We use multi-factor testing to turn on and off different features. In this way, we can determine which parts of the app are the most contagious, which parts increase time spent in the app, etc.
  • Study System

    • Exists in cooperation with
      • is a large social network for current smokers and former smokers to give and receive social support and advice
    • By selectively offering members of the social network the opportunity to participate in research studies, we can cost effectively recruit participants
      • Can manage recruitment of various demographics (age, education, etc)
      • Can screen for duplicate study entrants and discordant information
      • Studies with human subjects require special extra steps (informed consent, representative populations, etc)
    • REST based API
    • Integration with an open source PHP based survey system (LimeSurvey)
  • Text Messaging Application

    • Potential to supplement expensive human staffed phone “quit lines” with a more affordable automated text message system
    • Daily messages based around your registration day
    • Daily messages based around your quit date
      • User can set a quit date in the system
      • User will receive specific messages based around that day (ex: “You’re quitting tomorrow, remember to throw away any lighters lying around your house”)
    • Interactive Content
      • Clickable web links in text messages
      • Ability to respond with “MORE” to get another message
      • Ability to give short polls or True/False questions
      • Users can reset their quit date if they start smoking again