Developing custom software that delivers business value.
I take care of the technical stuff so you can focus on growing your business.
A new Rails team at NASA's Kennedy Space Center asked me to work with them for three months to get them up to speed on Ruby on Rails and to solve some nagging process issues. I was able to transition the team from reactive to proactive using Agile values and principles, and to step up their development skills.
In exchange, I got to tour spaceships.
This client came to me with an existing Rails site. After a fall-out with the previous developer, it had been without maintenance for months and was starting to be a source of daily frustration. Since it was critical to their repair scheduling business, they needed someone they could trust to make sure it got better, not worse. Over 10 years, I helped this client grow from a small regional organization to a recognized national name in the industry.
Supplemental Medical Reporting
This medical application has collected hundreds of datapoints for each of over 10,000 patient timepoints. This data is used to do some predictive math about how patients are aging, which is then presented in a spectacular report and in a health analytics platform. Click here to read more about the transformation from crippled app to the picture of stress-free quality control they are today.
10 years, 120 tables, helped the company grow through many transformations.
Acted as CTO, project manager and lead engineer; drove product design, and built great patient-centric medical software.
Transitioned a growing company from listing employees on whiteboards to using a database.
My ideal clients are small to mid-sized businesses that want to leverage custom software to solve problems and create opportunities but that don’t have the internal capacity to develop this software themselves. I provide the most value when I work on business-critical software with a stakeholder who doesn't necessarily want to understand the technology end -- they just want to tell me about their business problems and then go back to growing the business.
Although it's always fun to get involved in projects during the conceptual phase so I can help architect solutions from scratch, I'm completely open to working with existing projects and slowly moving the needle towards greater maintainability. In either situation, I look to address the right problems in something approaching the right order within the available budget.
But I have also been brought in to help rescue projects that have failed at some point along the way, especially when it's not clear to the stakeholders what might be the actual issue preventing completion.
I look to work with clients who see me as their partner in turning customer software into real solutions that help grow their businesses.
Custom Software Development
I build scalable, reliable, custom software using industry-standard technologies to solve your business challenges.
Through my experience working for partners like NASA and ThoughtWorks , I’ve learned how to cost-effectively balance the desire to get features built quickly with the need to architect reliable systems that scale with your business.
Technology Advisory Services
I understand what it takes to incorporate new software seamlessly into your existing operations, which is especially helpful for clients that rely on software to run their businesses but don’t employ a full-time CIO or CTO.
Through my experience working with a range of corporate and entrepreneurial clients, I’ve learned how to communicate technical issues to non-technical audiences and to define the decisions that need to be made when developing software in business terms.
Open Source projects
One of my core values is community involvement. I contribute snippets of commonly-used code to the Ruby community in the form of Gems , which other developers can freely use. This is a two-way street: the availability of other gems saves my clients money.
Valuable is my attempt to make modeling in Ruby easier. I find that I use a lot of Ruby and Rails design patterns that aren't built on top of ActiveRecord. Valuable makes the process of writing these utility classes simpler. I wrote it because I found it inefficient to write and rewrite similar constructors and attribute setters.
In a way, it's like attr_accessor on steoids. It aims to let you focus on your domain rather than creating routine getters and setters.
Collection+JSON is a media type describing APIs that follow the principles described as HATEOAS (Hypertext As The Engine Of Application State). This module implements a collection+JSON client.
I rewrote the existing NPM module which previously used coffeescript and also had many, many dependencies so that it resulted in quite a large distributed file. Finally, I used the
UMD (Universal Module Definition)
design pattern so that this module could be used as a constant and via
include in js. This allows it to be used both on the web and on a server, in both enterprise-class apps and in very simple applications.
Sketch makes it easy to create SVG images, and provides a library of existing images for your convenience.