Ara Howard CTO and Founder of Dojo4 in Boulder CO discusses his journey into scientific research, Ruby on Rails, regular programming vs web programming, and the evolution of technology.
Ara founded Dojo4 after his time in scientific research realizing that web programming was a fascinating problem worth pursuing.
- Ara’s start in computer programming 00:19
- Research(NOAH, Supercomputer, Ruby on Rails) 1:45
- “why would you want to be a web programmer” 5:00
- “you can estimate the quality of a developer by the size of their bin directory” 06:03
- “I’ve never written CSS with Pixels in my life” 11:39
- “Only two types of developers…”15:41
- Daily Practices 19:58
You can find more information about Ara Howard and Dojo4 by visiting their blog, and following them on Facebook and Twitter.
Brent: I’m Brent Weaver and you’re watching uGurus. The must-watch web series to become a more profitable and in-demand web professional. Today, I’m in Boulder, Colorado hanging out at Dojo4 with Ara Howard, their CTO. Welcome to the program.
Ara: Glad to be here.
Brent: So Ara, how did you get started in web?
Ara: Wow. So, I went into engineering school, computer science school after a really bad bike accident left me wanting something I could do if I was crippled. And so I went to school for a second time. I was living in Boulder and I went to the engineering school here, CS department which is a really great program, had a really great time. Was able to partner with some really motivated students. And we were, things were looking great for us. It was right around the time like at the first dot com boom. And the crash happened about, oh I would say about three months before graduation. We had the friends who were juniors dropping out of school to go take the high paying job. But I was living here and I had no reason to rush so I stayed. While I was a student I ended up being a research associate at Noah. Working with weather modeling and big Geo-data. And I had thought that I was going to move on immediately to industry because the pay wasn’t as good and I wanted a different challenge. So then the bottom fell out and there were no jobs. The crash happened. Right when we graduated a lot of my friends were really scrambling for work. And so I was really fortunate to be able to go into research. I say really fortunate because for the next five to seven years I was able to work with technology that you just don’t get an opportunity to touch as a web professional. So I helped port the weather model onto… And helped build what, at the time, was the fastest supercomputer on Earth. The Jet supercomputer. Of course that only ever lasted about three weeks until somebody in Japan supersedes it. But at the time it was amazing technology to work with. So we built massive 100 node compute clusters. And then while I was there I really started to work into user facing code. There’s a whole parallel world to the consumer web in government and the sciences. And everybody talks about API’s and service layers. They were doing that 20 years ago. And there’s all these custom protocols for moving data around the world and interacting that scientists have been using for a very long time. And so I had a talent for that. And I was doing a lot of Pearl, CGI programming, C, CGI programming. And one day out of like incredible frustration at installing Lib Dub Dub Dub[sp] from CPAN and trying to get that to compile, I decided there was language I was reading about, Ruby. It was about one, four. And I was like f[explicit]k it I’ll try to do it in that language. And so I downloaded it, compiled it, HTTP was built into the language. This was kind of a new thing for a language to come with really good HTTP tools out of the box at the time. And so in a matter of days I started doing all of my programming in Ruby. It was a very simple transition for me because I had done lots of OO programming, lots of functional programming, lots of scripting languages. So I just started doing everything in it. So stayed there for a few years. But still really wasn’t touching the internet. And gradually started consulting for companies around here. Mostly in the scientific domain. So started working for the very early start-ups in Boulder. Collective Intellect and some others who had found me through Use Net. I don’t know if anyone remembers what that is.
Brent: I still use it for various downloading things, but whatever.
Ara: And so I started consulting with what we would now called a start up. They weren’t called that at the time. I don’t even know what these crazy companies were that were funded by… Who are these foundry guys? What is venture capital? I didn’t even know. But of course, they were doing… And I was initially contracted to do it like work in the heavy lifting in the back end. But of course they were working on consumer facing products and so it was touching the internet. And then Rails[sp] happened. And I remember at the time a good friend of mine that I went to school with, David Clementine jumped on the Rails bandwagon. Rails won. Another good friend of mine that I went to school with. And I remember telling them, he likes to tease me about this, I was like why would you want to be a web programmer? That is so lame compared to doing like real programming. It’s like just kiddie stuff. But I was wrong. And it turns out that of course it’s a fascinating problem, it’s super challenging. And I just ended up doing it more and more because that’s what people were doing. To this day Dojo4 still focuses on, our projects touch the internet, but they’re not just the internet. For the most part. So we do ten to like work on projects that, sure there’s an API. And there’s a website, and there’s a store. And it’s HTTP and people think it’s a website, HTTP only. Ignoring the fact that we may have built a custom video rendering farm with 2,000 EC2 nodes to power the whole thing. Those are the kinds of projects that we still like to specialize in. So, some heavy back end stuff.
Brent: Very cool. So in terms of you in your space. I mean you have to kind of be on the forefront of technology for what you guys are doing. Like what kind of projects do you take? What kind of projects do you not take? How do you keep tabs on all of the fast changing technology? And then making the decision of what Dojo4 works on, and what they don’t?
Brent: In 36 hours?
Ara: Maybe we had… I guess it was Friday and we had to deliver on Monday morning, so it was a little longer than that. But yeah, three days. Some reason 36 hours came to mind. Anyways. Maybe 36 hours of work might have been what it was, in three days. And anyways they told us, it’s on Chrome. Because we told them we need to know the platform with this kind of time. We are not testing in any other browser. We need to know the version, the OS, everything. Like okay, definitely it’s a Mac laptop, definitely Chrome. And we hung up the phone and I looked at Steve, we worked on this together. And I was like yeah bull[explicit]. There’s no way that we can rely on that. So we just made it responsive and made it work in any web browser basically. It was funny because on Monday morning they called us in a panic. Oh my gosh, we have to give the presentation on an iPad. This terrible, the whole thing! And we’re like it’s no big deal, it’s fine. And they’re like really? Yeah. And that hasn’t changed. It actually perplexes me that people think that there’s anything new going on in the internet right now, it’s all old.
Brent: It sounds like you can get out of the weave a little a little bit and see that pattern over your tenure. And that’s probably very important to not get so caught up in like every blog post coming out every day with some new tweak or something. Making it exciting or some launch that’s like this is the best thing in the world. And then having to get perspective on that.
Ara: Yeah. Perspective, although I think the implication there is that somehow it’s related to experience or age. And I’ve noticed in my time working with other developers that there’s really only two kinds of developers. I mean there’s young guys, they come out of school. I was a young guy who came out of school, work with other guys who came out of school that studied hard. That are really computer scientists. And if you understand what a touring machine is, what limits on memory. What’s the difference between a sequential scan and seeking all over the disc while you’re doing data processing? Like what is swap? These things are… What is the cap theorem? You know, like it’s actually important if you’re an internet developer. And a lot of people were asleep in class or just fundamentally don’t understand the law of computing. And I don’t think that really has anything to do with tenure or experience. I think you either get it or you don’t. And I think about 1% of developers get it. And if you don’t, combine with the proliferation of information out there. That is also a change, right? Getub[sp] and other blogs. I mean there’s usually stack overflow, Twitter… Gah make it stop already.
Brent: You could get pretty far knowing very little.
Ara: I don’t think so. I really don’t. I mean it think it appears that way. But if you look at the… If you chart the trajectory of developers and companies and software projects. A large majority of them is probably the 80-20 rule like most things. A large majority of them they grow and grow and grow and they hit a glass ceiling and they collapse. Software does this. Developers come into companies, they build things, they build things, they build things. And in about three years, teams usually get to a spot if there’s not a lot of churn where suddenly they’re not developing new things they’re just maintaining the crap that they wrote. They start to hate it, the company starts to experience churn, it goes on the decline. I see that everywhere. I mean you see it in start ups, you see it in fortune 5,000 companies. You see it in developers in their development career. They start getting that three year itch. Like what language should I learn now? Like that’s going to change anything. Like they’re touring complete, enough already. You’re typing system. Like none of this matters. It’s a touring machine. Live with it, they all suck a lot. To solve the problems that we’re trying to do, to solve the problems that we’re trying to solve, our tooling is still totally inadequate. It’s just terrible as a field. The tools that we have to use to create the solutions we need to create. They’re pathetic. So yeah. Anyways, I don’t think that that’s true. And I think there’s going to be a backlash in the field now too. I mean I think right now in the development world… In the start up world with developers with people who are investing money in start ups, there’s a sense of inflation of ego, of value, of worth. Of the difficulty or importance of what we’re doing. And I think that creates a market where people that don’t really know what they’re doing… And they may be making six figures. The company may be generating revenue. But I don’t think, if we look at the industry as a whole, in ten years like I don’t think we’ll be able to asset that you’ll be able to learn how to program in seven weeks and build companies that provide lasting value and enduring revenue for the economy. I don’t think that’s true.
Brent: For sure. What kind of… I mean as a hardcore developer, what kind of practices have you kept over time? Whether it’s something you do daily or weekly or monthly that’s really made an impact on your profession?
Ara: Yeah. Lots. I think about this a lot. I’m not a productivity nerd. I mean I think a lot of… There’s sort of two categories of practices that I think about. And the biggest set of practices are mental, I think. Or emotional. Or they’re internal. They’re internal practices. So things like I just actually sent a letter to my group this morning, I was doing a code review. And like understanding the problem. It’s a huge thing that somehow… And if you get two engineers in a room and you say Vim and Emax or Node and Rails or whatever. And like everybody will be frothing at the mouth talking about the minutia. About the tooling they’re using and about a bunch of shit that doesn’t matter. But if you start asking meaningful questions about the domain you’re in, the problem that you’re solving, nobody has anything to say. Very few people do. There are a few people, and they’re the engineers that go build their own start ups. And they understood that there was a problem, and they built a solution to it. And they have billions of users. I mean that’s why that happens. But it’s rare that somebody actually takes the time to understand problems. And I, again, this is something that… It depends on your engineering school. You certainly don’t have to go to engineering school to learn this, but it’s something that people innately have when they come into programming. Or learning anything new. Like if they’re problem solvers, which is what we are, then the very first thing you need to do to solve a problem is to understand it completely. And that’s just overlooked. I mean ten times a day by every developer and every shop I’ve ever been in. Is this the actual problem that I’m trying to solve? So that’s one. Not taking things too seriously. I mean I have a great disdain for people arguing around whiteboards. I’m just categorically uninterested in doing that ever again in my life. Like I like to avoid those kinds of people, I like to avoid those kinds of clients. So just keeping perspective on what we’re doing. It’s like sometimes you’re working with software where it’s real time software, controls a satellite. It’s like it costs $250,000 for a little processor that they seal in plastic in there, like this is serious business. But most of the stuff we do is totally not serious. It’s not worth getting upset about. It’s just not that important. And so trying to keep a light heart, understanding what we’re doing, trying to keep a light heart, I think that’s a big one. In terms of like mechanical processes, I guess overall I have a minimalist philosophy. So like my phone is, I’m right where a mobile shop. And these are the apps that I use.
Brent: You have a very un-cluttered app screen.
Brent: Very cool. Well Ara, this has been incredibly fascinating. Definitely hope you can join us again some time in the future. Give us maybe an update or maybe we’ll have you on a panel. I think you’ve got some good strong opinions which we appreciate.
Ara: Great. Yeah I really enjoyed it.
Brent: Very cool. Well stay tuned for more great content from uGurus.com.