- Wide experience of Java and J2EE development, from multi-threaded console programs to web applications.
- Proven engineering team leading ability on three successful projects.
- Experience of the full project lifecycle of internal business systems, public websites and boxed products.
- Focus on producing robust, scalable applications, working on own initiative or as part of a team.
- Use of new technologies to create interactive and visually engaging internet applications.
Curriculum Vitae
Profile
Expertise
Java technologies
- Java 1.4, 1.5, 1.6
- JDBC, SQL
- J2EE, Servlets, Taglibs
- Spring, Struts, JSP, JSTL
- Android Applications
- Swing, Applets
Internet and XML Technologies
- XHTML, CSS, Accessibility standards
- JavaScript, AJAX, DOM scripting
- XML, XSLT, XML Schema (XSD)
- REST, SOAP, WSDL
- OAuth
- PHP, ASP
Build Systems, Testing and Source Control
- Eclipse
- JUnit, Maven, Ant, JMeter, InstallShield
- CVS, SVN, VSS
- Mantis, Bugzilla, TestDirector, HP QC
Servers, Databases & Content Management
- Tomcat
- Apache, IIS
- MySQL, SQL Server, Oracle
- Day Communiqué CMS
Planning and Documentation
- Functional specifications
- Use cases, screen mockups
- Technical documentation
- User manuals
Operating Systems
- Windows - 2000, XP, 2003, Vista
- Linux - Red Hat, Fedora, CentOS
Professional experience
-
Aug 2008 - Present: T-Mobile ltd on behalf of EXPW Consulting (Contract)
Web'n'Walk is a set of internet services available on T-Mobile phones, designed to bring personalised content from news sites and social networks to customer's idle screens and browser home pages. The back end consists of a suite of interconnected applications that support different aspects of the service. My achievements include:
-
APIs, business logic, distribution management and database access layer of a multi-threaded
distributed application that sends notifications of new content to idle screen
widgets. Designed for minimum memory and CPU usage under high load, with automated failover.
Java, JDBC, Spring, Jersey, REST, JGroups, Maven, JUnit, JMeter -
Web application for external developers to submit widgets for review, including
implementation of and integration with internal widget repository REST API.
Java, J2EE, Spring, Jersey, REST, JSTL, JSP, HTML, JavaScript, AJAX -
Java implementation of OAuth specification, designed to be dropped into any
application with minimal Spring configuration and provide authenticated
communication between back end components.
Java, Spring, OAuth, Jersey, JUnit -
Implementation of a generic framework for highly configurable RSS feed and search
widgets, allowing new widgets to be created by content managers without development
effort.
Java, J2EE, JDBC, Spring, JUnit, JMeter -
Ongoing development process improvements including Oracle to MySQL migration,
Maven dependency management, and addition of regression testing to integration
builds.
Java, J2EE, JDBC, Spring, Oracle, MySQL, JUnit, CVS -
Testing framework and Ant build system for Nokia Web Runtime widgets, supporting browser
based development and simple compilation of widgets for multiple languages and environments.
W3C Widgets, Nokia Web Runtime Widgets, HTML, JavaScript, CSS, Ant
-
APIs, business logic, distribution management and database access layer of a multi-threaded
distributed application that sends notifications of new content to idle screen
widgets. Designed for minimum memory and CPU usage under high load, with automated failover.
-
Jan 2008 - Jun 2008: T-Systems ltd (Contract)
The Systems Integration department of T-Systems provides bespoke software solutions for a variety of large corporate and public sector clients. My work involved development of bespoke intranet solutions based on the Day Communiqué CMS for DaimlerChrysler and Volkswagen UK.
Java, JDBC, JSP, HTML, CSS, JavaScript, Eclipse, SVN, Day Communiqué -
Oct 2005 - Jan 2008: Software Engineer, Centennial Software ltd
Centennial develops IT asset management and endpoint security solutions. I have worked on the full lifecycle of two new Java boxed products, including planning, documentation, code development, unit testing, build processes and installation. The core of each product is a J2EE web application using the Struts MVC framework, which is deployed by InstallShield with a self-contained JRE and Tomcat. My achievements include:
-
Full lifecycle of a new budget software audit product. As lead developer, I produced documentation
and specifications, managed the development team, and built the J2EE web application component.
Java, J2EE, JDBC, SQL, Struts, Taglibs, JSP, XHTML, CSS, JavaScript, Ant, Tomcat, IIS, CVS -
Planning, use cases, schema design, core business logic and user interface development for a new
software licence management product. I also implemented a flexible modular build and unit testing
system using Ant, JUnit and batch scripts, and managed development of the installer.
Java, J2EE, JDBC, SQL, Struts, Taglibs, Servlets, JSP, Applets, XHTML, CSS, JavaScript, AJAX, Ant, JUnit, Tomcat, IIS, SQL Server, CVS -
Development of a Swing application used to change various settings within a product installation,
including Tomcat ports, database connections, logging levels and internet proxy settings.
Java, Swing, CVS -
Database access layer testing framework. Allows a temporary database and connection pool to be
established then dropped when each test is complete, so each test starts from a known state.
Java, JUnit, JDBC, SQL Server -
Detailed use case documentation and user interface redesign for the web reporting tool of Centennial's
flagship asset management product, focusing on ease of use and standards compliance.
Use cases, XHTML, CSS, Accessibility standards -
Configuration of the Linux servers hosting Centennial's online software catalogue, and development of
tools for importing and maintaining the data.
Java, JDBC, SQL, MySQL, Tomcat, Apache, Linux, CVS
-
Full lifecycle of a new budget software audit product. As lead developer, I produced documentation
and specifications, managed the development team, and built the J2EE web application component.
-
Jun 2001 - Sep 2005: Web Developer, GCap Media plc Future Technologies team
The Future Technologies team develops in-house business systems for GCap Media's DAB Digital Radio stations, and 32 local stations. I played an active role in the planning, design, development, deployment and support of many projects, large and small. My achievements include:
-
Web application front-end for an in-house CMS powering 32 websites. Provides a simple interface for
creating multi-platform content, creating links between articles, and associating images, audio and
video. Includes an applet that allows images to be cropped, rotated and resized without software,
and an AJAX drag and drop screen for adding content to websites.
Java, J2EE, JDBC, SQL, RMI, JSP, XML, XSLT, HTML, CSS, JavaScript, AJAX, Applets, VSS -
Planning, schema design, database access layer, event processing logic and administration web
application for a multi-threaded Java console application that aggregates schedules and playout system
events for all stations in a central database.
Java, J2EE, JDBC, SQL, SQL Server, RMI, Struts, Taglibs, JSP, HTML, CSS, JavaScript, VSS -
Database access layer, business logic and user interface development for an online music download
service. XSLT is used to allow re-branding for third-party customers. Winner of the 2004 ntl
Commercial Radio Technical Innovation Award.
Java, J2EE, JDBC, SQL, JSP, XML, XSLT, XHTML, CSS, Tomcat, VSS -
Schema design, database access layer, message processing and online user interface for GCap's SMS system,
supporting keyword responses, music requests, marketing and premium rate SMS. Winner of the 2003 ntl
Commercial Radio Technical Innovation Award.
ASP, SQL, SQL Server, HTML, CSS, IIS, VSS
-
Web application front-end for an in-house CMS powering 32 websites. Provides a simple interface for
creating multi-platform content, creating links between articles, and associating images, audio and
video. Includes an applet that allows images to be cropped, rotated and resized without software,
and an AJAX drag and drop screen for adding content to websites.
-
Personal Projects
In order to learn new technologies and techniques by using them in real-world applications, I have developed some websites in my spare time. This has given me a greater variety of skills and experience that I have applied to my daily work. These sites are hosted on my own Linux server, on which I have configured Java, Apache, Tomcat, and MySQL, plus SMTP, POP3, FTP and DNS servers. I use Eclipse IDE, with CVS or SVN version control and Ant build scripts.
-
Art sales website. Includes a CMS that allows administrators to add, edit and remove artworks, enter artist
biographies, and manage orders.
Java, J2EE, JDBC, SQL, Struts, JSP, XHTML, CSS, e-Commerce -
Online flight planning tool and GPS log viewer for private pilots. This site uses JavaScript and AJAX
extensively to create interactive pages, and integrates with Google Maps and Google Earth. An applet for
decoding aviation weather forecasts is included. See www.goflying.org.
Java, J2EE, JDBC, SQL, Struts, Servlets, Taglibs, JSP, Applets, XHTML, CSS, JavaScript, AJAX, SOAP, Axis, WSDL, XML Schema (XSD) -
Map-based sunrise and sunset calculator. Uses AJAX and integrates with Google Maps.
See www.sunrisesunsetmap.com.
Java, J2EE, Spring, JSP, JSTL, XHTML, CSS, JavaScript, AJAX -
Android sunrise and sunset calculator application.
See www.sundroid.co.uk.
Java, Android
-
Art sales website. Includes a CMS that allows administrators to add, edit and remove artworks, enter artist
biographies, and manage orders.