Experience

Ian Ferguson has worked in the political and technology sectors for over ten years, holding a variety of senior level roles in Democratic campaigns and private companies.

He is currently a Senior Software Engineer on the Production Platform team at Datadog, focusing on automating and orchestrating application life cycle and access management in a multi-cloud provider environment in a rapidly growing business.

Previously he was an Engineering Manager at Opower, a behavioral science driven energy efficiency company, working the internal service platform backing Opower’s products.

Before that he was the Chief Technology Officer on Martin O’Malley’s 2016 Presidential campaign, leading the creation and implementation of data, analytics and technical tools and programs within the campaign.

In 2013 & 2014, Ian worked as a Senior Software Engineer for OnDeck, a financial technology company, during its startup phase where he built a new development team focused on automating data-driven decision-making.

During President Obama’s reelection campaign, Ian served as National Regional Data Director for the Great Lakes, Mid-Atlantic and Northeast, working with the campaign’s analytics, technology, field and digital departments to develop strategy and deploy a wide variety of data and tech solutions and tools in over a dozen states including the key battlegrounds of Ohio, Virginia, New Hampshire, and Pennsylvania.

Prior to that, Ian worked as a Lead Software Engineer at Catalist, a leading provider of data and analytics services to progressive campaigns and organizations. He managed the software development of one of Catalist’s primary client-facing applications, and also helped develop and improve data integration and matching systems for the Catalist national voter file.

Resume

Datadog

Senior Software Engineer
July 2019 - Current

  • Created and Lead Internal Service Authentication cross-team working group that defined and implemented a standard for internal human to service and service to service authentication based on the OAuth, OIDC and SPIFFE standards.
  • Built infrastructure and client tooling to use Google Gsuite and Hashicorp Vault as the identity platform for managing user authentication and authorization with Kubernetes clusters.
  • Contributed upstream fixes to Hashicorp’s Vault, Vault Terraform Provider and Vault JWT authentication plugin.

Engineering Team Lead
July 2018 - July 2019

  • Created reusable components for triggering notifications, deployments and other common build tasks in end users’ build pipelines.
  • Operated Gitlab CI based Continuous Integration ecosystem that handles thousands of pipelines and jobs a day.
  • Wrote Golang to add additional functionality to an internal event based source code and build status syncing application.
  • Led team responsible for improving and scaling Datadog’s Continuous Integration and Continuous Delivery practices.

Opower, acquired by Oracle

Engineering Manager
September 2016 - July 2018

  • Managed team of engineers in delivery of business critical applications using agile project management methodologies.
  • Produced forward looking short and long term product road maps to meet anticipated business needs.
  • Authored and facilitated the creation of organizational standards and technical policies.
  • Led roll out and adoption of Hashicorp Vault based solution for managing application and user secrets and credentials.
  • Initiated deprecation and replacement of custom internal HTTP client and server frameworks with superior open source equivalents.

Senior Software Engineer
January 2016 - September 2016

  • Implemented, tested and profiled system for asynchronously archiving client content to Amazon Web Services’ S3 on demand.
  • Collaborated on the design and implementation of an initial minimum viable product being developed within the company for sale to its clients.
  • Partnered with other engineers across the organization to update and upgrade dependencies (Guava, Jackson, etc) in internal shared libraries.
  • Recommended technical processes for improving and increasing test coverage and code quality on a continuous basis.
  • Optimized and reduced memory usage of producers and consumers of an organization wide message queue.

Previous

Freelance Software Engineer
Self Employed, Washington, DC
November 2015 - December 2015 & September 2014 - May 2015

  • Worked with clients to deliver both new software development and operational support.
  • Developed applications and accompanying technical infrastructure for bespoke web applications and APIs.
  • Reviewed work submitted to projects by subcontractors.
  • Maintained continuous integration server utilized by other contractors on projects.
  • Delivered products to meet client deadlines and requirements.
  • Provided time and cost estimates to interested prospective clients.

Chief Technology Officer
O’Malley For President, Baltimore, MD
May 2015 - October 2015

  • Directed data, analytics and technology efforts across all departments of a Presidential campaign.
  • Analyzed performance of online advertisements and provided strategic advice based on said analysis.
  • Automated daily reporting generation and subsequent distribution to stakeholders using Vertica, Periscope Data and other tools as needed.
  • Integrated multiple platforms from different vendors to facilitate more holistic reporting and analysis.
  • Partnered with staff from multiple departments to gather requirements, prioritize and execute projects from start to completion.

Senior Software Engineer
OnDeck, Arlington, VA
September 2013 - September 2014

  • Implemented internal API platform and client using Java, Jersey, Jackson, and Guice
  • Gathered requirements from stakeholders for a new product aiming to replace internal Salesforce usage
  • Mentored junior members of the team through both formal code reviews and informal conversation/ad-hoc feedback
  • Coordinated with DevOps team to acquire necessary technology and credentials to promote new platform to a production environment
  • Utilized Jenkins continuous integration system to ensure code and test quality was maintained on every commit
  • Created fully automated deployment scripts for multi-node application environment
  • Maintained greater than 98% unit test coverage on project

Software Engineer/Technical Lead
Catalist, Washington, DC
December 2012 - August 2013

  • Led technical development for web based ETL application, utilizing Java, MyBatis and Google Web Toolkit.
  • Coordinated with project stakeholders on the design and customer experience for new features added to applications.
  • Managed and scheduled development tasks using agile/scrum methodology.
  • Integrated applications with other technical teams to deliver flexible and stable performance and feature benefits to customers.
  • Reviewed and approved code changes from other developers for multiple code bases within the company.
  • Developed and maintained a shared library for large scale asynchronous data stream processing.
  • Maintained automated build, code coverage and testing tools for application using Jenkins.
  • Restructured legacy code to be more easily maintained and reused for future projects.

National Regional Data Director for the Mid Atlantic, Great Lakes & Northeast
Obama for America, Chicago, IL
February 2012 - November 2012

  • Developed reports and presentations to inform leadership decisions and resource allocations.
  • Supported data and analytics programs and staff in five battleground and thirteen border states.
  • Communicated with multiple vendors to resolve issues with technical systems as they arose.
  • Responsible for the targeting and management of over five million phone calls placed into Ohio in last week of the election.
  • Triaged state and national level data, analytical and technical issues to deliver solutions in a timely manner.

Software Engineer
Catalist, Washington, DC
November 2010 - February 2012

  • Designed system for flexibly integrating data from multiple changing sources into production databases.
  • Architected business critical data back end and processing service to achieve gains in speed, capacity and redundancy over similar legacy system.
  • Implemented report generation framework for dynamically analyzing data sets.
  • Optimized and parallelized extract, transform and load processes to increase data processing speed.
  • Maintained and improved custom Java, Shell and SQL scripts and software used for data ETL process.
  • Created, analyzed and maintained databases with over 500 million records.

Data Acquisition Specialist
Catalist, Washington, DC
August 2010 - November 2010

  • Processed and normalized data from multiple sources using Talend Data Integration Suite.
  • Resolved data quality issues using Microsoft Excel, SQL Queries, and various Unix programs.
  • Partnered with state officials and third-party vendors to ensure delivery of required data.
  • Generated, analyzed and presented reports to improve data quality control processes.

Information Technology Infrastructure Technician
Guilford College Information Technology, Greensboro, NC
January 2009 - July 2010

  • Configured and deployed computer systems across the college campus.
  • Researched and implemented updates to campus networking equipment.
  • Documented implementations and solutions of network and systems problems.
  • Implemented remote configuration, management and notification solution for network uninterruptible power supplies.

Field Organizer
Obama for America, Tappahannock, VA
June 2008 - November 2008

  • Led grassroots voter contact organization in five counties to elect Barack Obama for President.
  • Analyzed data to allow for most efficient use of volunteers and resources in key precincts.
  • Organized a broad volunteer base in a traditionally Republican area of rural Virginia.
  • Executed field plan to meet voter contact and volunteer goals laid out by the State Field Director.
  • Coordinated organizational meetings with over two hundred volunteers to develop effective local outreach plans.

Information Technology Help Desk Technician
Guilford College Information Technology, Greensboro, NC
September 2007 - May 2008

  • Documented technical and computer issues using electronic ticketing system.
  • Resolved technical issues in equipment and user software across a variety of technologies.
  • Instructed users how to use computer equipment and software.
  • Standardized storage procedures for media and computer equipment.

SKILLS

  • Languages: Capable with Go, Java, SQL. Familiar but not proficient with Javascript, Ruby, Python.
  • Tools: Hashicorp Vault,
  • Java Application Development: Guice, MyBatis, GWT, DropWizard, Jersey, Jackson, Guava, BoneCP, C3P0, Spring, JodaTime, slf4j/logback, Jetty, Tomcat, other common libraries,
  • Platforms: Linux (CentOS & Ubuntu), Amazon Web Services, OS X,
  • Databases: PostgreSQL, Redshift, Vertica, MySQL, Oracle,
  • Development Tools: Gitlab, Jenkins, Travis CI, Wercker, git, Eclipse, vim, Maven, tmux, Fish Shell,

EDUCATION

Bachelor of Science, Computing Information & Technology
Guilford College, Greensboro, NC

CONTACT

info@ianferguson.io
LinkedIn
GitHub
ianferguson.io