podcasts

S01E10: Joe O'Brien

11 Feb 2011

We interview Joe O'Brien and talk to him about ruby koans, jruby and codemash Melissa: So today we have Joe O’Brien from EdgeCase here with us on the Cloud out Loud Podcast. Joe do you want to just take a minute to introduce yourself and tell us a little bit about your background.

Joe: So yea, again, Joe O’Brien. I founded a company called EdgeCase about 4 and a half years ago or so. We work out of Columbus Ohio but our client base is international. We’ve got offices in the UK, in the states and we do all forms of Web enabled applications mostly dealing with Ruby on Rails but really any kind of tool that works well for what you’re looking for. We’ve been highly involved in the community as a whole, individually as well--speaking at conferences, running the user groups in various places, and just really trying to spread the word about Ruby and Agile development.

Melissa: Awesome. Can you tell us a little bit about, I guess, how you first encountered Ruby and why you’re so passionate about spreading the word?

Joe: Yea. So, I can from the Agile community and spent a lot of time there and was spending a lot of time evangelizing it. Was doing some development in Perl of all things and one of my close friends had told me, “You know you really need to check out the pick axe” bought it and never really paid much attention to it at the time because I was trying to become a much better Linux user and of course all Linux users use Perl. So, I was writing a big document processing library and one evening, picked up the Pick Axe, for--I don’t remember why but because of what I was doing at the time, looked at object oriented regular expressions and out of all the weird things to pull me into the language, its something that a lot of languages have for some reason, object oriented regular expressions kind of brought me in. They sucked me in and then I started looking at the language in more detail and just, the more I discovered, the more I was just absolutely amazed and enamored and really have spent my time trying to, at the time--convince the company I was working for to use it and now I’m try to tell everyb--all other kind of individuals what its like to use it, what it offers, the amazing parts about it.

Melissa: Cool. Can you tell us a little bit about what those parts are?

Joe: The flexibility it brings--one of the things that businesses don’t look at as much as they should is the cost of change. When you’re developing an application, in my mind, the number 1 priority should be cost of change and Ruby gives us that ability. 1-by stripping away a lot of the croft, getting to just the essence of what you’re trying to develop and number 2-the ability to test anything and everything. Yes, we’ve had some trouble lately with over-testing in the community and its a subject we need to talk about but in reality its a good problem to have. Most languages and platforms don’t give you this kind of idea of what you’re looking for--and its amazing what Ruby does give you in that flexibility. So the frameworks here better create the code that you’re able to deliver--you’re able to do things in 20% of the code--basically with 20% of the code than you used to be able to do. Obviously anecdotally but we’ve delivered some incredibly complex applications and we’re delivering a lot less, which means maintenance is lower, which means the ability to change them is lower which means we can focus on the best practices that we’ve been wanting to focus on and spend our time on instead of configurations and things we worked on in the past

Melissa: Okay. Cool. Can you tell us, I guess, a little bit more about your software development philosophy? It sounds like you were kind of starting to describe it there.

Joe: Yea--it is all centered around cost of change. Melissa: Ok.

Joe: My first ever software development project--came into the game very late. I had a sales career for a while and I was trying to run away from my inner-geek. My very first software development project though, I was--I went from intern to project manager in less than 6 months, simply because I could communicate. Here was a company that over the course of 3 years, their entire business model for their industry had shifted from centralized purchasing and decision making and production to completely globally distributed. It was in the garment industry and they had a system written in Foxboro for Dawes, this is not a dig on Foxboro but the way it was written and the way they were approaching software was in such a--was done such that they could not improve. And in 3 years they tried multiple re-writes that failed because they really could not get anywhere with this system and so its all centered around that ability to change. And development philosophies like Agile, pairing, eliminating silos of knowledge, getting feedback from users very quickly, knowing if you mess up you can recover very quickly. Finding the people that can--

Melissa: That flexibility?

Joe: Yea. Exactly, flexibility. Finding the people that can help you on a team--on your team. Then, also choosing the tools that help enable that team to do as much and as well as they can. Not, tools that are going to hold them back or make them jump through hoops just for the sake of some perceived--see there’s one of--my brain stops for just a minute--just for some perceived flexibility or some perceived notion of safety that you’re getting from say compiler or something like that.

Melissa: Ok. Cool. And then I know--you and I have worked together on a lot of JRuby initiatives like JRubyConf in Columbus, Ohio last October and you guys are--you and EdgeCase are very deeply embedded in the JRuby community. Can you talk a little bit about that--the importance of JRuby and what kind of developments and innovations are taking place in that space now?

Joe: I will, yea definitely. I personally became excited about JRuby at RubyConf in Denver so many years back--couple years back now I can’t remember exactly which one that was but when I first got to meet Charlie and hear about it and the work that he and Tom were doing and the rest of the core team, I was really excited about the idea and see it come to fruition is just absolutely amazing. They’ve done some incredible things and the reason JRuby is important is not because of any kind of deep love for Java or anything like that or any kind of nostalgia, its really for the idea that there is a lot of code out there. If every developers was to stop writing Java tomorrow, we would still be dealing with the Java language for the next 10 or 20 years, just like Cobol is still around. Finding a way to allow developers to move forward and work with the systems out there is something we really need to concentrate on. While we’d love it to be tackled from say, an architectural level, which I know is a passion of Tom Morini’s and other people of, you know, arching back to my SOA days, the reality is that its not necessarily going to happen at a lot of companies. So the ability to call into a lot of libraries that are already there to use existing systems but yet move forward in platforms like Ruby on Rails is really going to be critical for corporations. The Java platform is screaming for another option. You’re looking at the Scala, you’re looking at the Closure, your looking at the Groovies, you’re looking at the other things that are out there, they’re screaming for something other than the language they have and I think JRuby’s going to be the perfect complement to that. The guys have worked extremely hard to make a language that is not forked, its not changed, it is a true implementation of a language already sitting out there and it runs on the JVM. They’ve done just amazing work on this. I look at things like Groovy, I look at technologies like that that are out there--they tackle it thinking its purely a syntax issue and its honestly the absolute wrong message you need to be--the wrong direction you need to be going if you’re looking for a change. You need to be looking for something like Ruby that has a lot of mind-share, has proven scalability, has proven productivity gains that come out of it and be able to bring it to your corporation. I think that’s what its giving. And so, we’ve thrown our weight fully behind it because, I’d say probably about 2 years ago, we looked at it again and we been tracking the project for awhile but we finally got to a point where we tried it, used it on a production system and it worked very, very well. We came at it from a Ruby developer stand point of we needed a library--it was in some document processing--that they’re weren’t some good enough libraries that we had whereas Java had a plethora of them, used it, it was brilliant, it worked very, very well and it let us plug away and go. And so not just tackling it from the Java perspective but then looking at the Ruby community, realizing there’s a lot of wheels that have been reinvented. There’s a lot of scalability and server knowledge that’s persisted out of the Java community that we should be taking advantage of and again, kudos to the guys for putting together the project and really taking it forward and so we looked and saw how can we help. They were doing such phenomenal work on the technical side and we’re using it and we wanted to help even more. That’s where it came in. We’ve been pushing enterprise and Ruby for awhile and I think enterprise--I’ve started coming to realize recently that enterprise is the wrong term to be looking at, but established companies, established software areas that could be taking advantage of Ruby in better ways. We put on a conference once a year about it and we thought, “What better way than to help, this past year, than to team up with you guys at Engine Yard and put on this conference” and kudos to you for helping us put it together because it came across incredibly well. For anybody that missed it, if you go to JRubyConf.com, all the videos are up from the conference. We had an incredible amount of talks; you’re going to miss out on the whiskey event--we did not record that but look for this year--we’re going to have another killer conference. We’re going to put it in a more central location, as much as I’m married to Ohio, literally and figuratively, not everybody is, so we’re going to find a better location, put it on again, really show the buzz that’s there in the community and excitement that’s sitting there.

Melissa: And for people, who are just as excited about JRuby as you and I are, are there ways that you can suggest that they get involved and contribute?

Joe: Yea, I mean definitely. We’ve--we’re always looking for help in different ways. There’s always technical help that can be brought about and as corny as it sounds from bug-fixing, using it is the first thing. Anybody get out there find a different way that we haven’t tried yet and do it. Jump in the JRuby IRC channel, sit there for awhile, help people out. If you come from the Java realm, tell us about some libraries that are out there that are really amazing. The Ruby community--one of the things we’ve done very well is consolidate a lot of the code and the knowledge is there in places like GitHub and at some of our conferences. One of the things that I have not seen from the Java community is the ability to really identify the quote unquote “cool libraries” or the interesting things that you can use. Nick Sieger gave a wonderful talk at JRubyConf on just some ideas for taking Ruby combining it with Java--taking JRuby combining with Java and looking at some interesting things to do from things like reimplementing a document database and different ideas. If you’re in the Java realm, jump in and help us. Let us know what’s there and some of the advantages we can get out of it. And then, if you have any kind of command of the English language, which sometimes geeks struggle with, help us with documentation and I don’t mean, sitting through and documenting code but I mean, write a blog post on your experiences on learning it. Try it from the beginning from installation through to your first program and write about how that works. These are things that as we move forward, sometimes we forget to look at. If you’re on a Windows platform, please God, help us use it. As a community we’re doing a huge Ruby in Windows push, and if you’re anywhere near that kind of platform, help us out. A lot of us are Macs because we like it, we--yes we’ll probably jive back and forth like eMacs and VI are always going to do the same thing but realistically we want you helping us, we want you out there. Come in in those forums and give a talk about it at RubyConf or at a User Group. If you’re looking for ideas, reach out to myself on Twitter, reach out to Charlie, reach out to Tom or Nick, jump on the IRC Channel and just start talking to us. There’s 100 ways you can help.

Melissa: Great. I noticed that you guys at EdgeCase are actually sponsoring LARubyConf again this year.

Joe: Yea.

Melissa: I know there’s a bunch of folks here at Engine Yard who are interested in just I guess, advice for developing their careers and visibility in the community by speaking at conferences and user groups and events like that. Do you have any advice for folks like that who are a little bit newer to that area of I guess, getting up in front of an audience and talking about things that they’re working on.

Joe: Indeed. You know, I do it because--well the fact that I’m an extrovert, I get my energy from people. And the fact that there’s enough of a Narcissistic streak that I love getting up in front of people and having them watch me. First of all, realize that that doesn’t have to be the place you go. I know a lot of people I’ve seen get up at user groups who are absolutely terrified and they never quite get over it. Don’t think that speaking--public speaking--is the epitome or top of the game when it comes to development. There are lots of things that you can do in the IT community. However, if you do want to, user groups are the perfect place to start and a wonderful area to go. Find something you’re passionate about. There’s gotta be a reason you’re programming; if there’s not, this is probably not the place for you. You’re finding that its a struggle? Pick up something like The Passion Programmer by Chad Fowler, read it, rediscover your passion--its there, trust me. Then start playing with something. I don’t care if its phone development, I don’t care if its GUI development, playing a game, teaching somebody how to program, whatever it may be, find something that you really like and share it with your local user group. Go up, find the leader, ask him how to speak. I don’t know of a user group that’s turn you down at some point. If you’ve done that and you’re still a little rusty, find local user groups that are within driving distance, find other ones and start trying to get out there and once that’s there, submit an abstract. Watch the conferences you like, they’ll publish when the abstract--when the call for papers is, submit something, put it out there, see if it happens. I wouldn’t make the conference the first place that I would necessarily go and talk. Its a little bit more intimidating, its a lot more critical--people are paying to see you but user groups are a fantastic place to start and a place that a lot of people are coming to see passion and make sure you’re excited about it. Don’t pick something because you want to speak, pick something because you’re really excited about it.

Melissa: Yea. Awesome. That’s great advice. Let’s see. Could you talk a little bit more about your experience founding EdgeCase. I know I remember you saying that, when you founded EdgeCase you, I guess, built the company that you always wanted to work at. Can you tell us a little bit more about that?

Joe: Yea I have--I have one over-riding principle for having started EdgeCase and I still make sure I question myself all the time which is if I got up tomorrow morning and was unemployed, and I looked around, what company would I want to work for? Would this be the top company I would want to work for? And I have to say, its always near the top and that’s what I strive to do. I have amazing people around me, people that are incredibly brilliant and run circles around me at what they do. They’re people that are extremely passionate about software. We’re not doing Agile because we think its the next buzz word, we’re not using Rails because we think we’re going to make a lot of money off of it, we’re using it because we think its the best tool out there. We’re doing development in this process because we think its the only way to be successful. We got into software development because of a passion and we demonstrate that with everybody around us. I also have a talk coming up at--if you’re going to be in Europe, its Sottish Ruby Conference, formally Scotland on Rails, called “Tales of an Accidental Business Owner.” I basically--we basically got the company together, my business partner Ken Barker and I, 4 and a half years ago, got together and decided there was a lot of demand in the Ruby world. We were both trying to push our companies internally to do it. I was working for a company that I absolutely love and to this day still have a lot of respect for but I was being told to get on a plane every Monday morning and get off every Thursday evening. It was just a lifestyle that I couldn’t sustain and so we looked around and thought, “let’s create something.” Started off as a co-op, we got to 4 people and realized you couldn’t--we couldn’t decide where to buy toilet paper, communist business models are not necessarily around for a reason. So we started taking it a lot more seriously and we’ve gone through some serious--we went through a lot of changes--some great, some unfortunate, some fantastic, all up and down. But we approached business like we did for software development and we iterated on it. The faster we failed the faster we were able to recover the better. And we went about it that way and we’ve got a fantastic company that really passionate about what we do, we love it, I can’t say that enough. And we’ve got some amazing clients. Clients that--its interesting because we enjoyed going to see them. LA is a perfect example. We’ve been working with our friends down in AT&T Interactive for going on our second year I believe at this point and we enjoy going to see them every time we do. All of our clients are this way. We’ve got a testing application we just helped launch in Ohio called Genova. We’ve got really good close contacts there that we enjoy working with them. One of our philosophies with clients and customers is we want to work with you, not for you and it works out very well that way. They respect us, we respect them for what they’re doing and its just a great experience to be doing it. And so we’re really finding why it is we’re doing what we do and EdgeCase has been born out of that. And we’ve taken it overseas to Scotland, we’ve got Paul Wilson on the ground out there to help run the Sottish Ruby Conf and been doing some great work with some amazing people. There’s some awesome talent, there’s a lot of excitement, a lot of belief in Agile development and starting to gain on the Ruby on Rails adoption over there so its been exciting and we’re really looking forward to this year and the years to come.

Melissa: Awesome. I just have a couple more questions. So, let’s see. What is the Git Immersion project?

Joe: So actually--that was a fantastic launch this weekend. We’re at, I think, 76,000 hits over 3 or 4 days. We--so 3 years ago, we went to do an intro to Ruby class and it starts back with a site called RubyKoans.com. Jim Weirich and myself were asked to do an intro to Ruby and I had always wanted to create a class that was designed in a test-first fashion to learn Ruby. This was based off a--inspired by a person I consider a friend, Mike Clark from the--who leads the Pragmatic Studios who had but a blog entry back circa March of 2005 about learning Ruby through unit testing. It’s baked in the language, its really easy and he--instead of putting a bunch of stuff to system out, had actually written a set of unit tests that walked through different libraries and showed how to use different things. And so we sat down and figured out how to do this with ruby koans and put on a class about this. Eventually our designer who is just phenomenal, Jerry Newmy, put out some great designs for it, absolutely beautiful and we decided to launch a website and just kind of put it out there and see what people thought and it just had rave reviews and it continues to get a lot of hits. And people absolutely love this idea of some people open source code we’re now open sourcing our learning. We think that there’s a lot of value to show and to provide to the community for teaching them the things that are there and enabling them to learn themselves. So we sat back and thought, “this was a lot of great success, what else can we do?” and Jim Weirich put on a class for Git called “Git Immersion” where he had a bunch of labs that he put together and so took us some time to get the design down but again, Jerry Newmy just blew it out of the water and we released git immersion this past week at CodeMash. Again, same idea--its a serious of labs that allow you to learn Git on your own in your own time at your own speed. Starting off very simple and building up from there. And, everybody seems to be loving it, they work it really well so if you’re looking at learning Ruby and really haven’t done it yet, ruby koan’s there and if you haven’t tried Git yet you absolutely have to and gitimmersion.com is definitely going to help lead you there.

Melissa: Can you tell us a little bit about how CodeMash went last week in Ohio?

Joe: Yea. So beautiful Sandusky Ohio in the middle of January for some reason we decided--not we--a couple community members from the Midwest decided they should really do a conference in up north of the Snow Belt. And there’s this place called the Calahari Resort. I believe its labeled as the worlds largest indoor water park, you never know if the marketing’s believable or not but its absolutely huge. Its this huge conference center and they put on a conference and this was the 5th year running now with it--every year its been growing. And its called CodeMash and the idea--or the name is not just randomly picked out. It literally was this mashing together of communities. First year or two, there was a lot of interest from other communities and its an idea of--they say mash, not bash so you’re getting together and talking about different languages instea of bashing each other. .NET communities sitting there with the Ruby community sitting there with the Python community sitting there with the PHP community. Ok we throw some bars at the PHP community periodically but, we invite everyone to come together and its steadily grown. This year, we took over--they took over the entire convention center, 700 people strong and when they released tickets they sold out in 3 days over a weekend. They released them I believe at a 7pm on a Friday, they were sold out by Monday morning.

Melissa: That’s awesome.

Joe: Absolutely phenomenal place. It also helps with work-life balance because its an indoor water park--my kids look forward to it as much, if not more than Christmas every year. So you get to bring your family to a resort and go to a conference. It is one of the biggest parties I go to every year. A lot of fun, all self-contained. Takes a little bit to get there through the snow, it takes a little bit to leave through the snow but once you’re there you pretty much move in and stay there for the weekend. Its a great time.

Melissa: Very cool. And what was the representation like at CodeMash in terms of--like what different communities folks came from.

Joe: I can’t think of a community that wasn’t there--major community. There was a lot of Python development going on. There was a lot of Java development, a lot of .NET representation, Microsoft has a very large presence there--I’d say half or more in the .NET space. Ruby did have some presence although, if you’re listening from the Ruby community, put CodeMash.org on you calender and keep and eye out. We could use some more. We really had all these technologies together in on conference. The interesting thing about it thought, unlike most multi language conferences I’ve been to, it wasn’t the .NET people going to the .NET developers workshops, it wasn’t the Java developers just going to Java--there’s a lot of cross pollination that goes on and its absolutely fantastic.

Melissa: That’s really cool.

Joe: They do a bang up job of speakers, we had Chad Fowler and Scot Chacon this year as well as others speaking and it--they’re always inspiring. We’ve had VenCat, SuperMedium, speaking in years past. We’ve had Andy Hunt come last year. We had Neil Ford in years past--people still talk about his keynote. Just some really, really good quality content.

Melissa: Very cool. Ok, so one last question for you--this should be an easy one since I’ve experienced this firsthand. The rumor on the street is that you’re a whiskey connoisseur.....Can you tell us a little bit about that and what whiskey geeks and the whiskey tour that you mentioned early are?

Joe: Yea so there’s a fine line between connoisseur and I have a problem. I’m still not sure where that line is though. Yea so, over a less than lucid conversation between Randall Thomas and myself in Scotland, at the Scottish Ruby Society we met a bartender there that was, who was--we found out--way more than a bartender. We found somebody who was as passionate for whiskey and spirits as we were for software, as if that was possible. And started talking to him and realizing that there’s an interesting similarity in Scotch whiskeys and fine software. You know, this is a spirit that comes down through generations of knowledge, this is a series of craftsman who really care about what they do and they come out with a product that’s absolutely amazing and wonderful to experience. Software is very much the same way when done right. Its something you have to share, its something you want to tell everyone about, its something that you want to share with people. So we decided there was no better way than to get to drink more of it than to actually bring Craig over and so we conspired and we got together with JRubyConf and decided to put on the whiskey--the first version of the whiskey tour. And so we went to JRubyConf and went on to Mountain.rb and we brought the whiskey tour with us. Craig came over from Scotland. He’s--there’s just an unbelievable amount of whiskey knowledge in that man’s head and put on what are some of the best tastings I’ve been to. At JRubyConf, we had almost the entire conference show up, of 150 people to the whiskey tasting--unbelievable amount of people coming from--that didn’t you know, stay back in their hotel room. Put on a show, everyone enjoyed it. He gave them a wonderful introduction to what it was, a lot of ranges of whiskey to try, a lot of different things, which has lead to a group called the Whiskey Geeks who have gotten together and started touring distilleries, getting together and that’s just it--we’re geeked about whiskey. Like the details, like the outcomes, love sharing it with company and people so look out through this year--the whiskey tour will be back and keep an eye on whiskeygeeks.com because we are planning a website for people who want to know more, want to learn more, want to teach other people and just can’t get enough of Craig’s accent.

Melissa: Awesome. Ok, well thank you so much Joe for your time.