Home | Skills and Experience | Education and Employment | Interests | Contact
I am the founder and lead developer of FreeGuide, a highly successful open source TV guide application, downloaded over 200,000 times, developed in my spare time. My commercially-proven skills at IBM and other companies include C/C++, Python, JavaScript, Java, Linux, Unix and Windows development, and Gtk+/GNOME. I recently applied this experience to write an article on scalability which was published in the journal Overload.
I am a prolific open source developer, creating projects using many technologies, from C/Gtk+, Python/PyGtk and PHP/MySQL to .deb and RPM packaging. Along with the large number of open source projects I have founded, I have contributed to the Loki template metaprogramming library introduced in the book Modern C++ Design by Andrei Alexandrescu, among several other projects.
I have extensive Agile and Scrum experience (including as a ScrumMaster). I am proficient in test-driven development, having practised it in both my work and open source projects.
Lead developer of the UK team building dynamic interactive visualisation widgets in JavaScript and Java at the heart of the next generation of IBM Cognos' products.
As lead developer I have led development of significant features including:
I have been an influential advocate for test-driven development and high code quality, giving regular talks on technical topics including TDD and JavaScript internals.
In a geograpically-separated project I have been the key contact point into our team for those in other locations.
Leading a team building a very large C++ project which allows clients to design, build and modify a data warehouse through a (relatively) simple UI. I have been promoted several times in quick succession through several Software Engineer roles to Senior Software Engineer, to Team Leader and Development Manager until moving back into development at my own request.
As a senior developer and leader I have taken leadership of several significant changes which have been made to the product. Recent examples include:
Through this role I have gained very strong skills in C++ and the Standard Template Library (STL), Python, Object-Oriented design and Design Patterns, as well as debugging on Windows and Unix, XML, C#/.NET, Perforce and SQL databases including MS SQL Server, Oracle and DB2.
Building up through ScrumMaster, team leader and manager roles, I have succeeded in winning the trust of management by standing up for the principle of under-promising and over-delivering, and in changing the culture among developers to adopt test-driven development, and a focus on medium-term and long-term goals through writing better, more maintainable code. Under my leadership we have consistently delivered on our commitments, whereas previously we frequently performed below expectations.
I have participated in a side project developing a platform for social games. My role involved designing and building the game technology using node.js and couchdb.
FreeGuide is my largest open source project: a TV guide implemented in Java/Swing. It has been downloaded 200,000 times since the project was started. Through this project, which I run in my spare time, I have gained strong skills in Java, have used Perl and have learnt about packaging in deb (Ubuntu/Debian), RPM (Fedora/RedHat) and exe (Windows) formats.
As founder and lead developer of the project I have developed skills in leading remote teams and integrating their contributions, as well as user interface design.
I have applied the principles of Object-Oriented design, and test-driven development to my work on FreeGuide.
A full list of my open source projects may be found on my home page at http://www.artificialworlds.net.
I am a prolific open source contributor and have worked in a wide range of areas. Some examples of projects that I founded and lead include:
As part of my work on NNDB, I have contributed the ForEachType class template to the Loki project.
My open source projects have provided experience with the open source development model including using tools such as git, SVN and CVS. I am very comfortable talking about e.g. branching, merging and freezing code in both centralised and distributed revision control systems. I also founded and maintain several projects written in PHP and using the MySQL database.
I am a capable technical writer, having had a recent article published in Overload, a journal of the prestigious ACCU programmers' organisation. I produce high-quality documentation for my open source projects, write on my blog at http://www.artificialworlds.net/blog and wrote my DPhil dissertation. See my Publications page for details.
| April 2005 - present | IBM (previously Cognos) – development manager, team leader and senior developer for a team of 8 developers implementing an innovative adaptive data warehouse design system in C++ (also using Python). Promoted five times in 5 years. |
|---|---|
| 2000-2005 | DPhil (PhD) at the University of Sussex in Computer Science and Artificial Intelligence. The research involved writing a large C++ project modelling cognition using "developmental" neural networks. 2 published conference papers in 2001 and 2003. |
| 1999 - 2009 | Sigma (UK) Limited – working part-time designing, implementing and supporting their flagship consultancy software package as well as other packages. |
| 1999 - 2000 | Distinction in MSc at the University of Sussex in Evolutionary and Adaptive Systems. |
| 1995 - 1998 | 2:1 in MMath Master of Mathematics at the University of Nottingham. |
| 1998 - 1999 | Assonance – The business I founded after my first degree, which built web sites for clients. |
| 1996 - 1997 | MarketingNet Ltd – I did several small programming projects at the company that wrote the book on Internet marketing. |
I have been involved in several youth work activities, notably running a Christian youth holiday, leading a team of 30 adults supervising a week-long residential holiday for young people. I also ran a weekly discussion group for 18-30 year olds, and have been a leader of the 14-18's group at my church. I enjoy spending time with my young family and reading books such as Crime and Punishment, Structure and Interpretation of Computer Programs, Slaughterhouse 5 and The Art of Computer Programming.
I may be contacted on andybalaam at artificialworlds.net.
You can find out more about me at http://www.artificialworlds.net and http://www.artificialworlds.net/blog.
The URL for this page is http://www.artificialworlds.net/wiki/CV.
Home | Skills and Experience | Education and Employment | Interests | Contact