Projects

Below you will find some of the projects I have been involved with during my career.

mBlox/Mashmobile Sweden AB
June 2008 – Now

Message Router
Our current product portfolio is using SMS messages, as well as other means, to communicate with devices. The SMS messages are sent and received using mBlox SMS Gateways. The message format used by mBlox does not lend it self well to our domain so messages needs to be transformed into formats that are easier to work with. In order to centralise this process and keep transformation and routing as a single domain I have created a message router using Apache Camel. The delivered system does not only route and transform messages. It is also written so that other developers can create new well tested routes without having to know all the details about Camel. The development path starts with creating a new integration test that sends the expected message to the router and checks that it then sends the correct message out.

Agile process tailoring
Mashmobile is a young and fast moving company. This creates specific and sometimes difficult challenges when tailoring a work process. In an ongoing effort we are looking at different Agile methodologies to create a toolbox that works for us. I have a central role in this effort where I can pull on past experience from various environments and projects. As much from failures as from success stories.

Google Cloud to Device Messaging for Android prof of concept
To find out how the new C2DM technology works and what we may be able to do with it I created a small prof of concept. The server side is written in Python leveraging the Tornado framework. The client side is a very simple Android application that can register for C2DM and receive a message sent over C2DM. It allows us to further test the usefulness of this technology to us.

ThoughtMade Photo Wall
During the first ThoughtMade Øresund Mashmobile collaborated with the organisers to provide a real time photo wall. When a participant took a photograph with his/her Android phone the picture appeared on a virtual wall. The application was used both to document the preparations for the event and during the actual event. I created the concept and managed the project from start to finish.

Mashmobile Device Server for Android
The Mashmobile Device Server (MDS) for Android is the Android application that enables URL access to the device. My involvement with the application has been in two main areas. I am responsible for the geo-location APIs in the MDS and I have automated the build/test/deployment process using the Android Maven plugin.

Performance testing
I have the key responsibility for performance testing of the Mashmobile system. This is mainly focused on the Mashmobile Network (MNet) and Mashmobile API Server (MAS). It is enabled by replacing the device component with mocked devices to remove latency in the system due to pour network, making it possible to benchmark the network components. On the other side of the stack testing is done using JMeter to query the web APIs in the MAS. I have set up both the hardware infrastructure and the software tooling needed to perform the tests in a fully automated continuous fashion. The result is a fully automated performance testing lab.

Alfa Kommun Och Landsting
May 2008 – June 2009

Origo
Origo is an application used by Malmö council to manage care for elderly and disabled. It caters for all administrative needs within the sector as well as journaling of patients. The application have been written in Oracle Forms and in Java.
My main responsibility is to manage the Java application. The aim is to improve and redesign all legacy parts when changes are needed to make them testable and well designed. Some new development is also taking place and this needs to be test driven.

New functionality for Origo
The customer ordered a new piece of functionality for the already existing Origo system. The project includes several new entities and functions that will support staff in complying with new regulations. The project spans about a years work for the team. My role is as technical lead and process lead. The project covers all aspects of the application, from the Swing UI to the database. It is test driven, including test driven UI development using the FEST testing framework. When the team needs to work with legacy code this code is refactored and made fully testabe.

Processes
When I started at Alfa there was little in the way of processes for development and this is an area that needs immediate attention. The Java team together with the project manager sat down for a workshop to outline improvements that we felt were needed and then solutions. The material was then used to define a process for the team as well as all supporting roles needed. The work is ongoing and the process is evolving with the experience drawn from every iteration we go through. The process is losley based on Agile processes such as Scrum and Domain Driven Development. The plan is to firm it up and then start pulling other teams into it as it becomes more concrete.

Patterns group
During the fall Alfa have had two meetings in it’s patterns group. This is an initiative where colleagues from different technical backgrounds meet and discuss how we have used patterns. It is a great opportunity for all involved to get a deeper understanding of how the different patterns work and where each is to be used.

ProcServe Holdings Limited
Jan 2007 – April 2008

System integration
ProcServe acquired the company IMPAQ Business Solutions to provide richer supplier side features. The company is a .Net house and Microsoft Gold Partner so this have caused some issues when data needs to be consolidated and components needs to work together. I was, with the architect from IMPAQ, responsible for both the short and long term integration of the systems. Short term web services was selected as the enabling technology for integrating key components. In the long term the solution needed to make the two systems work as one. This would be a full scale SOA solution were the most mature and suitable components from each system is retained and exposed as a service to the solution.

Strategic hosting environment
ProcServe have gone into a contract with a strategic hosting provider that will be able to provide for both their current and future needs. This required reviewing proposals from several different providers as well as meeting with the short-listed companies to decide which provider would win the contract. I then architected and designed the detailed implementation. This requires high levels of security since some of ProcServe’s customers are government organisations with high security requirements.

Documentation standards
When I joined ProcServe there were no defined processes but several areas had been identified that were in acute need of attention. Documentation was one of them and I was responsible for putting together the processes for documentation in all areas of the software development life cycle. To enable a high level of automation and a simple coherent way to access documentation I implemented Maven2′s site plug-in in combination with several reporting plug-ins.

Defining strategies for testing
I was responsible for defining testing best practises. By looking at how others have done this, using information from both tools vendors and the software community at large (with special focus on Agile processes such as XP) I created a proof of concept for how to create stable unit and functional tests that can be automated and integrated into the continuous build cycle. I also implemented monitoring tools that reports on how well software projects are covered by unit tests.

Configuration Management of the core solution
Another area in acute need of process and high level of automation using intuitive tools that leaves little in way of improvisation was the build and deployment cycles. I choose to use Maven2 as the main tool for this. It provides industry best practise and form to the development process from the start of a project to the deployed artifact as well as integration support for complex modularised systems, such as a JEE application. The was project started as a POC with only a few modules. This was a success since Maven2 addresses most areas in a practical way out of the box and is easy to modify and extend where needed. I then oversaw the roll out for all projects allowing my colleagues to do the implementation, so that they would all get to know the how the tool works. This project cut build and deploy time with over 70%.

System architecture
This was an ongoing initiative to maintain the architecture, both on an overall system level incorporating all aspects of the solution as well as the detailed software architecture of the core solution. It incorporated keeping architectural documentation up to date as well as making sure that the solution evolved according to the architectural plan.

Trading Partner Directory
The Trading Partner Directory component is the centrepiece in the core solution that ProcServe are developing. I was responsible for the full life cycle of this component, from requirements gathering to roll out. It is a classic JEE component in three tiers, DAO, domain and view, using the data transfer pattern to decrease coupling and enable distribution. The DAO tier was implemented using Hibernate. The application was been wired with Spring’s dependency injection mechanism. The view was written using Maven MVC.

My Transactions
The My Transactions component provides a view on buyer transactions in the system and their current status. My role in developing the component was largely as implementation developer since much of the design was already done when I joined. I did however have to change some of the overall architecture since the whole applications architecture was redefined by me to enable a greater level of module decoupling and cater for future distribution needs.

BDO Stoy Haywards
October 2000 – December 2006

BDO portal
The BDO national intranet and core applications have recently been ported to IBM Websphere portal. My part in this project have been both as a researcher to find out the boundaries of the new platform and how to incorporate and port our core applications to the portal as well as designing and developing specific applications within the system. I have created many of the APIs used by my colleagues during my research and analysis. BDO Portal is a Websphere portal system using data from Lotus Domino, Teleware, relational databases, Autonomy search engine and PeopleSoft. It also utilises a number of RSS feeds for news services and some web services.

Client portal
The BDO Client portal is the next generation of the Client extranets. It is a portal that allows clients to view all data that is related to them. It also allows the staff to view all client data in a client centric way. I have mainly taken part in the analysis and design of the system and provided the system with some of the APIs used. The Client portal is a Websphere portal application using data from Lotus Domino database and from PeopleSoft. The integration to PeopleSoft is done using People Tools Java APIs and direct access of the MS SQL back end.

International intranet
The international intranet allows all BDO firms globally to share information about expertise, clients and staff. It helps the firm to refer work and strengthen the BDO international cooperation. I have been working on this set of applications since the start in 2003 when I developed the first version. I have since had the responsibility to maintain, support and add features. The technologies used is first and foremost Domino databases but also J2EE applications have been integrated, running on Websphere application server.

Client extranet
The Client extranet is a set of domino web applications that allows clients to share information with BDO digitally. Its main usage is for busy people that need to access and edit information on the go. I was one of the key developers of the applications as well as the main architect. The system relies heavily on web technologies to give the user a rich interface. Domino is used as a middle ware as well as data store. Some of the sub systems also uses relation data back ends.

Corpguide Systems AB
January 1999 – September 2000

DN Galan
DN Galan is a major track and field sports event in Stockholm. They had ordered a bespoke system to manage participants, ticket sales and press contacts. I was the main designer and developer for the system providing them with booking facilities for participants accommodation and service, press correspondence and issuing press passes as well as interfacing to the third party ticket booking system. The system relied heavily on web technologies such as JavaScript and DHTML.

Website engine/Content management system
The website engine was a domino application that allowed staff to add and edit content, look and feel and navigation without knowledge in web technologies. I was the sole designer and developer on this project. The system was configured and the content is edited using both Lotus Notes and Web front ends. It relied mainly on back end Domino to validate and generate content but also utilised the web or notes client to validate data input and provide view logic.