Work since 2007
What Have I Been Doing Since February 2007
The short answer is lots and lots. For the longer answer
After finishing at InView I had
- alot of money
- a strong desire to work in a better environment, both with code and with working environment
Every programmer should have good control of their fundamental tools, an editor, an environment to compile and run things and a revision control system. In addition we should be able to test every thing we write but I'll get to that in a bit.
In February 2007 my editor was eclipse, my environment was eclipse and windows cmd.exe, and my revision control system was subversion. I wasn't really happy with any of these.
Now my editor is textmate, my environment is OSX - in particular Terminal and my revision control system is GIT. In moving to these I also investigated VIM, Mercurial, SVK, Cygwin, Ratpoison (as a Cygwin window manager), and a number of other items. Generally I feel much more productive with my current environment
I do need to do a bit more work with Textmate (I can see potential which I'm not fully utilising). GIT is totally amazing and github is a wonderful resource. Finally I never want to see cmd.exe again (would be quite happy to never work in windows again!)
At Inview I had been working with Java, with an incredibly primitive JVM on a platform with very limited computational power. Even basic functionality such as collections was not available, and there was no ability to run a testing platform like junit. This presented challenges that could only be overcome by highly organised source code, a great deal of discipline and the rigourous application of good OO. Having a 15 minute turnaround time between code change and feedback is very challenging.
Having worked with Rails and been test infected since the early days of junit, I wanted my future work to be significantly more productive.
Since Febraury 2007 I have
Since 2007 I have re-evaluated my career and worked towards the following objectives
- to be test infected
- to work with Rails even though at the time end even now there are very few rails roles in the north west
- to improve my fundamental toolset and my usage of them - editor, cli, rcs
- to try and be more independent and be able to deliver complete product as a web developer
- to give myself greater opportunities to work locally or without excessive travel
In the technical arena I have
- Updated my Rails knowledge from 1.2 to 2.1
- Learnt rspec
- Learnt and used rspec plain text stories using Cucumber (my main way of testing)
- Moved to doing behaviour driven development
- Changed my OS from Windows to OSX and Linux
- Learnt to deploy rails applications on Linux using Mongrel and Phusion
- Used ssh to setup secure access between servers
- Used capistrano to deploy to my server
- Learnt git and used it extensively
- Used github as my main source of code
- Used restful_authenticion and rewritten its stories as declarative features
- Used AASM, Attachment_Fu on a commercial application
- Researched and used REST
- Used Haml and Sass extensively
- Ported Blueprint to SASS and developed semantic CSS framework. (made obsolete by compass)
- Written an ecommerce application using Rails (nearing completion)
In this time highlights from my reading list include
- Restful Web Services by Leonard Richardson and Sam Ruby
- The Rails Way by Obie Fernandez
- Ajax on Rails by Scott Raymond
- Peepcode Screencasts for Rspec, Git and Textmate
During this period I have learnt a considerable amount about myself
- That I sorely miss working with other developers
- That I can be a productive at home
- Equally that I can be very unproductive working at home
- That working alone requires participation in online communities, isolation is bad for the soul and your code
- That I am not good at business administration, filling in tax forms and touting for work.
- That with patience I can overcome most obstacles and that without patience even simple obstacles can become insurmountable.
- Finally that when you have taken a 18 months of work in the middle of a career, that it can be very difficult to communicate what you have done and why you have done it.
Of course this is just a brief summary of what I've been doing. Further details of progamming stuff can be found on my blog (blog.andrew.premdas.org). After that the best thing to do is talk to me.