Dave Morrissey

David Morrissey

Full stack Java Lead/Architect

Profile

Architect and lead developer for several successful projects. Experienced with greenfield and established projects.

Full stack developer, experienced building APIs, websites and mobile apps from conception to production.

Passionate but pragmatic about beautiful, well-tested code.

Talented and tenacious troubleshooter and problem solver.

Always keen to share knowledge and learn from teammates, and try modern languages and frameworks.

I enjoy working closely with test, ops, marketing and support teams.

Technology

I am a full stack architect and developer with a focus on Java server side development, and specialise in REST
API design and integration. I have experience configuring and deploying to cloud hosting providers and bare metal
Linux environments. I have built native and hybrid Android and iOS apps and have strong front end coding
skills, with an eye for design and UX.

Below is a sample of the technology I have worked with.

Server Side

Java, JEE, Spring, Spring Boot, JSP, JSTL

JPA, Hibernate, JDBC, SQL

Node.js, Express (MEAN)

PHP, Laravel (LAMP)

Ruby, Sinatra

Web & Mobile

HTML5, CSS, ES5, ES6, TypeScript

React, Angular 1 & 2+, jQuery, D3

NPM, Gulp, Bower

Native Android

Cordova for Android and iOS

Build & Test

Gradle, Maven, Ant

GitHub, GitLab, Bitbucket

Jenkins, CircleCI, Bamboo

JUnit, JMeter, Mockito, Hamcrest

Jasmine, Cucumber, Selenium

Deployment

AWS, AppEngine, Heroku, Linode, Chef

Docker, NGINX, Apache, Tomcat, Jetty

MySQL, SQL Server, PostgreSQL

MongoDB, CouchDB, ElasticSearch, Lucene

RabbitMQ, ActiveMQ, Hazelcast

Work History

Consultant Technical ArchitectRegisters of ScotlandJan 2018 - Present

RoS maintains 18 public registers of land and property for Scotland. I am Technical Architect for
the team responsible for services used by solicitors and lenders to submit changes to the registries.
I am also working on planning migration of document scanning and digital storage to new systems.

FreelancingApr 2017 - Dec 2017

Following the acquisition of Screen Time Labs I took a sabbatical to work on freelance projects.

Silicon Safe

Silicon Safe provides a secure password storage service using custom hardware. I built a
multi-tenant REST API wrapper and registration site for the service using Spring Boot and
Angular 4, running in Docker using Amazon's Elastic Container Service and various other AWS
services. I also built a new WordPress marketing site for the company.

BoatRemote

BoatRemote is a personal project started with a former colleague. We are building a connected boat
device, featuring GPS tracking, telemetry, alerts and remote control of equipment. I have implemented the
backend REST APIs, encrypted communication protocol, and Angular 4 front end. Cordova is used to wrap the
webapp for Android and iOS, with added Bluetooth functionality.

Principal Software EngineerScreen Time LabsNov 2015 - Mar 2017

Screen Time helps parents monitor and limit their kids' use of phones and tablets. As a
multi-discipline full stack developer I worked on new features and enhancements in the Java backend services
and REST APIs, web application, internal tools, and hybrid native/Cordova client apps for Android and iOS.

Added support for logging in with email address and password, alongside the existing Google and Facebook authentication.

Improved Stripe integration and added support for subscription payments using PayPal and iTunes.

Ported the Android parent's remote app over to iOS using Cordova. Integrated Firebase and Fabric analytics in both platforms.

Improved and redesigned internal customer support tools and dashboards. Made various performance and efficiency improvements to reduce hosting costs by 50%.

Consultant Integrations ArchitectBrightpearlJan 2015 - Nov 2015

I was invited back to Brightpearl as an architect. My role involved designing and building extensions to the core
platform, and supporting partner developers to do the same. I also lead a small internal team of developers and testers,
and assisted other teams with the architecture of their projects.

Supervised and assisted with the development of an Authorize.net payment processing app. I worked closely with
the third party developer, then took over the project, and prepared it for internal deployment.

Developed two add-on apps for the Brightpearl platform - an integration with Alibaba Wholesale for
streamlined product sourcing, and a shipping costs calculator.

Restructured microservices to a standardised pattern that allowed REST calls which previously
involved several hops between microservices to be executed transactionally within a single service.

Trained and supported a new offshore team as they developed an integration with Mailchimp.

Extended API authentication to support new Magento integration and an OAuth-style app installation flow.

Tech LeadObrussaOct 2014 - Dec 2014

I joined this new startup as the first permanent employee. I worked to establish good development practices,
prepare a prototype for trial, deploy the prototype on cloud hosting, and plan the architecture of the first
public release.

FreelancingJune 2014 - Sep 2014

Following the end of my first Brightpearl contract I took a break to look for a senior permanent position, and
used the opportunity to learn new skills working on freelance and personal projects.

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

An Android app for Brightpearl customers that provides mobile and offline access to a variety of
account data including products, contacts and orders.

Pinpoint Works

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.

ConsultantBrightpearlJan 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%.

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.

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

ConsultantDeutsche TelekomAug 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.

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

Senior DeveloperCentennial 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.

Web DeveloperGCap 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.

Other Projects

Subsampling Scale 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.

Sunrise Sunset Map

Sunrise and sunset calculator based on Google Maps, allows one click lookup of sun and moon times
for any location. Uses Google's APIs to look up location names and time zones.

Clare Hammond Website

Revised the design of pianist Clare Hammond's website for mobile, tablet and desktop. Designed new
responsive image gallery and audio player.

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.

goFLYING

Online flight planning tool and GPS log viewer for private pilots, with weather forecasts and a flight sharing system.
Originally built in 2005, this site was an early adopter of AJAX, 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.