Ian Ferguson - Resume


Engineering Team Lead
Datadog, New York, NY (Remote)
July 2018 - Current

  • Shaped mission and culture of newly created Engineering Tools team.
  • 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.
  • Participated in improvements to the Spinnaker open source project codebase.
  • Led team responsible for improving and scaling Datadog’s Continuous Integration and Continuous Delivery practices.

Engineering Manager
Opower, acquired by Oracle, Arlington, VA
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
Opower, acquired by Oracle, Arlington, VA
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.

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.


  • Languages: Java (Expert), Go (Some), HTML/CSS (Some), JavaScript (Some),
  • Java Application Development: Guice, MyBatis, GWT, DropWizard, Jersey, Jackson, Guava, BoneCP, C3P0, Spring, JodaTime, slf4j/logback, Jetty, Tomcat, other common libraries,
  • Tools: Hashicorp Vault,
  • Platforms: Linux (CentOS & Ubuntu), Amazon Web Services, OS X,
  • Databases: PostgreSQL, Redshift, Vertica, MySQL, Oracle,
  • Development Tools: Jenkins, Travis CI, Wercker, git, Eclipse, vim, Maven, tmux, Fish Shell,


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