Tom Insam
Tom Insam
UK National, currently living in London, England
tom@movieos.org / http://movieos.org/
About me
I'm an experienced and flexible developer, working mainly in web technologies but I have a record of picking up and using new technologies quickly, as well as experience in regularly shipping products to hundreds of thousands of users.
I work best on my own or in small teams, on fast-evolving projects and with modern technologies.
Skills
- Ruby: Ruby, Rails (1, 2 and 3), JRuby
- Python: Python, PyObjC, mod_python, Django
- Perl: Perl 5, mod_perl, CPAN
- Objective-C: Cocoa for Mac OS and iPhone
- Java: Java 1.5, Spring, Restlet, Hibernate, Tomcat, Jetty
- Web language: JavaScript, Ajax, jQuery
- Databases: MySQL, Postgresql, SQLite, CouchDB
- Version control: Git, Subversion
- Other technologies: Apache, XML, OAuth, RPM, Puppet
Work History
April 2011 - present: Freelancing
Nov 2009 - March 2011: Nokia (developer / architect)
At Nokia, I architect and develop a REST API back-end in Java, communicating with a web front-end and a mobile application using JSON and XML. I'm in charge of a team of 4 back-end developers and testers, scheduling, and both internal and external dependency management to ensure that the product ships on time.
I have used Java, Spring, Restlet, OAuth and Hibernate to build REST-based web services, and deployed them into Tomcat and Jetty containers. We deploy applications using Puppet and RPM packaging. Nokia Berlin practices Agile develoment, with all teams developing in 3 week sprints.
Nokia is a very multi-lingual environment, though shares a common language of English, so I've become adept at communicating using clear language that can be unambiguously understood by people of different cultures with different idioms and expectations.
Aug 2007 – Nov 2009: Dopplr (developer)
I started work at Dopplr in 2007 as the second programmer on the product, and remained as the main full-time programmer until November 2009, when the company was acquired by Nokia. During this time Dopplr grew from a closed beta product with a friends-only user list to a well-known web startup with a large user base. I was responsible for all aspects of architecture and development, including scaling the site from the initial prototype to running on multiple servers, including the use of message queues to defer long-running jobs, as well as a dedicated search server.
During this time I also worked internationally with colleagues around the world - a designer based in Sydney, a front-end developer based in Montreal, and senior management in Helsinki.
Dopplr was built using many technologies, including Ruby on Rails for the main server, MySQL for data storage, ActiveMQ as the back-end server and Solr/Lucene for search. It also used a variety of smaller local services, such as a Haskell-based Jabber server, all of which needed to communicate with each other. I also implemented Dopplr’s OAuth-based XML/JSON API for talking to third party services, and helped develop the Dopplr iPhone application, which uses this API.
Dopplr also used a variety of cloud-based services, such as Amazon EC2 for short-term processing needs and S3 for storing and serving large static file-sets.
Working at Dopplr during this time has helped me keep abreast of new techniques and technologies, especially in the fields of database scaling and integration with third party services. Dopplr relies very heavily on a variety of external services, and I feel that this 'small pieces loosely joined' philosophy has informed both Dopplr’s development and my personal design techniques.
Aug 2003 – Aug 2007: Fotango (software developer)
Fotango was a bespoke software development company wholly owned by Canon Europe. While there, I had significant involvement in almost every deployed project, and spent a large amount of time assisting, mentoring and training the front-end team in the use of our frameworks and general good development practices.
We worked primarily in Perl, for stand-alone scripts, GUI applications (on Mac OS X and Linux), CGI, and full mod_perl applications. I gained extensive experience with many CPAN modules, including Template Toolkit, DBI, and XML::LibXML, and have contributed several modules to CPAN. I was an active member of the London Perl Mongers group, and have given talks on UTF-8 in Perl, Mac GUI applications, and other topics.
At Fotango I came to believe strongly in test-driven development, and used many aspects of Extreme Programming to help prioritise features and ensure high quality code, including story-based development and pair programming, all of which I still find extremely useful. I also helped in the development of the internal continuous integration system, which was invaluble in writing reliable software.
Fotango gave me experience designing and deploying complete web application solutions, including static / mod_perl paired Apache web servers, database (both MySQL and Postgresql) setup and replication, load-balancing, scaling, and high-availability solutions. My code has stored and served very large numbers of digital camera photos and user data for Canon customers spread across Europe. I also developed and maintained the user-management API for the Canon Europe single sign-on system.
Fotango’s last project, Zimki, was based on an embedded JavaScript runtime (SpiderMonkey) and in building this I had a chance to improve my C and XS skills, as well as the use of sophisticated server-side JavaScript techniques such as E4X.
Personal projects
I have 4 years of Python experience, including writing GUI applications on Mac OS X using PyObjC, mod_python based web applications using Django, stand-alone scripts and XML API clients. My public Python applications include an iTunes client library (used in several Linux media applications), and a Mac network services browser. I have also written cross-platform GUI applications in Python using GTK 1 and 2. I have recently released a version of my network services browser for iPhone to the iTunes application store.
Degree
Sep 1997 - Jul 2000: Maths BSc (2:2 Honours), from Imperial College, University of London.
Links & Projects I’m proud of
- Dopplr: http://www.dopplr.com
- The Dopplr iPhone app: http://www.dopplr.com/iphone
- DjangoKit – package Django sites as GUI apps: http://movieos.org/code/djangokit/
- Flame - a Mac OS services browser: http://movieos.org/code/flame/
- Flame for iPhone: http://movieos.org/code/flame-iphone/
- Technical talks I have given: http://jerakeen.org/talks/
- Other interesting personal projects: http://movieos.org/code/ http://github.com/tominsam/
CV last updated 2011/01/11