What We Do


Application Development

  • RESTful API Design & Implementation
  • Web Applications
  • Cloud and Application Architecture

Data Engineering

  • Database Design & Architecture
  • Analytics Stack Evaluation
  • Data Pipeline development

Process Automation

  • Automating Excel Report Generation
  • Conversion of SAS code to R
  • Scaling in-memory algorithms

Classical Statistical Analysis

  • Regression Analysis
  • Nonparametric Methods
  • Multilevel/Heirarchical Models

Statistical Learning/Data Mining

  • Decision Trees (CART, Random Forests)
  • Support Vector Machines (SVM)
  • Deep Learning/Neural Networks

Data Visualization

  • Development of custom visualizations
  • Static and interactive graphics
  • Built with open-source tools like R and D3


Custom Software

We typically use a agile methods for custom software development though our general approach is to:

  • Understand the business objectives
  • Discover requirements and constraints
  • Deliver working software frequently, making incremental enhancements

Data Science

Our methodology for solving data science problems is slightly different because most projects begin with our determining whether using data science is even feasible. Simply put, the signal must outweigh the noise for a data science solution to be effective.

Our initial goals in any data science project are:

  • Understand the business objectives
  • Understand the data available to reach the objective
  • Perform preliminary analyses to determine whether data science is a feasible solution to the problem


First, we conduct short interviews with clients to determine the business objectives. Examples of objectives include:

  • Calibrate user-specific settings for a wearable biometric device
  • Estimate the future return of an equity based on publicly available insider transaction data
  • Build exploratory visualizations to determine if sports team synchrony influences performance


The next step is examining your data.  We work with data in any form: text files, Excel worksheets, or SQL databases are not a problem. For a one-time analysis we will usually take the data in whatever form you have available. If the analysis is going to be recurring, we will help you design a process for extracting the data from the source system, checking the data for errors, and transforming the data for use with our analytical tools.

Preparing the data for analysis can be a large part of the project. Factors that influence the amount of data preparation work include the quantity of missing values and the degree to which the data has already been normalized or coded. As an example, consider an analysis involving age. If some of the ages are recorded as intervals like 30 - 39 and others are recorded as whole numbers like 54 then we will have to recode this field in a consistent manner.


The third step in our process is determining the appropriate methods to solve your problem. We use traditional statistical techniques such as least-squares regression, more modern approaches such as multilevel/heirarchical models, and statistical learning approaches such as decision trees or support vector machines. Some of the factors that guide this decision include:

  • Number of records and predictors in dataset
  • Need for transparency in understanding model outputs
  • Availability of computing resources to update the model


We provide you with the results of the analysis in a written report using appropriate tables and visualizations. We determine to what degree the results are statistically and economically significant and make recommendations for future work.