David Bowen BSc Hons

Senior Software Engineer with a focus on distributed enterprise systems



+44 77 34 90 16 61

myforest.com, LinkedIn, facebook

Key Skills

Able to learn quickly by thinking laterally and reading extensively

Looks to the future, builds on the past

Training and energy enable creative solutions to complex problems

Able to communicate effectively at all levels of an organisation

Capable of experimentation but retains sight of objective


TM1 on Cloud Team Lead: IBM (2013)

Autumn 2013 - Date

Operating the TM1 on Cloud offering which of course includes monitoring, troubleshooting and adapting to customer requirements.

Interviewing and on-boarding new devops.

Directing product development for future TM1 releases to improve the cloud offering's maintainability and margin.

Enhancing the offering, for example investigating more sophisticated monitoring tooling.

Summer 2013

Implemented TM1 on Cloud in two months.

Using my experience with TM1 and system administration, I architected the solution and adapted it as we rapidly prototyped and learned about the behaviours of the system.

Weekly product releases to demonstrate the changing offering. Worked with the six product development teams to describe our offering and garner feedback on improvements which I then went on to implement. Carried out similar work with experts who had implemented TM1 on customer site.

Rapidly got up to speed on the SoftLayer API and PowerShell to automate the creation of the cluster and it's customer-specific configuration. At times administering over a hundred servers of various vintages.

Learnt how to negotiate the technical and legal clearance processes in IBM to release software to the novel cloud environment.

Worked extensively with our QC department to verify the offering worked. I was on the hook to determine the cause of problems and determine if they were cloud-related (so I could fix them) or if they were product-related.

Senior Software Engineer: IBM (2008 to 2013)

2010 - 2013

Used deep TM1 knowledge to understand how to extract content from one running database and move it to another running database.

Thriving with the tools we all love such as Jenkins, JUnit, Java, Eclipse and of course agile teams.

World-class, enterprise level solution competently delivering automation, accessibility, globalization, time zones, unicode, multi-threading and graceful error handling.

This involved working with the TM1 team to develop a REST API to describe TM1 objects (and extending the JSON locally where the API fell short). I needed a wide-ranging knowledge of TM1 to include the range of objects it works with to ensure we moved as much of the content as we could.

The technical difficulties of carefully integrating changes into the target system meant that my approach of using test-driven development really paid off. I developed considerable skill in JUnit, for example using parameterized tests generated from permutations, combinations, test files or test case lists.

2008 - 2010

Optimization project for IBM Cognos Planning 10.1.0. Implemented complex database and runtime changes to massively reduce the resources required to apply access control to cell data (patent). Used my expertise in understanding clusters to improve the robustness and efficiency of work item processing.

These tasks required me to blend my SQL, Visual Basic, system administration and business knowledge skillsets to understand what would be worth changing and then to dive into a ten year old code base and make significant changes. This effort was backed up by extensive testing and data gathering by automating the processing of a vast array of test models to understand how much improvement we were making.

Senior Software Engineer: Cognos (2003 - 2007)

2005 - 2007

Worked on Eclipse-based UI with advanced features such as intellisense and quick fixes.

Added ability to transfer systems between environments. Export data from DB2, Oracle or SQL Server to disk. This can then be re-imported into any of those platforms. Development was faster as we made extensive re-use of existing COM components from Java via Jawin.

2003 - 2004

Co-developed an engine to transfer data between systems and optimized this to be 60 times quicker than before. (patent)

Created a system to export consistent sets of data from Contributor to multiple external systems in parallel using copy-on-write. (patent)

Senior Software Engineer: Adaytum (2000 - 2003)

Working in a small team defining a new enterprise-friendly architecture for an n-tier web-based system. Major enhancements include:

Enhanced data store architecture to allow cross-instance storage. Migrated to a data store platform agnostic approach that massively sped up the ports to new data stores. Defined, coded and tested a scalable engine for managing large data volumes in big enterprises. Took responsibility for key stages in the data transformation and maintainance in critical sections of the system. (patent)

Training new developers to create higher-quality, more reliable code. Providing direction and components that harmonise exception handling, resource management and debug information.

Developed a system to allow system activities to be scaled-out (and scaled-up as a side-effect). The execution environment picks up atoms of work and executes them whilst providing debug and administration information about the tasks processed. Works in a database-independent way using a central list of jobs and handling the multi-machine access to this list using a platform neutral locking architecture. (patent)

Liaised with remote development teams to port data storage to Oracle 8/9i and IBM DB2. Provided a system architecture, intial examples, documentation and practical advice to assist in the port. Worked directly with client (a global bank) to create and demonstrate the entrerprise features such as failover.

Software Engineer: Raft International (1997 - 2000)

Component Based Rapid Application Development and Training: I was selected to provide training and techinical expertise to our Danish office and so moved to Denmark for nine months.

Developing Company Intranet 1.0 as well as Sales Support including Microsoft TechEd as a vendor on two stands simultaneously.

Working on a live Client-Server Foreign Exchange system in a major bank in the City of London

Technology Skills


I've developed enterpise scale systems using Java, Visual Basic and SQL that have been deployed on thousands of customer sites.

Very comfortable in Java and Python. Happy working with Javascript, HTML and CSS. Able to adapt to new things pretty quickly (e.g. PowerShell to drive Windows on TM1 on Cloud)

Comfortable on Windows and Linux.

Used to the normal gamut of LAMP tools such as MySQL, Apache, Tomcat, Python, Nagios, Munin, Ant, Jenkins, Node, ...

Familiar with TM1, DB2, Oracle and SQL Server having developed systems on each.


All the normal stuff: building machines from scratch, setting up networks and interfacing with devices such as CurrentCost

Managed 100+ servers on SoftLayer which of course also involved using their rather good API to drive things.


Mathematics BSc Hons - York University - 1991 to 1994: 2:2

5 A-Levels - Kidderminster College - 1989 to 1991: Pure Maths - A, Applied Maths - A, Physics - A, Chemistry - B, General Studies - C

9 GCSEs - Lacon Childe School - 1984 to 1989: Including Maths and English.


US20120226656: Scalable mechanism for resolving cell-level access from sets of dimensional access rules

PCT/US2006/011993: Automatically moving multidimensional data between live datacubes of enterprise software systems

PCT/IB2005/004113: Export queue for an enterprise software system

PCT/US2003/030983: Node-level modification during execution of an enterprise planning model

PCT/US2003/029024: Deploying multiple enterprise planning models across clusters of applications servers

Personal Details

Date of Birth: 1973-02-01

Marital Status: Living with partner (and our two children)

Driving Licence: Clean & Full

Nationality: British

Current Location: York, England

Updated: 2013-10-27

Valid XHTML 1.0 Transitional Valid CSS!