Integrum and me

February 9th, 2008

In August 2006, I left my employer to embark on a journey to change my skill set and mind set. My previous employer was a very large defense contractor who offered a decent workplace, average salary, excellent benefits, and, of course, job stability. I announced to my friends and family that I would be leaving this employer, returning to Arizona and leaving the ranks of the employed for an undetermined amount of time. It seemed ludicrous to most people at the time, myself included. I was sure of only one thing at that time: I intended to refocus my career goals in an entirely different direction.

Unemployment

I had attempted to take my career in a different direction while still working, but I found that after 60-80 hour work weeks, a Master’s program in Computer Science and a wife and two young children, I didn’t have the energy. Voluntary unemployment was a calculated risk that I could learn what I needed to enter my newly chosen career path before I was forced to declare bankruptcy.

Unemployment is not really as bad as I thought it would be. I was able to spend time learning the things I was truly interested in, including Ruby on Rails. I spent a lot of time with my family and generally enjoyed myself. I found that I could actually work longer with more focus that I ever did at a previous employer without feeling tired or burnt out.

Eventually, our finances drained to the point of alarm and I began to look for a professional position working with Ruby on Rails.

Contracting

Since early 2007, I have been contracting my Ruby on Rails services to various employers. While this was lucrative it was also very frustrating. During that time I learned a little about myself and the environment in which I work best. I invest myself in what I do and as a contractor I found it hard to not get involved beyond what was required of me.

My first contract position was a fixed bid contract that was referred to me by my brother. It allowed me to choose the technology and create a simple student tracking system for a wellness center. It was deployed internally in January of 2007 and as far as I know it is still being used. My first real, deployed and used application! With that experience under my belt, I placed my resume on various websites advertising my interest in Ruby on Rails development positions. In a few short days I was contacted.

My second contracting position was an 18 month contract to create an EMR system for a local, privately held behavioral health organization. This was the big test for me to gauge if my calculated risk would pay off. Unlike the previous contract I was interviewed about my knowledge of Ruby on Rails, databases and Agile development. Two weeks after advertising my resume, I was hired to work professionally with Ruby on Rails. I learned a lot during my time contracting for that company, including how much I didn’t know, and met a great Phoenix Ruby on Rails developer, Josh Huckabee. I also attended my first RailsConf in Portland, OR in May with Josh and a few of the full-time employees.

Attending RailsConf was a real turning point for me, in many ways. Part of what I was missing as a lone wolf developer was the sense of community and interaction with other Rubyists – I met some great people at RailsConf! Upon returning, I began attending the Ruby User’s Group in Phoenix, Phoenix Rails Group and Refresh Phoenix to connect at a local level with other enthusiastic Rubyists, developers and designers.

This was the beginning of the end of my time at my current contract. As I discovered more about agile Ruby on Rails projects I realized that it would be highly improbable to influence the current direction of my contract employer. For three more months Josh and I attempted to influence the direction of our project and rescue it from impending failure. In August, we made our exit and, because of RailsConf and local networking, we began contracting for a Phoenix Ruby on Rails consulting company, Integrum Technologies.

Integrum and Me

In January 2008, Josh and I became full-time Integrum code monkeys. Integrum is an amazing place to work and completely unlike any company I’ve worked for. There is a level of openness and transparency that I have only read and dreamed about. Of course, Integrum is not perfect, but we are working hard to constantly improve ourselves while still having a blast. My wife constantly reminds me that Integrum is fueled by fun :) I believe that this year will be an important one for our company. You can keep up on what’s going on with us by reading, or subscribing to, the Integrum blog.

A year and a half has passed since I resigned my comfortable, full-time position in California. In that time I have accomplished more that I could have hoped for and am happier than I’ve been in some time – my calculated risk paid off.

A Shady Business

June 16th, 2007

Recently, several people told me it was unprofessional to reveal your pay rate. Doesn’t this seem like antiquated thinking? Maybe this goes back to the open, honest communication thing…

I believe that jealousy, resentment, anger, etc. about differences in pay are a direct result of keeping them secret. When they’re secret there’s no need for an employer to justify why you make less than someone else. In the case of a staffing firm it may be even more insidious – they don’t want you to know how much they’re taking out of each paycheck.

Before I started contracting, I was told by several people, and read about it on many forums and blogs, that staffing firms are out for a single purpose and don’t care about contractors at all. They will take advantage of you at every opportunity and use underhanded and sometimes even dishonest methods to get what they want. I refused to believe that because the ones I was talking to seemed very nice.

Sad to say, I’m quickly becoming a believer…

Negotiating

February 8th, 2007

I’m not exactly the best resource for tips on negotiating. I tend to give in pretty easily because I am generally a non-confrontational person. Instead, check out this post from Lifehacker about negotiating your work contract.

I think my biggest mistake is second guessing myself. This is espoused in tip #4:

Never Be the First to Name a Figure – An expert negotiator will inevitably try to get you to name a number first. Asking you what you expect to earn is a high-pressure question, and it’s easy to respond by blurting out a figure that’s lower than what you really want. If asked, simply respond with the following question: “What’s the budget for this contract?”

When I am asked first what my price is for contracting, I tend to go lower than I told myself I would. This is especially true if I really want the position. I guess I am not good at playing hard to get…

Contracting

February 6th, 2007

Well, I got the job. Actually, I got more than one job and had a tough decision, but I can only work one full-time job at a time. I decided to go with a company that is developing a large-scale health application using Ruby on Rails. It seems like the perfect opportunity for me to interact with other Ruby on Rails developers and test my skills in a traditional workplace.

Today was my second day and I’m finding the environment is about as opposite as you can be from my previous place of employment, Raytheon. Raytheon was very structured (CMMI level 5 process) and since it was very large (>80,000 employees) it could be overwhelming at times.

The project I am working on is, of course, temporary, but they have rented office space away from their main offices and are trying to treat the situation as if we were our own company. This is a good strategy and I have read of this before. In implementation, however, it is resulting in a little chaos. I see a lot of word-of-mouth knowledge transfer, which can be dangerous when you are composed of over 50% contractors. I am also finding that I feel the urge to structure things like Raytheon brainwashed educated me to do. Not that I have anything against Raytheon… they have convinced themselves and their customers that the processes in place are what they need. I was just looking for something a little more agile for my next job.

What I found though is… different. It has elements of Raytheon, like checklists, coding standards, processes, and paperwork. It also has elements of… chaos. Not that I am the greatest coder of all time, but I’m not very impressed with what I have seen so far. They have been working on this for over 6 months and have about as much done as I did in far less time. The difference here is I was prototyping. I went back and scrapped that prototype in favor of taking what I learned to build something entirely new. They decided to keep pressing onward with what looks and feels like a prototype. Instead of system functionality, they seem to be concentrating on the flashy web 2.0 functionality that is made so easy in Ruby on Rails using things like link_to_remote, link_to_function, RJS, etc. Maybe it was telling that on my first day I was shown a website that had a large bubbly pop-up when mousing over a menu item and asked, “Can you do this?” I should have said, “Sure, but shouldn’t the flashy UI elements come later? Let’s nail down the functionality first.” Maybe it’s not too late to speak up. Whatever the case, I get the feeling there’s a lot of work to do…

Update: One of my co-workers is as excited and passionate about Ruby and Ruby on Rails as I am. This is exactly what I was looking for when coming to a team environment using Ruby on Rails. He and I have had some great discussions about Agile practices, Ruby, and Ruby on Rails. I think that we have taught each other a lot and I feel very fortunate that he is there cause if he wasn’t I think I would be forced to leave. The remainder of the team is rooted in traditional development methodologies and the developers don’t have as much passion for it as we do.

Update: We have made some amazing headway on the project since I started three months ago. Still, we find that people are just not willing to change their way of thinking. Many of our attempts to push the Rails way and Agile methodologies have been thwarted. To the higher-ups, Agile means adding new functionality two weeks before an iteration when we’re already drowning in what we have because of scope creep and poor understanding of the user’s needs. The current environment is not as effective as it could be. Like I said before, the team is very rooted in the methodologies they’re used to. The approaches that we have taken thus far have not produced the results we were hoping for. How do we successfully convince other team members (developers, QA, graphic designer, project managers, business analysts, and IT director) about the benefits that we have already discovered (and continue to discover)? There seem to be too many hands in the mix – we want them to get out and just let us do our job to the best of our ability! Don’t even get me started about all the freaking meetings we attend… arrgghhhh!

Contractor Rates

January 23rd, 2007

Since I am begin to do contract work, I am wondering what people feel is a good hourly rate for a contractor. For example, a programmer with 5 years of experience in Java applying for a 6 month Java programming position should ask for $40/hr? $80/hr??

Leave your advice, including years of experience, length of contract, technologies used, and hourly rate, in the comments.

Additionally, do you think it is better to be an independent contractor or contract through a firm? It seems that recruiters have a pretty high margin that might be partially eliminated if you were to contract independently. I have also looked briefly at PACE and the Contract Employee’s Handbook. They both look like great sources of information and a lot of what they say makes sense. Since this is my first real attempt at contracting I figured I would go through a third-party. As I do more, I may consider becoming independent.

What do you think?