This will be a fun interview. My guest this time is my boss. He not only is an employee of Surgeworks but an active Ruby contributor and participates mainly in the Utah Rails User Groups (URUG). Many of his values and ideas resemble my own.
Carl Youngblood has worked professionally as a software engineer for over ten years, and is currently the Rails Practice Manager for Surgeworks, a software engineering consulting firm (where I happen to be as well :-). In addition to his work at Surgeworks, Carl is an owner of Confreaks, a company that records conferences, seminars and workshops, and is a director of the Mormon Transhumanist Association. He received a bachelors degree in Portuguese from Brigham Young University and a masters degree in Computer Science from the University of Washington.
AkitaOnRails: So, let’s get started. This is very strange to interview someone you already know. But let me try. Before talking about Ruby. The first thing most of my readers get intrigued is about your Portuguese skills. Can you tell them what led you to it?
Carl Youngblood: Yes. My first introduction to Portuguese was as a Mormon missionary in Brazil. I arrived in Sao Paulo having only received a two-month crash course in Portuguese. When I got there, it seemed like I had to learn everything over again – this wasn’t the language they taught me! :-) But after spending two years in Brazil in a context in which it was imperative to converse with other people, I learned Portuguese well. However, I would say that my skills were primarily in conversational Portuguese. Later on I discovered Portuguese literature and developed my written skills further.
Upon returning to the States, I decided to do a double-major in Portuguese and Computer Science. I decided on Portuguese because I enjoyed the language so much, and felt like I had a real talent for it. I chose CS because I have been in love with computers ever since I was 12 and got my first Commodore 64. Or maybe it was 10 years old. I can’t exactly remember.
AkitaOnRails: Where did you stay during these 2 years here in Brazil? What were your responsibilities here?
AkitaOnRails: But did you do anything computer related here during this period? People here would be interested to know what do you think of our country, being an outsider that really spent a serious amount of time around us. What’re your personal impressions about the country, the people, the culture, our local habits? Maybe a few words about the good and the bad :-)
Carl Youngblood: My first 4 months were spent mostly meeting people in the streets and in their homes and trying to teach them about our church’s doctrines. Just to clarify, Mormon is a nick-name given to my church because they believe in a book of scripture called The Book of Mormon, along with the Bible. But the full name of the church is The Church of Jesus Christ of Latter-day Saints. Anyway, I spent the first four months teaching people and helping to conduct church meetings, and walking A LOT – we walked about 15 miles a day, and I frequently remember waking up in the middle of the night with pains in my legs :-) After the first four months, I was called to work in the mission office in Campinas as Historiador da MissÃ£o – a secretary of sorts. Here my computer skills came into play.
After spending four months in Campinas as mission historian, I was called to help open up a new mission in Marilia, and spent another four months working in that mission office on the computer.
I didn’t really develop any amazing software for the mission, although I did help design an Access database that promptly fell into disuse after my departure :-)
Overall I really enjoyed my time in Brazil. I discovered how much I enjoyed learning another language, and this newfound fascination led me to study this language later at the university level. The Brazilian people I met were for the most part very friendly. It was not uncommon to be invited into peoples’ homes and offered food before we even knew them, and they were usually willing to give you the shirt off their backs. I also really like Brazilian music, especially Brazilian Popular Music (MPB). Tom Jobim is my hero, along with other legends like JoÃ£o Gilberto, Luiz BonfÃ¡, VinÃcius de Moraes, and other more modern artists like Caetano Veloso, Gilberto Gil and Djavan. It was wonderful to discover a whole world of music and literature that opened up to me when I learned Portuguese. The food was good too, although I missed a few items from home, like corn chips and peanut butter, strange as it sounds.
On the other hand, I frequently noticed a profound lack of ambition. Most Brazilians we met were content to have a roof over their heads, food in the fridge and a TV. Of course, my observations are bound to be skewed a little by the fact that I mostly interacted with the poorer class of people who did not live in closed highrise apartment complexes, which were difficult for us to make house calls in, unless we had a prior appointment. One of Brazil’s most difficult problems is the large disparity between rich and poor and the consequently small middle-class. When Brazil abolished slavery (one of the last countries to do so), little or no effort was made to assist emancipated slaves in transitioning towards gainful employment in the new economic system, which led to the development of many autonomous shanty towns that were nearly completely isolated from the more “respectable” centers of commerce. This isolation continues today. It is not uncommon to see a wealthy suburb right next to a sprawling slum, as if each were ignoring the existence of the other. Overall though, Brazil is really making headway and the standard of living is improving dramatically.
One event that I distinctly remember was the advent of public internet access and the WWW in 1995 while I was in Maringa, I believe. I had often commented to my brother back in the days of text-based bulletin-board systems that it would be cool to create a markup language that allowed computers to render graphics over a modem connection. When I saw the WWW in 1995, I said, “Somebody stole my idea!” :-)
AkitaOnRails: Haha, so you were involved in online activities since before the advent of the Web per se? And, you went to college after this 2 year period here?
Carl Youngblood: I was involved in modem-based BBSes in our local town of Provo, UT since about 1990 or so. My brother ran a BBS called London after Midnight. He was sort of into the goth/cyberpunk scene (or at least wanted to be :-) ). We mostly used them to pirate games, before I grew up and realized that other people were trying to earn a living off this stuff.
I had already done one year of college as a music major (Clarinet performance) before I went on a mission. After the mission I returned to college and changed majors.
By the way, we were also connected to a worldwide network called Fidonet, where we participated in newsgroups and had delayed discussions. Every night our computer dialed up a system in Nevada to download the new messages.
AkitaOnRails: Oh, that’s cool. Going back to this subject, I was into BBSes as well because of my neighbor. He hosted a hacking BBS called Medusa and we played a lot brute-forcing against passwd files, using Blue boxes and so on. (Damn, we’re confessing a lot of crimes here, hope we’re not going to litigation for that ;-)) Getting back on track. So were you also caught in the period of the Internet Bubble? Doing PHP websites and so on?
Carl Youngblood: Haha, good point. Those BBS days were fun. We felt like we were on the cutting edge. Yes, I was involved in the Internet bubble. Omniture (called MyComputer.com at the time) was in the middle of an acquisition by NetObjects. However, before the acquisition took place NetObjects’ share price had plummeted to the point where they were valued at half of the acquisition cost, which basically meant it wasn’t going to happen. MyComputer.com laid off a bunch of people, but I left a couple months before that happened. My boss, speaking after the fact, told me that I would have been able to keep my job (I was one of the first employees), but I saw signs of trouble and had another opportunity, so I took a job at Legato Systems developing mirroring drivers in Windows of all things :-)
AkitaOnRails: Same thing for me here in Brazil. I was involved with a dotcom company that went bankrupt but I was able to get out a few months earlier. Anyway, so you went straight to low-level programming. How many programming skills do you have? From low-level assembler all the way to Ruby not to mention Pascal, VB, PHP, etc?
Carl Youngblood: Legato eventually closed down their office in Orem, Utah, at which point I went back to school to get a masters degree. I began thinking I was going to do a masters in Portuguese and eventually work as a professor at a University after getting my PhD. However, I found myself constantly working on software projects, even while I was teaching Portuguese classes and doing my graduate studies. I eventually decided I should face the obvious and continue my passion of software development. So I switched over to the Computer Science department and began working towards a masters degree in CS. All this was at Brigham Young University in Provo, Utah.
I first learned Pascal and C++ in high school Computer Science classes. My first professional experience was as a C++ programmer developing Windows applications using MFC. I then got a job doing PHP/MySQL development for Omniture. After that I was doing C-based windows drivers but also doing Ruby, Perl and PHP work on the side. Drivers are really a totally different beast because you don’t even have the regular ANSI C libraries available to you. So the C syntax is the same but that’s about it. I later got a job at Boeing doing more C++ development on Linux platforms, all the while nurturing my Ruby/Rails skills with side projects. I also learned functional programming with
Scheme, as well as a few other languages like OCaml, Prolog and ZPL during my masters degree. I wouldn’t call myself anything but a beginner in most of those other languages, but they definitely opened up my mind to new development paradigms.
AkitaOnRails: You’ve pretty much followed the paths described by Pragmatic Programmers as David Thomas and Chad Fowler: learn new languages, specially ones with very different paradigms. Did you already know their work around these recommendations? Or was it just a natural curiosity thing that led you to learn so many languages?
Carl Youngblood: Well, the CS programs I’ve studied in (BYU and the University of Washington) did a good job of giving us at least some exposure to a wide range of concepts and languages. I really am grateful for my education because it introduced me to ideas and concepts that I probably would not otherwise have studied. I had also read the Pragmatic Programmer and tried to follow the advice of always learning new things and exposing myself to new languages. I am also somewhat of an information junkie. I am nearly addicted to my RSS feeds, and I feel an incredible anxiety if I start to get behind on my reading—almost as if I’m being left behind while the world reinvents itself. The truth is that I usually don’t miss anything extremely revolutionary by being away from the computer for a few days, but sometimes it feels like it.
Or rather, I worry that it might happen. :-) It can be a problem. It’s hard to strike a balance, especially with a wife and kids to pay attention to.
AkitaOnRails: You’re right. That’s another thing that I always shout at my blog posts: being well informed, all the time. There’s no excuse with tools like RSS aggregators nowadays. And if an American went all the way to learn Portuguese and still being a technology specialist like yourself, there’s even less excuse for Brazilians to avoid improving their English and read more.
Carl Youngblood: I’m not sure if you’ve heard the theory of maximizers vs. satisficers. I read about it on somebody’s blog, taken from a book (can’t remember which). Sometimes I … worry so much that there must be a more elegant solution out there that I can’t ever decide when it’s good enough and get down to the actual business of coding.
AkitaOnRails: hm, yes I believe I read something about this.
Carl Youngblood: That is a problem in this era of rapid innovation. It’s always a moving target, and sometimes you just have to say something is good enough for now and move on.
Joel Spolsky talks about this and compares it to the military tactic of laying cover fire and firing while advancing. Rarely is a new technology or buzzword all it promises, but it keeps the competition struggling to keep up.
In general, it seems like society is advancing toward ever-increasing levels of abstraction. Rails is a good example of this. Its whole mentality is to predict as much as possible the things that the developer will be wanting to do all the time and make convenient abstractions for them. But I’m sure this is only the beginning. We can expect future frameworks to do more and more of the heavy lifting for us, which will in turn enable us to accomplish more and more with less and less effort.
AkitaOnRails: Yes, this is a good very point. Because people tend to ‘fall in love’ with one particular super-new technology and forget about all the rest. This leads to pure obsession. And after a while, this ‘new trend’ is forgotten altogether and you just wasted your time.
AkitaOnRails: Hey, sorry for the pun, but coming from someone with such a formal dogmatic religious formation like yourself, this is a very refreshing thing to listen: not being too dogmatic. In the end its all a matter of common sense, but even common sense has to be trained. Hence the need to be always informed, constantly studying and keeping an open mind toward new stuff while not closing the eyes to all the rest.
Carl Youngblood: I believe that one’s belief structure should never be so rigid as to not allow for modification. I should always be willing to re-examine my beliefs in light of new evidence and be willing to reject or modify beliefs that seem wrong or misinformed upon closer scrutiny.
In defense of my Mormon upbringing, although it is a fairly conservative religion, it does place a high value on education, which inevitably leads to enlightenment and often to a modification of one’s prior beliefs. Fortunately my fellow parishioners still welcome me, though some of my beliefs may be a bit unorthodox and are different from those I had when I was younger.
AkitaOnRails: We do need more of this way of thinking here in Brazil: pragmatics. Anyhow, coming back again, you were very busy for a long time. Learning Portuguese, finishing your major in CS, working in Internet companies, traditional companies. And all the time Ruby was sneaking somewhere, waiting. When did you finally realized you wanted to do more Ruby? Was it during some project at your day-job, or something you decided by yourself?
Carl Youngblood: I think the real awakening was the meteoric rise of rails and 37signals evangelization of the whole getting real mentality. I attended the Building of Basecamp seminar in Seattle and went to the first RailsConf. I was really inspired by Nathaniel Talbott’s speech about homesteading.
One thing that really struck me about my experience at RailsConf was that I saw colleagues there who started using Ruby at the same time I did and whose names appeared on the ruby-talk mailing list alongside mine. The main difference between them and me was that they decided to get actively involved, to develop open source projects of their own, and to build a reputation for themselves in the community, while I dabbled in Ruby as a mere hobby. Fast forward four or five years and they were running their own companies and really making a career for themselves in Ruby. Railsconf was a wake up call for me in which I realized that I needed to be more involved in the Ruby community.
So I decided to release some prior work of mine as a gem and give a presentation at our local MountainWest Ruby conference. I released the SBN (Simple Bayesian Networks) gem. Preparing my presentation and code was stressful but worth it.
Some colleagues and I are also working on a conference recording business called Confreaks. We are hoping to do a better job of recording and disseminated technical conferences for posterity’s sake. It’s a shame that all these great conferences are going on and nobody is recording them.
Anyway, my increased involvement in the community has really helped to boost my career and allowed me to code in Ruby as a day job.
AkitaOnRails: But where were you at the time Rails started to call attention to itself? Did your job allowed you to have enough time to dedicate to Ruby or you switched jobs by then? I mean, were you not satisfied by the current state of your career and the technologies you were using? What was your ‘inflection point’? Just seeing RailsConf and the news around Rails?
Carl Youngblood: I was working for Boeing when Rails first came out. It was a comfortable low-pressure job on a DoD project with a long drawn-out timeline that allowed me time for study. I was already in the habit of staying current on technologies (Ruby in particular) and reading a wide range of blogs regularly. I would have accepted a Ruby position at any time but they were still fairly hard to come by. At my request, my boss paid for me to go to RailsConf, so I was already really interested. I had also been working on a freelance project that I had written earlier in PHP, and offered to rebuild it in Rails at a heavily discounted rate just to gain experience with Rails. So I guess you could say that I have been really interested in all things Ruby ever since 2000 but only recently has the job market begun supporting full-time Ruby positions.
AkitaOnRails: And your first endeavor towards Ruby was your SBN open source project and the Mountain West keynote? Can you describe what it was like? At least for me, when I want to ‘say’ something, I get very excited and particularly anxious to have it written (in my case, my blog posts). I can imagine that you hardly slept before the conference. :-)
Carl Youngblood: Yes, I was up many late nights preparing for my presentation. In fact, most of my late nights were spent getting the code ready for human consumption. Knowing that the world at large is going to use your code makes you want to spruce it up a little more, write more unit tests, etc. So I spent the month or two before the conference working on the code and only had about a week to prepare my actual slides. My presentation material was fairly technical, so I ended up writing down my presentation in the slide notes, just to make sure that I didn’t explain something wrong during the pressure of the actual presentation. Had I had more time, I would have liked to have memorized the key points so that the presentation could be a little more natural, but overall I was pleased with the way things turned out. I was also working on the Confreaks project to record the conference, so I was busy on two fronts, not to mention my day job.
AkitaOnRails: And by that time were you still at Boeing? Or were you already at Surgeworks? How did you get into Surgeworks to work on Rails full-time?
Carl Youngblood: Around the time I was finishing my CS Masters degree at the University of Washington while working for Boeing, I received an offer from a friend of mine to return to Utah and work for him as CTO of a Construction Lending Company called Construction Capital Source. One of my main responsibilities would be to develop a construction lending system in my technology of choice, which just so happened to be Rails. I took the bait and had a great time there for about a year and a half. But the company went through some difficulties with the recent crash of the sub-prime lending market. Although their customers are only A-paper borrowers with excellent credit ratings, the sub-prime market has cast a pall on the entire industry, and our investors got scared. I ended up leaving my position and accepting a job at Surgeworks as their “Rails Practice Manager,” which means I am supervise all the company’s Rails projects, hopefully while still getting to spend at least half my time coding, although at the moment it hasn’t exactly worked out that way. We have been getting a lot more work coming in since I started, so a lot of my time has been spent writing proposals and project estimates so far, but I’m starting to settle into a groove.
AkitaOnRails: But how did you know about Surgeworks? I remember that you mentioned you already knew Dane Falkner from another occasion?
Carl Youngblood: Dane and I both attend the local Ruby users group meetings in Salt Lake City, so I knew him from there. Upon leaving CCS, I posted a message on the URUG list and was happy to see that there are a lot of Ruby positions available. I don’t think I’ll have trouble finding Ruby work in the future for as long as I’m interested in coding in Ruby :-)
AkitaOnRails: That’s very nice. There are a lot of local user groups there. We still are starting local groups here in Brazil. What can you say about the growth and enthusiasm of the community? What do you see for Rails in the time being?
Carl Youngblood: In my experience, the key to a successful users group is having one or two dedicated individuals with the passion to organize and promote the meetings and line up interesting presentations. If you do that, people will attend. Our local groups have gone through ups and downs depending on the level of the organizers’ enthusiasm. Another thing that seems to help is providing content that is geared towards various skill levels. Making sure that you welcome and help beginners is important. The community is still growing, as evidenced by the many regional Ruby conferences that are cropping up around the US.
I was excited to see DHH’s planned features for Rails 2.0 and his more measured rhetoric as opposed to the first Railsconf, which some folks commented seemed more like Nuremburg rallies :-) I think Rails will continue to mature and has at least 2-3 more years of great success before being eclipsed by some new paradigm breaker.
AkitaOnRails: This is important and maybe you can lay some ideas. Many of the core Ruby and Rails contributors in Brazil, from our local forums, user groups, blog and websites still don’t have the opportunity to work full time on Rails. So they have little to no time to devote do Ruby yet. I believe that there was a time like that there in the US. What do you think was the turning point for the community to flourish?
Carl Youngblood: I think more than anything else, the incredible success (especially the marketing success) of Rails has been the largest contributor to this change. But that didn’t stop passionate Ruby developers from blazing their own trails before then. I think the thing that needs to change first in Brazil is the 9-5 just-a-job mentality. People need to start taking some of the recommendations from the Pragmatic Programmer to heart and making time for extracurricular skills-honing activities, including ruby meetings. This is what folks in the US did and I think something similar will be required in Brazil. I think there is also a cultural difference that is partly to blame. I don’t want to claim that either system is superior, but I think Americans (at least the ambitious types who are in the Ruby community) spend more than 40 hours a week focusing on their craft, whereas I think many folks in Brazil look at software development as something that just pays the bills.
Of course there are many programmers here with the same mentality.
AkitaOnRails: Speaking of passion, David always states about the sense of aesthetics of the community, their inherent sense of beauty towards coding. Did you sense that when you first started? Many say that’s one of the reasons for the Ruby and Rails community being so Mac geared. What do you think about this?
Carl Youngblood: I agree. Matz often quotes a Chinese proverb that says something like “the beginning of wisdom is naming things correctly.” Ruby people tend to spend a lot of time focusing on semantics and making sure that code is not only useful but elegant. I think when you are seeking to maximize your level of abstraction and hence your programming power, these kinds of issues are very important and can provide a huge productivity increase.
Apple seems to reflect a similar mentality in their designs.
AkitaOnRails: I think its nice to mention that I was pretty surprised to see that almost everybody at Surgeworks are Apple-fans. I never expected that. I guess Apple is gaining into the developers workspace as a valuable productive tool. Well, and I know I already pushed you for too long :-) Any other remarks for the Brazilian audience?
Carl Youngblood: I think a lot of Surgeworks’ passion for Apple comes from Dane, who is a big fan. My main advice to my friends in Brazil is to recognize the importance that your individual effort can make. You have a relatively strong IT industry for South America and a burgeoning open source community. I have been very impressed with some of the more vocal Brazilian techies like yourself, Fabio, who have shared their opinions on the Internet. Change is not brought about by the masses, but by thoughtful courageous individuals who break free from the status quo. The more Brazilians take that to heart, the sooner Ruby jobs will start to appear. I am reminded of a quote along these lines:
“Never doubt that a small dedicated group of people can change the world; indeed it is the only thing that ever has.” (Margaret Mead)
AkitaOnRails: Very nice. Well, I think we can wrap it up for today. Thanks a lot! I think people will like this.
Carl Youngblood: Great! Thanks for taking the time, Fabio.