I have been building innovative enterprise software applications for over a dozen companies, in various domains and global locations (Australia, India, UK, Germany, Qatar) for over 12 years. I have a passion for developing robust, simple and elegant solutions for complex business problems, through a combination of agile practices and a strong understanding of emerging technologies. I
I have been building innovative enterprise software applications for over a dozen companies, in various domains and global locations (Australia, India, UK, Germany, Qatar) for over 12 years. I have a passion for developing robust, simple and elegant solutions for complex business problems, through a combination of agile practices and a strong understanding of emerging technologies. I have experience working and communicating with many levels of business and technical management, dealing with distributed teams, introducing agile processes to previously non-agile environments, and providing technical leadership and mentoring to fellow developers.
Technical Architect @ From January 2015 to Present (10 months) London, United KingdomSenior Developer and Architect @ From January 2014 to December 2014 (1 year) London, United KingdomSoftware Consultant @ Senior Software Consultant and Technical Lead for a multinational online payment provider, my responsibilities include leading a scrum team of 5 Developers and 2 QAs, providing technical and architectural analysis and input to epics from inception to delivery, and hands-on development in a pair-focused, TDD programming environment. One area my team and I have particularly championed was to start focusing on technical debt and continuous improvement - an area which previously had been overlooked. This has lead to a much more test-friendly design and development focus, minor rework to address cross-cutting concerns singularly, favoring of opensource frameworks over bespoke implementations, and a sizable increase in velocity.
As part of a small team responsible for delivery, we had a pair of developers focusing on front-end work, while the other pair-and-a-half focused on server-side concerns. We practiced Scrum and delivered demo-able, working components each two week sprint. From June 2012 to November 2012 (6 months) London, United KingdomSenior Software Engineer @ Senior Software Engineer responsible for delivery of functional enhancements to new and existing article markup, specifically in the domain of chemistry. This included adding advanced search facilities to enable consumers to describe or draw molecular structures, search for matching or related compounds and, through the delivery of rich website features, highlight the occurrences of those compounds within the article.
The Functional Chemistry team to which I belonged was cross-functional, and practiced Agile. We utilized two-weekly iterations, and enforced continual pair-programming alongside Test Driven Development. From August 2011 to June 2012 (11 months) London, United KingdomSenior Software Engineer @ Senior Software Engineer and member of a small agile development team (5 devs) building a data management platform for marketing and consumer profiling. This included incorporating a federated single sign-on, complex organisational hierarchy, data services and aggregation, and universal customer view.
Utilizing BigData principles and Functional Programming methods, we delivered a working and documented series of RESTful endpoints to support business functionality. These included managing the organizational hierarchies, listening for generic marketing data from third-party apps, and aggregating and subscription-based querying of that data based on keyword and customer identifiers.
Key technologies include Scala, REST, MongoDB, Salat, Gradle.
As a team consisting of 5 full-time senior consultants, we shared the responsibilities of QA, architecture, development and scrum mastering. We worked as "two and a half pairs" with daily rotations, and each facilitated key agile milestones such as demos, stand-ups, planning and retrospectives each sprint. From July 2011 to August 2011 (2 months) London, United KingdomSenior Software Engineer @ Working as part of the Sky Network Services team, my role consisted of enhancing existing messaging and state management for the service provisioning systems. This involved maintaining the current status and historical data for phone and broadband service requests, through the use of RESTful services, Message Queues, and persistence in an Oracle database using XML Data Types.
The team at Sky had a very strong focus on Agile methods, particularly Test Driven Development. From February 2011 to June 2011 (5 months) London, United KingdomSenior Software Engineer @ Initially working as part of the Casino and Games team, my role consisted of delivering efficient, transactional RESTful web services for the processing of game interactions. Later, I become involved in the development of the Bonus System, an application allowing the generation of dynamic bonus offerings, and supporting the allocation of applicable domain events to the release of the bonus reward.
Key technologies include Java, Esper, RabbitMQ, Protocol Buffers, REST, Flex, Spring, ActionScript, BlazeDS, MySQL, Glassfish. From August 2010 to February 2011 (7 months) London, United KingdomSenior Software Engineer @ Brought in to solve challenging technical problems that were proving to be a bottleneck to delivery, and thereby free up the development team to focus on delivering business requirements, my role initially consisted of a mix of hands-on development, configuration of web-service security profiles, and reviewing existing code and tests.
As a result of some deficiencies discovered in both the development and test process, a large part of my role was ultimately focused on working closely with the PM and lead BA to assess the backlog, review current estimates and re-evaluate the release schedule. From June 2010 to August 2010 (3 months) Doha, QatarSenior Application Developer @ Designed, developed, documented and tested the Track Path Mapping and Categorization algorithms, as part of the Complete Traffic Data System (CTDS). This included designing the Oracle database schema, importing and processing daily train movements, cleansing and rationalizing the track data, determining which track sections each train utilized, and ultimately calculating the EMGTPA and corresponding category for each track section, based on a rolling average.
As part of the algorithm development, there was a consistent focus on performance optimization, to ensure that the data could be imported and processed within the necessary daily time frames, without impacting other applications.
This project was predominantly developed and delivered as an Oracle PL/SQL application, and utilized DBFit for testing. This also included a strong focus on both clean and readable code and strong documentation, in order to facilitate effective handover to support teams upon completion.
As part of a very small team, my responsibilities included independently developing and testing the algorithms, as well as liaising with DBAs, BAs and PMs to ensure requirements were met and the project deliverable was a success. From February 2010 to June 2010 (5 months) London, United KingdomSenior Business Analyst / Developer @ From August 2009 to November 2009 (4 months) Wiesbaden, GermanySenior Analyst Developer @ From November 2008 to August 2009 (10 months) London, United KingdomSenior Analyst Developer @ From August 2008 to November 2008 (4 months) London, United KingdomSenior Analyst Developer @ From March 2008 to August 2008 (6 months) London, United KingdomSenior J2EE Analyst Developer @ From July 2006 to March 2008 (1 year 9 months) London, United KingdomAnalyst Developer @ From April 2006 to June 2006 (3 months) London, United KingdomAnalyst Developer @ From June 2005 to March 2006 (10 months) Sydney, AustraliaJ2EE Analyst Developer @ From October 2001 to June 2005 (3 years 9 months) Sydney, Australia