At my day job, I’m doing my best to be professional.
I never commit crappy code into the repository.
I unit test a large chunk of my code.
I make sure features can scale.
I have scripts for all repetitive work.
I monitor every web service for errors.
I think about backward and forward compatibility.
I take special care to write code that is easy to understand for other people and future-me.
As a part-time-indie-developer working on a side project, it’s easy to forget about all of this. Who’s got the time to think about being professional when you just want to hack a simple product over the weekend?
A big part of my knowledge and experience is based on stuff I learn on my free time. I then take this knowledge and apply it at my day job. If I have crappy work habits at home, they’ll soon propagate to my workplace as well.
So I’ve started to collect some new habits towards awesome-ness:
I use version control. I’ve never used it for personal project and I don’t know why. We introduced Git (and Git Flow) into my workplace recently and we love it! Now Git also powers all my side projects.
I open source code I’ve written. It’s always a good idea to have another set of eyes examine your code. Open sourcing code allows for it. Some of my projects are already up and being used by github’ers (Check out Sequencer, Backbone.setters.getters and my github profile).
I script repetitive tasks. As I’ve already mentioned in a recent blog post, my iPhone app configuration can be controlled remotely. I used to manually upload a JSON file to my servers. It was boring so I scripted this task. It now takes less than a second to deploy a new configuration.
All these habits does come with an overhead, but it should pay off in the long run.