Dave Morrissey

Java, Web and Android Developer

Profile

  • Over ten years experience of the full lifecycle of enterprise application development, six years in Agile teams.
  • Architect and lead developer for several successful projects. Mentor to junior developers.
  • Comfortable with front and back end development. I enjoy working closely with test, ops, marketing and support teams.
  • Focus on producing robust, scalable and maintainable applications. Passionate about code quality and attention to detail.
  • Self motivated and a good team player. Talented troubleshooter and problem solver.
  • Android developer with six published apps and over half a million downloads.

Work History

  • Visalia MobileVisalia Mobile

    From the start of my career I used side projects as an opportunity to learn new skills. In 2011 I started Visalia Mobile, a freelance consultancy business, and began working on various projects including websites and Android apps in my spare time, for clients and for myself.

    • Sundroid
      An Android app that calculates a range of astronomical information including sunrise and sunset times, useful for photography and outdoor activities. Android's most popular sun calculator with over 450,000 downloads.
    • Litepearl
      A new Android app for Brightpearl customers that provides mobile and offline access to a variety of account data including products, contacts and orders. Available for beta.
    • Fourth Mate
      An issue tracking solution for use on construction, maintenance and restoration projects. I built an accompanying Android application to view and create defects and upload annotated photos, designed the web user interface, and worked with a team of two others to build the website and REST APIs.
    • Read Write Phonics
      An app designed to teach pre-school children the basics of reading and writing using phonics, showing how English words are build up from 44 phonemes, and their most common spelling. Also teaches children how to write letters with a demonstration animation, before the child traces the shape and their attempt is scored for accuracy.
    • Foundation Maths
      An introduction to mathematics for UK Foundation Stage and Key Stage 1. Teaches children to count, write numbers, complete sums and recognise number patterns.
  • BrightpearlBrightpearlJan 2013 - May 2014

    Brightpearl is a multichannel retail management SaaS product for small to medium businesses. I worked on the eBay integration and a variety of changes to the architecture for improved reliability and performance. My role included mentoring junior team members, leading design reviews, and maintaining and improving the continuous integration and release processes using Jenkins, Maven plugins and Artifactory.

    • Architected and implemented a new security model for the Java REST API, allowing individual control of registered developers and their applications by Brightpearl and customers. Developed the registration and app submission site for developers and administration site for Brightpearl, using Laravel backed by REST APIs written in Java.
    • Revised timezone support in Java services and PHP from one per server, to any timezone on any server. This project fixed daylight savings bugs, enabled full support for international customers, and reduced hosting costs by over 30%.
    • With an Agile team, extended existing eBay integration to support publishing of listings from the product catalogue held in Brightpearl. Improved efficiency to support customers with thousands of listings and hundreds of sales per day.
    • Led development of a bulk product import and eBay listing publisher tool. Built as an AngularJS and Bootstrap site on top of a Spring MVC application running in Jetty. Highly concurrent for maximum performance.
  • NokiaNokia MusicMay 2012 - Dec 2012

    My work for Nokia primarily involved building and extending services in the Nokia Music REST API platform, and integrating these services with each other. In addition I made performance, reliability, maintenance and monitoring improvements to some of the existing services, and extended the functionality of content catalogue ingestion tools.

  • Deutsche TelekomDeutsche Telekom UKAug 2008 - May 2012

    My team completed a variety of projects, including high traffic websites for mobile phones, services to support personalised content delivery, and browser based business systems.

    • Built a web application used to manage a device and browser attributes database that controls rendering of websites across a wide range of mobile devices. Uses JQuery to enable inline editing similar to a Google Docs spreadsheet.
    • Architected and led development of a web based highly concurrent financial application for rating, settlement and reporting of content sales including music, videos, and mobile apps. Built with Spring, Hibernate, JSP and JSTL. Handles millions of transactions daily, and generates over one hundred reports in different formats for each third party.
    • APIs, business logic, load distribution and database access layer of a multi-threaded distributed Java service that sends notifications of new content to idle screen widgets. Designed for minimum memory and CPU usage under high load, with automated failover and horizontal scalability. Supports monitoring hundreds of endpoints and sending notifications to millions of devices.
    • Developed a Java implementation of the OAuth specification, designed to be dropped into any application with minimal Spring configuration and provide authenticated communication between back end components.
    • Implementated a generic framework for highly configurable RSS feed and search widgets, allowing new widgets to be created by content managers without development effort.
    • Ongoing development process improvements including Oracle to MySQL migration, Maven dependency management, and addition of regression testing to integration builds.
  • T-SystemsT-SystemsJan 2008 - Jun 2008

    T-Systems provides bespoke software solutions for a variety of large corporate and public sector clients. My work involved development of intranets based on the Day Communiqué CMS for DaimlerChrysler and Volkswagen UK. This contract required me to quickly become confident with an unfamiliar set of languages and frameworks.

  • Centennial SoftwareCentennial SoftwareOct 2005 - Jan 2008

    Centennial develops IT asset management and endpoint security solutions. I worked on the full lifecycle of boxed products, including planning, documentation, code development, unit testing, build processes and installation. For two projects I was lead developer and responsible for a small team. Both projects were successfully delivered on time.

    • 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.
    • 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.
    • 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.
    • 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.
    • 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.
    • Configuration of the Linux servers hosting Centennial's online software catalogue, and development of tools for importing and maintaining the data.
  • GCap MediaGCap MediaJun 2001 - Sep 2005

    My team developed websites and business systems for GCap Media's DAB Digital Radio stations, and 32 local stations. I played a key role in the planning, design, development, deployment and support of many projects.

    • 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.
    • 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.
    • 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.
    • 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.

Other Projects

  • Subsampling Zoom Image View
    Designed to solve the problem of displaying large images on Android devices with limited memory, this open-sourced library supports zoom and pan gestures, and a variety of extra features such as animation and easy extension with additional overlays aligned with the image.
  • Brightpearl Java Client Library
    An open-sourced Java library designed to make integration with the Brightpearl public API as simple as possible. Supports automatic re-authentication and rate limiting, with a flexible and forwardly compatible API for sending requests.
  • Sunrise Sunset Map
    Sunrise and sunset calculator based on Google Maps and using AJAX to easily calculate sunrise and sunset times for any location. Timezones are selected automatically in many countries and city and town names are available worldwide.
  • goFLYING
    Online flight planning tool and GPS log viewer for private pilots, with weather forecasts and a flight sharing system. This site used JavaScript and AJAX extensively to create interactive pages, and integrated with Google Maps and Google Earth.
  • Rhona Beck Studio
    An eCommerce website for an art sales company. This pre-dated Magento and other online retail management products, so the site included its own CMS, basket and checkout, and integrated with the HSBC payment gateway.

Expertise

Java Technologies
  • Java 1.4 - 1.7
  • JPA, Hibernate, JDBC, SQL
  • JEE, J2EE, Servlets, Taglibs
  • Spring, Struts, JSP, JSTL
  • Android Applications
  • Swing, Applets
Internet and XML Technologies
  • HTML, CSS, Bootstrap, Accessibility standards
  • JavaScript, JQuery, AJAX, JSON, AngularJS
  • XML, XSLT, XML Schema (XSD)
  • REST, SOAP, WSDL, SOA
  • OAuth, Social Media APIs
  • PHP, Laravel
Build Systems, Testing and Source Control
  • Maven, Ant
  • JUnit, JMeter, Mocks, Selenium, Cucumber
  • Git, CVS, SVN
  • Jenkins, Bamboo
  • Jira, Mantis, Bugzilla, HP QC
Servers and Databases
  • Tomcat, Jetty, JBoss
  • Apache, IIS
  • MySQL, SQL Server, Oracle
  • MongoDB, CouchDB, ElasticSearch, Lucene
  • RabbitMQ, ActiveMQ, Hazelcast
Development Processes
  • Scrum, Agile, TDD, Kanban
  • Continuous integration, rapid deployment
  • Use cases, functional specifications
  • Technical documentation
Operating Systems
  • OS X
  • Linux
  • Windows