People I've worked for...
What I'd love to work with...
- Java / Scala / Haskell
- Web 2.0 / AJAX / JSON
- HTML / xHTML / CSS (Cascading Style Sheets)
- Cloud Computing
- Schema-less databases such as MongoDB, Cassandra, CouchDB
What I do...
Languages
- Java / J2ME
- Groovy
- Haskell
- Scala
Enterprise technologies
- Spring
- Hibernate / JPA
- WebServices /SOAP/ REST
- MVC: Struts, Spring MVC, Spring Web Flow
- Direct Web Remoting (DWR)
- Oracle, MySQL, PostgreSQL
Frontend development
- JavaScript / AJAX / Web 2.0 / JSON
- Adobe Flex / Actionscript
- Web2.0 tool kits: GWT, JQuery, Yahoo! UI, Dojo
Software Methodologies
- Agile eXtreme Programming (XP)
- Scrum
Aptive Solutions - 2009 - Present
Senior Software Developer
Aptive is an in-house software development firm and consulting agency. Aptive has contracts with MasterCard and with one of Australia’s largest insurers Suncorp. Aptive has experience in building payment gateways and are active developers of test automation tools.MasterCard Project
Through Aptive, I did product development for MasterCard. Due to strict non-disclosure agreements I cannot reveal the nature of our work with MasterCard.
I was a Senior Software Developer on this project and co-led the front and backend development for this product. I was fully involved with the architecting, testing, developing and performance testing this product.
Skills/Tools used: Java, Groovy, Spring, Hibernate, Tomcat, Oracle, MySQL, MS SQLserver, Ant, Maven, Selenium, Canoo WebTest, DWR, JQuery, FunctionalJava, Spring Webservices, Various XML libraries.MadCow - Test Automation Tool
MadCow is a System Tester centric test automation tool for testing web applications. Test scenarios are defined by a powerful DSL and are data driven out of a spreadsheet and can be run in parallel. It dramatically reduces the load of manual regression testing.
Aptive built this product in-house and is planning to use it to leverage their consulting business. I co-led the development of this product.
Skills/Tools used: Groovy, Ant, Maven, Canoo WebTest, FunctionalJava, Excel Java APIsSuncorp Personal Insurance Claims Project
I consulted through Aptive to Suncorp Insurance on their personal insurance claims projects. This is a $20 million dollar project that brought together their various brands onto a single backend platform, Guidewire’ ClaimCenter for processing insurance claims. My role was to integrate their claims processing system into the other systems in the business such as their policy engine, document management, payment systems and web based Vendor Management system.
I also took a lead role in increasing the agile maturity in the team and streamlined their build process and continuous integration, drastically improving their build times and velocity.
Skills/Tools Used: Ant, Hudson (with Griding), Java, Spring, Axis, Tomcat, Oracle, Groovy, Unix Shell Scripting, Spring WebService, Jetty, Maven, SOAP UIATB - Automated Test Bench
I consulted through Aptive to Suncorp Insurance. My responsibility was to develop a tool for automated test regression.
I worked closely with the System Testers to develop for them a product that could test their various business scenarios. I fully automated the testing of the Sun Home claims system.
Skills/Tools used:Groovy, Ant, WebTest, FunctionalJavaWorkingmouse - 2007 - 2008
Consultant Senior Software Developer
Workingmouse was an advanced software consulting firm focusing on Java, Ruby, Scala and Haskell and with a strong emphasis on agile processes and research into functional languages. I consulted through Workingmouse to SAP Research and to the Smart Services CRC as a Senior Software Developer. My responsibilities included training developers in Agile methodologies, working on open source projects such as the testing framework Instinct and project work for our clients.PennyPointer
PennyPointer is a web 2.0 personal finance money manager and forecaster. Using Adobe Flex it makes personal finance management accessible to the layman user. It has a strong focus on having a simple and clean user interface. This project was developed in conjunction with Suncorp and the Smart Services CRC.
I was the lead developer on this project.
Skills/Tools used: Adobe Flex/ActionScript, Java, FunctionalJava, Spring, Hibernate, MySQL, Oracle 10g XE, Tomcat, WebLogic, Subversion, ReductioTestLight Weight Composition Mashup platform
LWC is a enterprise mashup environment that targeted the SAP Netweaver Portal. It allows consultants to dynamically drill out information from related systems through a web 2.0 interface and display that information in charts, tables or on a map. The LWC project won best project team 2008 for SAP Research and the product was demonstrated by SAP co-founder Hasso Plattner to 10,000 customers at the SAP worldwide conference (Sapphire).
Skills/Tools used: Java, JavaScript, GWT, Subversion, SAP Netweaver Portal, Microsoft Virtual Earth, RSS/ATOM parsing, CheckStyle, Emma, JUnit, JMock, Instinct.BirdsEye
BirdsEye is a location tracking mobile phone application that uses GPS and communicates to a central server. The mobile phone application has the ability to take photos and geo-tag them. It has a web client application that displays these photos on a Google map. Users can track each other and send messages via the web client or mobile application and see a full location history. The service was hosted on Amazon's EC2 cloud computing infrastructure. I co-led the development on this project.
Skills/Tools used: J2ME, Java, Spring, Hibernate, Velocity, HTML, JavaScript, XPath, XML, GeoRss, Subversion, Emma, GWT, Instinct, Canoo WebTest, DBUnit, MySQL, Amazon EC2, TomcatService Broker
The SAP Service Broker is a web services brokerage system that aggregates and choreographs web services into brokered services using BPEL (Business Process Execution Language). I was the lead developer on this project.
Skills/Tools used:Java, JavaScript, Spring (MVC & WebServices), GWT, SOAP, XMLBeans, Hibernate, MySQL, ActiveBPEL, Tomcat, JUnit, Instinct, EasyMock, CheckStyle, Emma, PerforceCSIRO e-Health Research Centre - 2006 - 2007
Senior Software Engineer
Health Data Integration
The HDI project is a commercialization of a research product. It has been developed with a strong software methodology with the focus on the client. It has been sold to hospitals and institutes within the health sector, such as the Baker Heart Institute and Queensland Health.
HDI is an application to link patient data between different and remote databases without revealing personal information. It is used by researchers for projects such as cancer studies. It is a client-server application with a Java Swing GUI frontend and a JBoss server backend.
My role on this project was to develop both server and client ends of the application, extending the domain model and building new client screens.
Skills/Tools used:Java, JBoss, Hibernate, Swing, Junit, Cruise Control, PMD, Checkstyle, CVS, PostgreSQL, Oracle, MySQL, MS SQL Server, MS Access, JDBC, Clover, EasyMock, SSLWeb Smart Systems - 2006 (2 months)
Senior Software Developer / Web Developer
Smart Practice
Smart Practice is a practice management solution for the accounting industry. It is a web hosted solution built on an AJAX/Java platform. Its web front end is an advanced AJAX desktop/dashboard with drag and drop applications. It uses the Yahoo! User Interface (YUI) and remotes the service layer using Direct Web Remoting (DWR).
I was the lead developer on this project.
Skills/Tools used:Java, Spring, Spring Web Flow, Hibernate / JPA, JUnit, EasyMock, Cruise Control for continuous integration, EMMA code coverage, Direct Web Remoting (DWR), Yahoo! User Interface (YUI) and extensions, JSP including Spring Tags, Tomcat, MySQL, Subversion.Department of Natural Resources & Mines (Queensland Government) - 2006
Software Developer (Contractor)
MERLIN SIE
The MERLIN Spatial Information Enquiry System is a web based Java based Geospatial Information System. It is used to manage NRMWs spatial mining and resource information. It harnesses an advanced Web 2.0/AJAX frontend and backends on to ESRI's ArcSDE/ArcIMS GIS software.
My role on this project was to implement the system requirements across all layers of the architecture. This included developing the persistence layer and database schema, developing service objects, developing struts actions, developing a rich Javascript/AJAX based user interface which included floating windows and wizards, enhancing the JSON framework for the data transfer, writing JUnit test and writing end user documentation.
Skills/Tools used:Java, JDBC, Oracle, Struts, AJAX, JavaScript, JSON, Apache Tomcat, JSP, HTML/xHTML, CSS, CVS, Eclipse, JUnit, Ant, Java SSHTools, Jakarta Connection pooling framework, TOAD, JNDI, ArcIMS, ArcSDE and Java APIThe University of Queensland - 2000 - 2006
Senior System Programmer / Senior Software Developer
Quotient
Quotient is an advanced, flexible system for the real time measuring, accounting and quota enforcing of Internet traffic, developed in house at The University of Queensland. Quotient performs per user billing and tracks which IP addresses a user has used. It implements a unique concept of quota pools, which allows a user to be billing to multiple departments. It handles more than 30,000 concurrent connections. Quotient has enabled departments to save money through managing their Internet usage.
The Quotient product has been so successful that it is was marketed to other Australian and overseas Universities. It has been sold to La Trobe University and has had strong interest from The University of New South Wales, The University of Southern Queensland and Edith Cowan University.
My role on this project was chief architect, developer and implementer. I was nominated for The University of Queensland's Pride in Work Award for my work on Quotient.
Skills/Tools used:Perl, MySQL, xHTML, CSS, UML, Java, Apache and SubversionWebPrism
WebPrism is a web-based central services management system.
Skills/Tools used:Perl, HTML, CSS, Javascript, MySQL, Apache, Subversion, IngresNetflow Internet Monitoring System
In this project I built a high speed netflow processing tool. The purpose was to account and monitor all Internet activity giving detailed reports on networks, ports and protocols. This project was written in Perl and C to enhance performance. I developed a custom netflow collector that allowed for significant compression to the data that was being collected. This was built for Cisco routers and captured data for over 60,000 IP addresses.
Skills/Tools used:Perl/XS, C, Oracle, CVSInternet Access Software Infrastructure
In my work for UQconnect - The University of Queensland's commercial Internet Service Provider, I have developed systems for the provision of its Internet services such as the infrastructure for the authentication and accounting of its broadband, wireless and dial up services. I have also developed websites where users can access their account details. UQconnect services 35,000+ students, 7000 staff and 8000 commercial clients.
Skills/Tools used:Perl, C++, Radius, PostgreSQL, xHTML, CSS, MySQL, Subversion