Below are some questions I get asked regularly about my web engineering consulting services. For more information about my services, take a look at my About my services page.
It depends. I'm a web engineering consultant. What that means is that I develop custom applications on the web for my clients. Custom applications are different from say, a marketing site or a blog, in that they have highly custom features and behavior specific to your business.
If you're building a custom web application, I'm probably a good candidate for your project. But if you want a new marketing site, blog, content site, IT deployment, or another implementation of an off-the-shelf solution, you'll be better suited going elsewhere. I am happy to refer you to someone who can help you though. Get in touch and let me know what you're looking for.
I don't have one. I stopped billing by the hour because it creates poor incentives for everyone involved. Rather than measure progress in terms of business outcomes, hourly billing causes us to measure our progress in terms of deliverables. We had a meeting, I sent you an email, I developed such-and-such a feature, etc. These things are necessary in the pursuit of your business goals, but they don't represent the true value of custom software to your business.
Instead, I bill daily. Rather than handing you an invoice that lists all the email I sent, the meetings I had, and the code I wrote, you'll get an invoice that lists the specific value I delivered to your business for each day we've worked together. For my current rates and availability, see my Current availability page.
Estimating time/cost to deliver software projects is notoriously difficult. Most of the time, cost estimates are wrong. Sometimes, they're wrong by a factor of 2.
Because of this, I'll give you a "gut feeling" estimate upfront, but then encourage you to engage with me for a week or two to build the most critical part of your application. Once we've established our velocity for this initial period, you'll be armed with real-world data about how to proceed. This could mean cancelling or modifying certain non-critical features or hiring lower-cost junior engineers to implement certain functionality.
I'm also happy to work with you during the discovery process of your project to estimate features and articulate requirements in a manner sufficient to hand off to an engineer for implementation.
It's my goal to ensure the application we build is an asset to your business for years into the future. That's why I focus on technologies with a long track record of community support and success in the marketplace.
Right now, my toolbelt consists mainly of the Ruby on Rails web framework and the React UI library. Both of these technologies have been used in production for years, are proven to be maintainable and scalable, and are easy to transfer to new development teams without much onboarding.
Over the years I've honed my approach to software development to be asynchronous, iterative, and agile.
By asynchronous I mean favoring online discussions over meetings, Basecamp over Slack, and working by the whims of creativity rather than on a set schedule. I've found that by cultivating vast swaths of uninterrupted time, I build better software faster. That doesn't mean it's not critical to have face-to-face interactions when necessary, but I like to make them the exception rather than the rule.
By iterative, I mean that I'm going to deliver you working software at least once per week, sometimes once per day. It's my responsibility to deliver you excellent software, and it's your responsibility to make sure it meets your needs as I deliver it. By working in such an iterative fashion we'll eliminate the possibility that we've veered off course. You'll always be in control.
And by agile, I mean that I'll use tools and best practices which ensure we can change course at a moment's notice should the need arise. Business is not static, and neither are your technology needs.
I offer NET30 payment terms on all of my contracts. That means your invoice payment is due no more than 30 days after receiving an invoice. Please let me know if you have special circumstances that make it difficult to render payment within this timeframe so we can make it work.
Fill out the form below and I'll get back to you as soon as I can.