Habits, past jobs to present.

Something that has been a big part of each job I have had (excluding Ross and Taco Bell) was that I would always find something I could fix with software (well actually I could’ve fixed the Taco Bell stuff but they wouldn’t let me) so I begin coding away on the problem.

At first just taking a small portion of each day working on it, then progressively ramping up the amount of development time I take at work, along with spending more time on the project at home. I’ve always chocked this up to me wanting to be a professional programmer, along with my drive to fix problems I see, especially problems that inconvenience me.

Each of these times people asked me why I would work on work related stuff at home when I wasn’t getting paid for it and I would tell them it fun or it will make work easier, or in the case of working at Retail Imaging it was to get off the phones and into the IT department.

It gave me experience, made work easier, though I was working at home so there was no net lessening of work, in fact there was probably an increase. Be that as it may, it was a fun increase in work, it let me relax and gave me a sense of accomplishment.

Now I am programming for a living, I love it, I get to come in and work my way through problems and challenge myself. I have already begun fixing things and am getting that sense of accomplishment, along with the experience and with each thing work seems to get a bit easier.

But I am still doing my old habit. We have these data files at work (YAML) that are unweildly and not very fun to edit, add to, or create. There is no validation that the type of information put in for a value will actually go into the database until it blows up when trying to shove it all in there.

I decided I wanted to write a tool for this, now it isn’t a bid deal for everyone else it seems, even the QA folks don’t seem to care too much about this. For me though this is a big deal, so I spoke to my boss to see if he knew if there were any existing tools, and he gave me a detailed explanation about why not.

So I have now started development on a tool to do this task, that I am working on at home, and now I have no excuses, it is just fun for me and if my friends and family insist on questioning it and warning me I am going to burn out, I am just going to ignore them.

Programming is a passion for some of us, sure there is too much of a good thing, but that is why there are many programming languages, design models, domains, and environments to program in.

Coding for fun vs 9-5 coders.

In an interview with founder of WordPress Matt Mullenweg he said “…I don’t think like, dentists go home at night and like want to do more dentistry for fun, but engineers do! You know, it’s what we love and what we’re passionate about.”

There are probably lots of posts on this topic out in the world… but I wanted to share my thoughts on it too.

This is a topic that comes up now and then, mostly among programmers who code outside of work (likely at a gathering of them) talking about current or past co-workers and/or peers at school. Some cite how these programmers burn out quickly and find another profession, others comment on how their quality tends to be lower…

Mostly it is talks of how people like me, who can go to a job where they program all day, then come home, and code more on personal projects, are superior and those who code during work hours only then go home and don’t touch a line of code until 9am the next day should leave our industry.

I was thinking about this a lot at my last PDX Python meeting, a friend of mine Michael did a talk on packaging python scripts for distribution. If I recall correctly he had started into this subject because he needed to do packaging at work and was looking into the different tools. But in order to do this talk he had to gather his notes and spend considerable time outside of work researching this subject.

The research will likely be really useful for him at work, but the fact that after his shift was over, he was still concerned something work related and wanted to pursue it further is something you see in some fields but not many.

Does this want to pursue knowledge that is work related, while we are in the comfort of our homes, a sanctuary that most use to forget about or at least, not think about work, and/or the lack of this pursuit by our 9-5 peers make us the only ones suitable for the job and them not acceptable at all? I don’t think so, those of us that seek more knowledge while away from the work place may be better programmers, but that doesn’t mean those who don’t are horrible programmers.

What people do outside of work is their business, the people who are 9-5 programmers are just as entitled to not spending their evenings coding as those of us who code for fun are entitled to working on our projects. We will likely stay in the business longer but switch jobs more often because for a lot of us, it is the pursuit of knowledge and problem solving that drives us, whereas our 9-5 counterparts tend to stay at the same company longer and they will end up mentoring the new hires since they will have the most experience with the code base.

It is really a symbiotic relationship, even thouh most of my kind have less than kind things to say about the 9-5ers keep in mind the times these guys have helped you out in the office.

Interviews, and my dream to be an entrepreneur

Lately I’ve taken to listening to lots of those podcasts, interviews, and tech talks. It started when I started watching/listening to Google talks more often. I linked one in my earlier posts about CSP and since have watched a whole slew of them.

My latest ones I’ve been listening to is Mixergy interviews. The ones I care about and listen to are about folks that start a business from open source software, and/or how popular websites have come into existence.

Lots of my ideas and projects fall by the wayside but these interviews have had me thinking about if any of those projects would be viable to start a business from. I think to be able to make money from a project that you really enjoy and get to work on it all day is great.

The biggest problem with trying to make money from these things is multifaceted. I love open source and writing code I can’t share sucks but it is what sustains me right now so I can’t knock it too much. But any code that I would be passionate enough to want to turn into a business I would have to either dual license (free for personal, pay for commercial) which in a lot of cases wouldn’t work (little to no commercial interest) or need a pay for service portion (which could also be free personal/pay commercial)

The dual license option is moderately common but lots of my projects and libraries I create are for my own enjoyment and I can’t see folks paying to include code in their commercial product, nor can I see many ways to do things as a service while maintaining a full open source product other than maybe commercial tech support like some Linux distros use, again that would require lots of commercial interests to be viable though.

The other options I have is that I could write closed source code for companies using my open source libraries. That way I could build a framework, set of libraries, and/or tools to manage and write the end application (be it web or otherwise). This way a good portion of the reusable stuff is open source and available to the community but I could still make money by writing software using it.

I can do that with my current job to an extent, if I want a tool I can code it up at home, make a release of it, and then use it at work and see if the boss is cool with me spending company time on any other changes/bug fixes it needs. Should it prove useful enough I could see him easily approving that.

In closing, I hope to someday have my own business, maybe I will focus on that a bit in college, but for now, I am pretty happy with being able to code all day for money, even if the majority of the code is not open source.