Ian Ferguson - Resume


Engineering Manager September 2016 - Current

Senior Software Engineer January 2016 - September 2016

Opower, acquired by Oracle, Arlington, VA

  • 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, Maven, other common libraries,
  • Platforms: Linux (CentOS & Ubuntu), Amazon Web Services, OS X,
  • Databases: PostgreSQL, Redshift, Vertica, MySQL, Oracle,
  • Development Tools: Jenkins, Travis CI, Wercker, git, Eclipse, vim, Jenkins/Hudson, Maven, tmux, Fish Shell,


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


info@ianferguson.io LinkedIn GitHub ianferguson.io