Work since 2007

November 10, 2008

Keywords: Category:

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

  1. to be test infected
  2. to work with Rails even though at the time end even now there are very few rails roles in the north west
  3. to improve my fundamental toolset and my usage of them - editor, cli, rcs
  4. to try and be more independent and be able to deliver complete product as a web developer
  5. to give myself greater opportunities to work locally or without excessive travel

In the technical arena I have

  1. Updated my Rails knowledge from 1.2 to 2.1
  2. Learnt rspec
  3. Learnt and used rspec plain text stories using Cucumber (my main way of testing)
  4. Moved to doing behaviour driven development
  5. Changed my OS from Windows to OSX and Linux
  6. Learnt to deploy rails applications on Linux using Mongrel and Phusion
  7. Used ssh to setup secure access between servers
  8. Used capistrano to deploy to my server
  9. Learnt git and used it extensively
  10. Used github as my main source of code
  11. Used restful_authenticion and rewritten its stories as declarative features
  12. Used AASM, Attachment_Fu on a commercial application
  13. Researched and used REST
  14. Used Haml and Sass extensively
  15. Ported Blueprint to SASS and developed semantic CSS framework. (made obsolete by compass)
  16. Written an ecommerce application using Rails (nearing completion)

In this time highlights from my reading list include

  1. Restful Web Services by Leonard Richardson and Sam Ruby
  2. The Rails Way by Obie Fernandez
  3. Ajax on Rails by Scott Raymond
  4. Peepcode Screencasts for Rspec, Git and Textmate

During this period I have learnt a considerable amount about myself

  1. That I sorely miss working with other developers
  2. That I can be a productive at home
  3. Equally that I can be very unproductive working at home
  4. That working alone requires participation in online communities, isolation is bad for the soul and your code
  5. That I am not good at business administration, filling in tax forms and touting for work.
  6. That with patience I can overcome most obstacles and that without patience even simple obstacles can become insurmountable.
  7. 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.