Open Energy Market is using technology to modernise the commercial energy brokerage industry. We focus on trading only Fixed and Flexible contracts. Our software automates the procurement process offering direct access to the UK's suppliers. Providing the ability to forecast their portfolio, customers can control their energy spending.
Having offered technical advice and support since the start in 2012 I joined full time in 2014. In May 2016 I also became a director of the company. My role is to develop and execute the company's technology strategy. This covers not only our core product but all internal and external systems as well. I'm also responsible for budgetary control for all IT Software, Hardware and services.
Working with the Product Owner I oversee the design and architecture of our software. Implemented on the ASP.Net MVC framework the product uses SQL Server as it's data store. As of writing our approach to hosting the software has lead to a 99.99% uptime. Our only non-scheduled downtime occurred when the Azure platform suffered outages. The software's now deployed on a mixed Microsoft Azure and Amazon AWS environment. The mixed environments allow for either host to fail and allow us to remain unaffected.
I have built a core product team of 4 developers and a Product Owner. The team is remote and based across 3 time zones. While always refining the way we work, we currently collaborate using Slack. Work gets tracked in a hosted Jira instance and we document everything in Confluence. Following my Kanban development process, we deliver a new release every two weeks.
Depending on the work implemented in a sprint, 60% of the releases make it to production after testing. At least one release reaches production a month. Releases that do not get released include work that spans many development cycles.
I am a strong believer in encouraging team members to improve their skills and knowledge. Each member of staff has access to a Plurasight account. We review the courses undertaken and plan relevant courses at each 3-month review I hold with the team. We share weekly code kata's within the team and pair programming is arranged as demands allow.
AIControlPoint provided incident and crisis management software. A subsidiary of Access Intelligence, I joined in 2012 as their 2nd developer and 4th employee. My work helped the company expand the team to 10 employees and triple our customer base. Our customers included EasyJet, BP and Chevron.
Access Intelligence obtained ControlPoint via acquisition and released it as a SaaS service. Customers included those in regulated and high-risk industries such airlines and banking. The software provided customers with a real-time role-based workflow. It allowed users to configure tasks for members of staff to complete during an incident. Full analytics and reporting even allowed users to replay incidents in real time.
The bulk of my time saw me modernise the aged codebase and developing new functionality. I also led the design and implementation of a LogiXML based, real time analytics module.
Working at ControlPoint, I was also involved in two related projects. The first was a crew notification system developed for Easyjet called HOTEC. It allowed EasyJet to manage and accommodate delayed flight crews via SMS. Developed using ASP.Net MVC, the application used Dynmarks service for SMS Messaging. The second project was a notification API based on the subsystem from CrontrolPoint. The API allowed applications to send email, SMS, pager and text to voice phone messages. The API was built using the ASP.Net Web API framework, Reactive Extensions library and RabbitMQ.
Working for Konetic was a massive shift in both sizes of company and technology. When I joined in 2007 they had developed a recruitment SaaS application. While successful already, the main issue the company faced was scalability. Each client they had at that point had their own code base and getting new clients set up was a long process.
We took the decision to scale back our operation. Our focus for the first six months was to take the individual code bases and create a platform. Working in a team of two at this point, we created the core of what become the companies platform. We built the platform on .Net with SQL Server as our database. We developed our own ORM/data layer which allowed a mix of core and client specific objects and tables. This was a theme seen throughout the platform. We allowed every core module to mix in client configuration and data. We generated our markup by mixing XML form definitions with XSLT snippets. Each of these core elements allowed a user to define the content from a simple UI.
Within a year we had doubled both our client base and our development team. By the end of my 5 years with the company we had over 45 direct clients and several white label partnership deals. I had helped to grow the core development team to 7 and establish a QA team and product management team.
I introduced a Kanban based development process and simplified the Perforce repository management. I lead the use of tests and built several utilities to support the development team. The most useful of which was a SQL Script Deployment manager. This reduced the number of missed client scripts during a deployment by 60%.
I joined Liberata as a .Net developer working on a team developing an Employee Benefits systems. Within 3 months I was leading the team in the role of Lead Developer.
The system comprised a themed web application that we branded for each of the 25 clients. There was a reporting and admin portal that allowed the admin teams to administer each site. Built upon .Net 1.1 and SQL server, we utilised a lot of the early .Net framework to make the system flexible. The main aim of the codebase was to allow us to override and inject whatever we need to on a per client basis. From the UI through to the database, everything was configurable for each client.
My role also saw me lead the development of several smaller applications. These applications and utilities were for both internal and external client use. An example of a client application I developed was a target measurement system. The most important internal tool I built was a SQL Server environment manager. This allowed a user to migrate a whole database between environments. It allowed a user to select individual objects to migrate them between environments. This was especially useful for the deployment of SQL server elements. It was also used via an API to create reporting databases for the admin team. They then ran complicated modelling routines and reports against an offline database.
The majority of my role at HSBC saw me developing desktop financial applications. I also maintained and provided support for the Profund system installation.
The applications that I developed were all internal and Windows based. They were all written on a VC++/Visual Basic 6, SQL Server and Crystal Reports stack. The projects I worked on varied from utilities to full n-tier database systems. A large project I developed was a resource planning application for internal teams. This allowed the planning of events and resources through a client contract year. It contained an AI based resource assignment engine and detailed analytics. It increased the effectiveness of the teams using it by 28% on average.
I developed a range of applications that would automate tasks for admin users. These freed them from manual data entry and allowed them to focus on more meaningful tasks. The tools generally parsed and validated data before loading it to the target system.
I was also responsible for supporting and developing the Profund installation. This involved calculation suite development, maintenance and system integration with third parties. Report generation and modelling via integration with Excel also fell under me.
I joined Aon as a Pension Administrator working on a team that handled the BP pension plan. Within 6 months I moved to the Tailored Scheme Service Delivery Team. The team provided support and development for larger pension schemes managed by Aon.
On this team, I provided Profund Pension Administration Systems support and development. In a varied role, my responsibilities included developing third party integrations and calculations. I also developed mechanisms for uploading data into the system and general system support. The team was also responsible for developing automated Microsoft Office applications using VBA.
I worked as a contract administrator for Windsor Life during their takeover of GAN. I divided my time between processing paperwork for many departments. On top of my main role, I also automated some mundane tasks using Excel and VBA.