In a fifteen-year career as a full-stack developer, Ryan McGeary has founded seven businesses, become one of the most prolific Stackoverflow answerers of all time, and co-founded Let Me Google That For You, everyone’s favorite punishment for asking dumb questions.
He also co-hosts regular Ruby meetups in Leesburg, Virginia, as well as a weekly entrepreneurship development meetup called 1 Million Cups. He’s a prolific speaker on topics like asynchronous collaboration and HTML 5 application caching.
If you work in OSX, check out this awesome video in which he explains his three-monitor Emacs workflow.
So… what do you do?
I’m a longtime technologist and software developer, and I run my own consulting group.
I’m currently on my seventh business, a startup called Busyconf, which makes event-management software for conferences and conventions. We’re still new – we’re not in the growth stage yet – but we’ve already revenue-generating and have proven ourselves with more than $2 million in attendee ticket registrations.
The language I usually think in right now is Ruby – I’m an expert in Rails, databases, and MySQL. I do a lot of MongoDB, and I used to do a ton of Java, but nowadays I prefer Ruby on Rails.
You’re pretty active on Github. What are the advantages for your clients?
It’s safe to say I’m one of the top open-source Github contributors in the world who isn’t paid to do it. Working open source has huge benefits for clients. Getting a bugfix or a feature pulled in and added to the project gives us a chance to work with that open source team, so the client is able to move forward with the best software libraries we can.
It helps us minimize technical debt and cruft. I can’t always be around – whatever I build will often be inherited by other people – and by posting the project to Github I can set them up for the best experience they can have when they take things over.
Of all the projects you’ve worked on, which are you proudest of?
I have an open-source Javascript library called Liquid Metal. It’s the fastest and best fuzzy-search indexing algorithm in JavaScript.
Quicksilver, a popular OSX application launcher, had an algorithm for measuring how close your typing was to the search results. I wanted something like that for the web, and found that someone had ported the original Objective C code over to Javascript. But it was written in a recursive manner that was terrible from a performance perspective.
I rewrote it so it was two or three orders of magnitude faster than the original Quicksilver approach and added some additional features, like treating capital letters as more important. It was one of those projects that took me a weekend, and it isn’t the most popular library I’ve worked on, but I’m very proud of it.
How do you go about helping someone with a coding problem?
When I come to the table to help someone, I’m not just a code monkey. I also come with a bunch of business acumen. In my freelance consulting work, I say “no” a lot – “Let’s not do this. Instead, let’s do something that’s going to benefit your business more.”
Sometimes people come to you with a problem, and before they even finish the question, you know the answer, because you’ve run into the problem before. And then you teach them why.
Other times, people are completely lost in the very deep mess they’ve dug themselves into; in those cases, it can take a few hours.
What’s your favorite hack?
It’s more of a mantra than a hack: Code is a liability, and the less code the better.
When you’re trying solve a problem, simplicity is always the first thing – Occam’s razor wins out. I think more people in our industry need to focus on that than they typically do.
What do you wish someone had told you when you were learning to code?
If you’re first starting to code, the key is to build things, learn, and explore. But from a professional software perspective. what’s going to make you valuable is understanding version control really well.
No one teaches this until you get out into the real world. Had someone sat me down and helped me understand it sooner, it would have been much easier, because it’s something most developers can’t live without.
The other thing is, some people say that any language can solve any problem. To some extent that’s true, but there are a lot of languages out there that are really well-suited to certain problems.
Learn as many languages and frameworks as possible, because understanding the different ways of solving a problem in different environments will make you better at solving the problem in your current environment.
How did you start Let Me Google That For You?
In November 2008, I was working for a consulting company. I was out to lunch with a few buddies. We were lamenting one of our co-workers, who had a habit of asking unnecessary questions over IM.
We were joking about how, in our heads, the response was always “let me Google that for you,” and someone asked, “what if there was a site that actually did that?”
So the other founder went back to his desk for a few hours and built a prototype. He called me over to look at it, and my response was, “This is amazing. We’re launching this for real by midnight tonight.”
So we actually did get it launched, and the next day we posted it on Reddit and Digg and got crickets at first. Then, toward the end of the day, Reddit finally “got it” and started going nuts for it, and then it became the number one post up to that point on Digg.
At first we got a piece of the ad revenue from the search results pages, which was like $5,000 the first month and $6,000 the second month. The third month Google figured out what was happening, and called it a violation of the advertising terms of service and shut it down.
But it still gets five or six million uniques a month. Based on typical ad revenue for that amount of traffic, I figure LMGTFY pays the salary of roughly one Google employee.
Need Ryan’s help? Book an 1-on-1 session!