Adam Ferguson

Software Developer

Address:
Charlotte, NC
Email:
Adam.Brugh.Ferguson@gmail.com
Website:
http://adam-ferguson.com

About

Software developer with broad experience in full stack web development, cloud computing, devops, data analysis, service oriented architecture, and systems integration. Strong problem solver that optimizes for reliable, working solutions that are cost effective in both the short and long term. Strives to always maintain a balance between perfectionism and pragmatism. Friendly personality and appreciates that the creation of software is a team sport. Constantly learning and quickly adapts to new technologies, techniques, and architectures.

Skills

Programming

  • Ruby, Advanced
  • Python, Advanced
  • Javascript/NodeJS, Advanced
  • HTML/CSS, Intermediate
  • Java, Intermediate
  • Bash/Shell, Intermediate
  • C#, Intermediate
  • Clojure, Novice
  • Scala, Novice
  • Perl, No Longer Used

Technology

  • Git, Mercurial, SVN, CVS
  • PostgreSQL, MySQL, SQL Server, Oracle, Redshift
  • ElasticSearch, Redis MongoDB
  • Ansible, Docker, Chef, Capistrano, Fabric
  • Hadoop, Storm, Kafka, novice
  • Travis, Jenkins, Vagrant
  • Websockets, Socket.IO, PubNub
  • Amazon Web Services, Google Cloud Platform

Frameworks/Libraries

  • EmberJS (advanced), AngularJS, ReactJS, BackboneJS
  • Ruby on Rails (advanced), Django, Spring MVC, Play
  • Flask, Sinatra, ExpressJS, Bottle
  • ActiveRecord, Mongoose/Mongoid, SQLAlchemy, Hibernate, Entity Framework
  • RSpec, QUnit, Mocha, Jasmine, Nose

Work Experience

Ferguson Software Services at Invue Security Products, Inc.

Senior Software Engineer

April 2017 - Present

Cloud Infrastructure, DevOps, Full Stack Web, Android, IOT, Serverless

  • Migrated a Node/React application from a physical server, deployed with bash scripts, to Google Cloud provisioned and deployed with Ansible under CI/CD with Travis
  • Migrated Java application server communicating with embedded device with proprietary binary format over TCP sockets to run in Cloud environment.
  • Added features and deployed an Android application to work with a new verion of NodeJS API.
  • Features, bugfixes, performance enhancements, and systems administration on 'Microsigns'. A web application that leveraged a microservices architecture using Node w/ PostgreSQL on the backend and AngularJS on the frontend. Deployed to AWS using Ansible and Docker.
  • Setup an IOT infrastructure in AWS for receiving messages from devices deployed in retailers and processing them using AWS Lambda deployed with the serverless framework.

Ferguson Software Services onsite at Mood Media

Data Engineer and Application Development Consultant

January 2015 - March 2017

Systems integration and web application development

  • Assisted in development of web application using C# on the backend and AngularJS on the frontend.
  • Integrated multiple systems using ETL framework, Python, and SQLAlchemy
  • Developed and maintained multiple Ruby on Rails applications that used various client side javascript frameworks, including ReactJS and BackboneJS
  • Migrated an existing data warehousing solution from MongoDB to Redshift
  • Started a device outage monitoring solution using the Hadoop platform, Ambari, Storm, and Kafka

Ally Financial through OpenSystems Technologies

Web Development Consultant

August 2014 - January 2015

  • Part of team that developed Ally's online banking frontend as an EmberJS application
  • Customized and completed several variants of the build process used by whole team for development and deployment. Tools used included Rake Pipeline, RequireJS, Broccoli, Ember-CLI, and ES6.
  • Reworked build process to create a mobile specific version of the online banking application. Added mobile specific customizations to the application.

Technekes/Connexiolabs

Senior Software Engineer

February 2013 - August 2014

  • Lead developer on call center application used by all of Technekes call center employees. Project used EmberJS on the front end, Ruby on Rails on the backend along with MongoDB, ElasticSearch, and Postgresql. Twilio was used for telephony.
  • Developed a realtime dashboard using EmberJS and Ruby on Rails that allowed administrators to monitor the status and listen to ongoing calls. Pubnub was used for realtime communication between the client and server.
  • Part of small developer team that was split off from Technekes to form a separate, product focused, startup 'Connexiolabs'. Developed several marketing focused applications and web services as a part of that startup using a Microservices architecture.

Mood Media/Muzak LLC

Senior Software Developer

July 2011 - February 2013

  • Founding member of the New Product Development team. Designed and developed multiple web and mobile applications including OnlineDJ, Klikt, Sonictap, and the MyMuzak.
  • Developed the backend of MyMuzak, Klikt, and OnlineDJ using Ruby on Rails. Used MySQL, Sphinx, and Solr for data storage and free text search. Applications were developed using BDD and TDD techniques including the use of Cucumber and RSpec.
  • Developed mobile applications for the customer loyalty application, Klikt. Developed a native Android application in Java using SpringAndroid, Roboguice, Android Annotations, OrmLite, and Jackson.
  • Used BackboneJS for developing rich client side features in OnlineDJ and MyMuzak. Developed the Klikt iPhone app using phonegap and BackboneJS.
  • Used DevOps tools and techniques including Jenkins for continuous integration, Capistrano for automated deployments, and Chef for server provisioning.
  • Integrated applications with several third party services including Facebook, Twitter, Mailchimp, AppFigures, and Google Maps.

Public Consulting Group

Software Engineer

March 2008 - May 2011

  • Lead developer on BehaviorPlus, a web app for tracking behavior issues in grade school students. BehaviorPlus integrated with EasyIEP, an existing application that helps school districts comply with laws around services for special education students.
  • Developed backend code in SQL and Perl, frontend code in HTML, CSS, and Javascript, jQuery and PrototypeJS. SQL Server 2000 and IIS were initially used as DB and application servers. Later migrated to SQL Server 2005 and Apache.
  • Assisted in creating stylesheets that defined interface standards for all commonly displayed elements in pages within the web app.
  • Led the configuration, training, and release of the issue tracking tool JIRA within the company.
  • Developed scripts used for common system administration tasks using Perl.

SNL Financial

Business Systems Analyst

April 2007 - March 2008

  • Maintained and acted as content expert for Institutional Ownership, Insider Trading and Short Interest datasets within the company.
  • Communicated with third-party vendors for content and technical specifications related to datafeeds.
  • Drafted technical specifications for converting manual collection and entry of credit ratings from three major credit rating agencies (S&P, Moody’s, and Fitch) to automated process including specifications for software used for feed maintenance.
  • Derived dataset statistics for senior management and sales teams for use in contract negotiations and marketing materials using SQL and proprietary Excel plug-in, SNLxl.
  • Troubleshot problems reported in SQL Server 2005 stored procedures used for calculating SNL’s internal market indices.

National Science Foundation

IGERT Fellow

May 2002 - June 2006

  • Led and assisted in various research projects interested in examining economic aspects of the emerging wireless technology cognitive radio.
  • Conducted regression analysis on data collected in Economics Experiments in STATA. Results included in journal publications.

Economics Dept. at Virginia Tech

Programmer/Lab Assistant

May 2002 - June 2006

  • Development, analysis, and refinement of a system (WITS) that used Palm Pilots as clients and a central server to simulate market scenarios in Economics classes.
  • Programming in C# and data collection and analysis.
  • Web design for WITS project

Virginia Tech Transportation Institute

Research Assistant

May 2001 - August 2003

  • Extract and analyze relevant data from transportation focused human factors studies using Excel, VB.NET, and SQL Server.

Education

Virginia Tech, Blacksburg, VA

2004 - 2006

  • MA Economics
  • Nation Science Foundation IGERT Fellow

Virginia Tech, Blacksburg, VA

2000 - 2004

  • BS Economics & Business Information Technology,
  • Outstanding Senior in Economics Class of 2004
  • 3.7 GPA

Interests

  • Cloud Services
  • Emerging technologies
  • Data Analysis and Machine Learning
  • Design Patterns
  • Service Oriented Architecture
  • Financial Services and Investing