 Alright, so I'm Matt Williams. I also work for CHIP. I've been working for CHIP less than probably coming up in three weeks, maybe a month now. This is kind of my entering the world of full-time Ruby on Rails, and I can't quite call it a job because compared to where it was, it doesn't feel like a job. And I don't have anything kind of extraordinary to talk about, or technical, or new release, but I kind of want to tell you about working in a corporate environment like a Fortune 50 company corporation, and how I kind of made do with what I had, and made the most of it, and how I kind of made this transition to where I am now, and a much happier person. So working for a corporation is very, very difficult, and not necessarily difficult in terms of the job duties, but difficult of what they give you. So, you know, as I progressively got more and more involved in the Rails community, I started noticing the constraints ahead more and more. For example, software, hardware, various corporate procedures, corporate processes, and the list goes on and on and on and on and on. So, the first thing you have to do is kind of find your way around them, and not necessarily, you know, bad ways, but enough where it's kind of borderline, you know, you might be breaking the rules, but it's all for the better. And you can always ask for reviews later, so I think that's pretty common. So, this may or may not be the scenario I was stuck with. I had to work in Windows. There were some slurs, and Linux boxes kind of spread out, although they belong to different groups and different people administer them, and you kind of had to know people, and it's a kind of a very weird, I don't know, kind of a weird network of things of other people in the corporation who are also trying to do bigger and better things than what you're allowed to do, so you kind of have this underground, almost like prison-like, you know, behind the scenes, you know, behind IT's back way of doing things. Everything's really locked down, especially when you were working in the type of work I was doing, which doesn't need explanation. We had one choice of SCM. It wasn't CVS. It wasn't Subversion. It wasn't Git. It wasn't any of the other distributed systems. It was a system run by IBM, who they bought out. Clear case. There was one choice for issue tracking, which, if you have clear case, then you also have. Clear question, if you're familiar, and equally as bad. Let's see. The language that was a standard kind of work for my group was cold fusion, and it wasn't even like latest cold fusion. It was like years of cold fusion that we kind of got and picked up and just kind of built stuff with, and we're working with Oracle. So it kind of hurtles along the way, and needless to say, like I said, as I got more involved with the Rails community, what I was working with when I first started this job, this stuff isn't too bad. Cold fusion's really easy, whatever, and it talks to Oracle really easily and whatever. But as I got more into Rails and more into the community, I wanted to start bringing this into my career. So you kind of had to figure out how to exploit what I had available. So luckily, because of a certain position I was in, I had admin rights on my machine, which not everybody has. So I was actually able to install my own software, despite there being a full three month long process to get a piece of software approved and installed on your computer by IT. However, we had very poor IT oversight, so I could install whatever I wanted, and they wouldn't detect it, because they were pretty much just kind of scanning very straightforward directories, and I had coworkers for kicks that put like a Napster.exe in the root directory of their C drive, and they never got flagged or anything like that just to give you an idea. And I also had some free time, but not necessarily free time, like I wasn't always busy. But I needed a good project, and I needed a project to make all this stuff work so I could sell it. So I could actually go to my manager and say, look what I did with this set of tools that cost me absolutely nothing. The support for the tools cost nothing. I did it ten times faster. The productivity and not only that, but the maintenance on the tool is this much better compared to what's there. So the tools that make this very easy, NetBeans and JRuby. How many people here raised their hands and have used NetBeans? Okay, so a couple of people. So a couple of people, when they first hear NetBeans, and they think IDE, and they're kind of very against it without actually playing with it. And as of NetBeans 6.0, they've had really, really amazing support for Ruby. There's a really good debugger. They have a really good test runner. And basically, you can mock it to look like text made very easily. It's got all sorts of fancy auto-completion. And pretty much if you're working in Windows, it's probably one of the nicest editors you can get for Ruby. And basically I would use it for an editor, and then I would use Sigwin for console command line stuff, which worked out really well. What's that? Yeah, you can have auto-test running. And then it'll, in real time, show you your code coverage as you're editing. So you can, it's pretty unbelievable the features they're adding, and they're adding them very quickly. And they also address issues and bugs very, very quickly, which I'll touch on. So as far as the need for Ruby Rails and testing, it was all in NetBeans. And because we're a Java shop, actually getting NetBeans wasn't that big of a deal. So yeah, I could go download NetBeans, install it. But I could also put a request in and say, hey, this is a really important tool that I need, blah, blah, blah, blah, blah. They wouldn't say, you know, they, you know, they wouldn't question it. They would say, yeah, yeah, we know NetBeans, opposed to me requesting something, you know, like, you know, Ruby programming language itself or something else. Whereas the beauty of JRuby is it's just a jar file. And so it's kind of awesome now that we can kind of slide in Ruby wherever I need it. I need a better database. I don't know if anybody's worked with Oracle with Rails, but it's not the most pleasurable experience. There are, there is really good support. So using the ActiveRecord JDBC libraries for Oracle, it's not bad, but it's not the greatest either. And I guess Oracle lacks a lot of features that you'd find in Postgres that just make life a lot easier. And plus kind of the standards for what we're using in terms of database convention didn't match up to what Rails was using at all. And that very limited admin access. So it was very convenient that a box came into my hands that had a Postgres server running on it for another tool. So I kind of piggybacked on that database and things worked out very well. As I progressed through this kind of transition, people were becoming more open-minded into other suggestions because lots of people were complaining about ClearCase. And so bringing subversion and getting subversion installed wasn't actually that big of a deal. But as far as issue tracking, that was kind of still an issue. But then comes in RedMind. And I don't know if I've used RedMind, but RedMind is probably one of the most incredible open source Ruby on Rails projects. And it's a full issue tracking system with full SCM integration, wiki support, file management. They do a lot. And so it's actually probably better than lots of the hosted solutions. And so I was just able to spin up an instance of that. And not only was I using this for my projects, but some other projects were using it just for basic issue tracking and get charts and stuff just because it's a whole lot easier to use in like project or some of the rational tools. And then lastly, to kind of host this application, I just needed a machine that was never going to turn off. And I had that Postgres box. So I was kind of hosting everything on this one Postgres box. That was kind of in a serverish room. Basically, it wasn't getting touched. And no one else was going to kind of realize it was there except for the people I needed to know. Oh, 20% low battery. Let's see if I can continue here. This is very cool, by the way, the keynote controller for iPhone. So all of that, Instant Rails toolkit. You can spin it up in like 20 minutes after you're done on all the tools. And you're instantly running Rails applications. You're running your tests. And it's a very beautiful thing. So immediately I started getting the requirements and everything I need to do. I was constantly, you know, I kind of brought my manager into the mix as things started progressing and actually had stuff to show that meant something. And not that I was just kind of wasting time. So I did that by first porting an existing application that was a cold fusion application. And the port to Rails was like three days and it was so much more maintainable. The URL structures were a lot more readable and kind of less other reasons. I took a lot of criticism. Not necessarily I took a lot of criticism, but there's a lot of criticism in terms of people not necessarily wanting to change. But I didn't necessarily say, okay, I'll go back to cold fusion. It was kind of, I kept drilling into it and drilling into it and drilling into it and bringing it up whenever I could to kind of expose this more and more and more. You know, trying to get it to click in other people's heads. And again, I just kept on showing off productivity. But then also, I also started kind of legitimizing all this stuff. So all the paperwork and stuff you need to do and forms you need to submit to get software approval, I was actually going through the process. So in the end, when I actually had a product, I could actually show it off to people without the worry of, well, how did you do this? Or where are you hosting this on? What tools did you build this with? And actually, as I started going along the process, paperwork was processed and IT would come along and install NetBeans. And so as I get the heads up that IT guy's coming on and uninstalling NetBeans and making back the stuff that way when he shows up and you know, he asked me to step aside so he can install the software, this very technical thing on my computer because the software engineer can't do it himself. You know, things kind of looked right. So the result, I was a much happier person in my job because I was starting to do, I was kind of bringing my hobby into my work life, into my career. I was working with tools I didn't dread working with in terms of, especially I didn't necessarily like working with Oracle. I didn't necessarily like working with Cult Fusion and so kind of bringing Rails and all that was really good. I did gain interest from others. Co-worker's interest, enough interest that brought a co-worker to Access Conference last year and this year. And also, I was able to make a lot of contributions back to the community. So as you can imagine, actually there's probably more than you would think, but there probably aren't that many Windows users using the ActiveRecord JVC driver for Oracle and so as I was using this and just hitting all sorts of different situations and scenarios, I was creating tickets left and right and they were being addressed left and right. Nick Seeger is a machine. It was like, as soon as I could get a ticket in there, there was like another point release with it fixed and I would take this back to work and talk to about people because there's software packages that were paying hundreds of thousands of dollars a year in support and if we ever submitted a ticket, it's this three months, six months process to even establish if the ticket's worth fixing. And so it was kind of exposing open source to a group that necessarily had an embraced open source and so also the same goes for NetBeans. I submitted countless issues and bugs to NetBeans and they always followed up with emails and they always sent me emails whenever those fixes made a new release which I thought was a very great thing. So what was next? I left that job. So along the lines of Nathaniel's talk and kind of fear, I probably could have left much earlier into the Rails world but I guess there kind of was this fear of, you know, can I hack it and I have a wife and a family and a house and a mortgage and pet bills and all that stuff floats in the back of your head and it's really an intimidating thought to think, okay, I have an extremely cushed job that's probably not in any risk in the next 10 years. Do I really make this endeavor and kind of head out and being able to do what I did in terms of making the best of what I had with the tools and hardware and we're actually working with Rails more and more and getting more familiar and kind of doing some more stuff at home, it really built that confidence and built the confidence enough where I was able to start looking at job boards and then start investigating my contacts and stuff and that's probably the greatest thing is being able to network and get involved with the community in terms of Orlando has a really good tech community here and I live about an hour away. So coming out to all the bar camps is no issue. Coming out to the Ruby User Group meetings is no issue. Linux User Group issue. It's great and you meet a lot of people and that's how I happened to meet Anthony who brought me on the CHIM team and it just so happened that Anthony lives like five miles away and had I not kind of made this leap and got involved in the community and stuff, I would have never known that there's another Rails developer working for a start-up full-time, five miles away from my house and because I networked and because I got involved, I'm now, like I said, I don't feel like I have a job and so making myself part of the community really put me where I am now and it's a very great thing and lots of people that I talked to when I kind of made this transition were very, the economy's bad right now, I was just really sure this is something you want to do right now and they were kind of baffled that I wasn't hesitating at all. I wanted to almost get out as soon as I could once I finally overcame that fear and something I certainly don't regret and so I kind of got that dream job that I can't even really call a job because it's literally felt like a hobby and I'm sure everybody here that works Rails full-time, works, does something Ruby related to full-time can say the same thing, you know, why work in this kind of environment if you're not enjoying yourself and it's not pleasurable and for the longest time I kind of talked that way and you know meanwhile I was sitting in my cubicle, you know, hanging my head some of the time and I can't necessarily say I didn't like my job but it wasn't ideal and I think RubyConf for me was the tipping point so all throughout my career I've been kind of looking out the window all these people having fun with their Ruby and their Rails and I'm going back to my Oracle, my cold fusion and then I went to RubyConf and RubyConf really nailed it in and I saw and talked to so many people that were so happy and working on all these projects and I got back to my desk that Monday morning following and it was like not necessarily a walk of shame but it was like alright I've got to do something and that's when I started doing what I did and I think that's it so yeah, do stuff that makes you happy and I think there's everything that Nathaniel said earlier he kind of drilled it down and this is probably said a million times at every different conference and stuff but it can't be said enough so I think that's it thank you