Ruby on Rails Development

Building MVPs, adding feature to existing apps, and scaling your SaaS. We do it all.

Deployment Service

Get off Heroku and deploy with Kamal! We set you up on bare metal servers and help cut those large PaaS bills.


From the Blog

  • Why we unit test.

    Programmers write bugs (you didn’t think bugs wrote themselves right?). To deal with these logic regressions we write tests to keep ourselves honest. Test are both a way to ensure that the program really does what intended, and to communicate the programmers intent to the next person who looks at the code. But some of…

  • What is a Ruby block?

    Ruby blocks are fairly easy to pickup, use, and make work if you just follow the common examples. But at some point you might realize that you don’t really understand what is going on in the same way as you might with variable assignment or a method call. Let’s start with a basic definition of…

  • Notes on the Rails 8 Keynote: “It’s More Fun to Be Competent”

    David Heinemeier Hansson is back with the the Rails World keynote talking about the trends he is seeing in the industry and where he wants to take Rails 8. As usual, the keynote has lots of interesting ideas and the next version of Rails is giving us developers lots of new tools. I want to…

  • The differences between Ruby blocks, procs, lambdas and closures.

    Grappling with the differences between Ruby blocks, procs, lambdas, and closures is confusing at first. To fresh eyes they looks kinda weird and complicated compared to other parts of Ruby which are more familiar. But once you get them down you realize how cool and useful they really are. We are here to walk you…

  • Better, faster code with test driven development.

    People have pretty strong opinions on TDD (Test Driven Development). Some think that it is a pretty big waste of time while others think it is the only way to go. Off the bat, I will state that I lean more towards the latter camp, that TDD is a great tool for both writing code…

  • ChatGPT is still making lots of mistakes.

    How reliable is it? Far from ChatGPT taking all the jobs of writers, programmers, spreadsheet wizards (and more) I have mostly seen it used so far as a research assistant. A programmer will ask it some question and then use that to help compose a larger program. This kinda works in programming if you ask…

  • The Safety Margin in Software Development Estimates

    Accurately estimating the time required to complete tasks or “tickets” is a complex endeavor. Every time you break down and plot out how you are going to add a new feature to existing software what you are really doing is…. making a wild-ass guess! Yes, I could say that adding a new rails controller is…

  • The Power of Play for better Team Meetings

    Sometimes stand ups are soooo boring. The stand up. That once a day meeting where you: say what you did yesterday, say what you are doing today, say what is blocking you, and then tune out. It makes sense, we operate in a a world filled with deadlines, deliverables, data and procedures to make things…

  • What to Do When You’re Laid Off

    A guide for software engineers. Alright, you’ve been laid off. Shit happens! But guess what? It’s not the end. Everybody gets randomly punched in the face sometimes. This is just another challenge to overcome on the way to the next amazing job. 1. Feel All the Feels, Then Move On Mad? Sad? Feeling like crap?…

  • Should I fix the terrible app I inherited? Or totally rewrite it?

    Assuming this app is larger than a one day to one week rewrite (for yourself or your team) then the question has to be asked: Do we completely rewrite this app as a new v2 or do we refactor the existing code base? Size and scope The biggest problem of an inherited app is that…