Peter Groves Consulting, Inc

Machine Learning Software Development


As of September 2013, I am no longer taking on new clients except for projects estimated to be less than 30 billable hours.


The software industry is undergoing a dramatic shift where everything that can be a web app, will be a web app. At the same time, machine learning and practical A.I. techniques developed by researchers over the past 30 years are being integrated into end-user products at a disappointing rate, even with significant hype about Big Data and Analytics.

I build full-stack software that uses advanced analytics techniques. Deciding on a set of algorithms to tackle a problem is often only a tiny part of getting a working system up and running against real data. Researchers typically don't have the software engineering experience to build full stack applications, while software engineers shy away from the hard math or don't have experience with apps that use large chunks of data with every user interaction. I can come in, start from wherever you are, with whatever technology you're using, and get a functional analytics layer working. I also can put together a simple database layer and user interface to get things moving if you're starting from scratch.


I have done numerous projects over the years that explore what can be derived from companies' data and how to integrate that knowledge into intuitive human interfaces.

I have 8 years of hands-on software development experience including 4 years with Java. I am also proficient in Ocaml, a functional language popular in academic circles, and use Ruby for lightweight scripting. When additional on-demand compute resources are needed for a project, I have used Rackspace cloud-servers, and normally develop on Linux platforms.

I've worked at the data mining group of the National Center for Supercomputing Applications both building big data infrastructure and working at the application layer to provide specific results to corporate partners.


Full-Stack Prototypes

I work with a non-technical client to build a full-stack prototype by myself or with other contractors. A good rule of thumb is that a "prototype" is something that works, has a minimal html/css interface, can accomadate less than 50 users, and performs nightly backups of user data. Anything more complex typically requires expanding the dev team to include people like javascript developers and database experts.

Time is reserved and billed in weekly chunks. Engagements are one to six months except for maintenance work for existing clients, which is billed hourly.

Software Development Team Member (Analytics Focus)

I work with an existing software team to add analytics features to their application.

Time is reserved and billed in weekly chunks. Engagements are one to six months except for maintenance work for existing clients, which is billed hourly.

Guidance and Analysis

Sometimes a competent development team just needs to be pointed in the right direction when getting started with an analytics feature. I can spend a few days doing a requirements gathering (with lots of hand holding and suggestions) and give my recommendation for an approach. I can optionally do an in-depth writeup of a concrete approach that has more of the details worked out.

Time is reserved and billed by the day. As little as a day or two can have benefits. If a custom machine learning algorithm needs to be developed, a writeup will likely take 2-3 weeks and should be considered semi-high risk.