Matt Dunn

A dedicated and highly skilled senior UI / Full Stack developer and tech lead with a wide range of commercial experience building websites and web apps over the last 25+ years. Expertise includes designing and developing rich, progressively enhanced, responsive, accessible websites integrated with complex backend systems. Experienced in technical design and development; team leading and mentoring; working closely with stakeholders, BAs, solution architects; requirements and estimation; defining development workflows, roles and responsibilities and developing enterprise and startup applications through to production. Always striving to push best practices including accessibility, user experience, security, responsive design, automated testing and code review.

Skill highlights

  • JavaScript (FP / OOP / ES6+)
  • TypeScript
  • Node.js
  • React
  • Redux
  • CSS-in-JS / SASS / CSS
  • HTML5
  • Webpack
  • AWS
  • BDD / TDD

Key skills summary

  • JavaScript (inc. FP / OOP / ES6+), TypeScript, Node.js
  • React (inc. hooks, HOC)
  • Redux, Saga, Flux implementations
  • Express, Nginx, Apache
  • AWS (inc. S3, CloudFront, Serverless: Amplify, Lambda, API Gateway, Cognito, DynamoDB)
  • RESTful web services
  • CSS-in-JS / Styled components, SASS, CSS (BEM / OOCSS / modules)
  • HTML5, XML / XSLT / XSD
  • Universal, PWA
  • BDD (Cucumber / Gherkin) / TDD, Jest, Enzyme, jest-axe
  • BrowserStack, Cypress, Protractor, Selenium
  • CI / CD (Jenkins, Amplify Console, GitHub workflows, Travis, TeamCity)
  • Webpack (inc. custom plugin dev), Parcel, Lerna, Grunt / Gulp
  • CouchDB, PouchDB
  • Storybook, Swagger / OpenAPI, JSDoc / TypeDoc
  • Responsive, Progressive enhancement, SEO, Accessibility WCAG 1/2, i18n / l10n with translation workflows
  • Git, Subversion
  • Sonar, Security considerations (OWASP)
  • PHP 5+ (FP / OOP)
  • JIRA, Agile (Scrum, Kanban)

Other skills

  • SQL Server / MySQL
  • Photoshop
  • IIS
  • Solr
  • Lucene
  • AngularJS
  • Browserify
  • .NET (C#) / ASP.NET

Testimonials

Matt is one of the best web developers I have ever worked with. His knowledge of JavaScript in particular is excellent, better than anyone else I have ever known personally.

As a bonus to his excellent client side skills (CSS, HTML, graphics, etc), he has excellent Object Oriented Programming skills and we have constantly worked on large web frameworks together.

His productivity is that of two or three others!

Matt is one of the most experienced people I have ever worked with. His ability to understand all technological aspects of a project and find the right path hidden between complex requirements and tough deadlines without compromising the quality of the teams output is outstanding.

Responsible for managing a team of UI developers he achieved quality by leading as an example. He's an incredibly skilled javascript and UI developer and strives for excellence in his and his teams code.

Working with Matt is a real pleasure, but also a learning experience for everyone willing to understand how to plan and deliver great code.

I worked with Matt in two separate occasions, at Tesco and IXXUS. Matt is a natural born leader, he is extremely intelligent, and very aware of his surroundings. We collaborated on Tesco’s presentation layer architecture, and produced one of the best work environments I had the chance to work in. Matt is always happy to listen to other people’s ideas, but not scared to make his views clear. Matt is a hard, passionate worker and has a rare in-depth understanding of technology, mainly UI Web technologies.

Recent key project history

Property Rental Workflow & DAM

Role
Technical Lead / Senior Full Stack Developer

Architected, designed and developed a serverless product in AWS to allow users to build complex WYSIWYG designed documents and forms driven by schemas with user/role document permission ACLs. Custom workflows could be used for end user data collection and signatures (using canvas). Documents could have artifacts such as photos and videos attached and completed offline by agents in the field and automatically synced when online. Worked closely with domain experts to build the feature backlog and developed the application from prototype with UX validation and end-user testing.

Key skills/technology

  • React
  • Redux, Saga
  • TypeScript / ES6+
  • Node.js
  • AWS (Amplify Console / CLI, Lambda, API Gateway, Cognito, DynamoDB)
  • PWA
  • Webpack
  • Jest + Enzyme, jest-axe
  • Cucumber / Gherkin
  • Cypress / BrowserStack
  • Material-UI
  • JIRA
  • Storybook / TypeDoc / Swagger
  • GitHub workflows
  • Sonar

Wiley

Role
Technical Lead / UI Team Lead / Senior Full Stack Developer

Led a team to design and develop a set of enterprise applications to workflow and publish complex schema driven academic articles with formulas and rich media. Worked closely with product stakeholders, solution / platform architects, BA, UX, test and external backend teams in multiple time zones. The project was made up of 3 main applications:

Wiley Proofing Tool

Designed and developed a publishing proofing tool to allow production editors to coordinate the authoring, peer review and updating of articles within journals. Annotations were used to request, discuss and finalise modifications to an article through tasks and workflows before publication using the Wiley Publishing Platform and Content Preflight.

Wiley Publishing Platform

Designed and developed a publishing platform that integrated with complex state machine for workflow and RESTful APIs for document status, metadata and content. Articles could be marked up and annotated with rich text comments and tasks pushed through multi-user workflows. Images and other media could be attached, annotated and pushed through their own workflows.

Wiley Content Preflight

Designed and developed an article preflight tool for production editors which aggregated data from multiple systems made up from over 170 service components and presented the current article metadata and monitored the status of all related assets and media. Designed and built authenticated API gateway using JWT in Node to aggregate and transform data from microservices. Worked closely with end users, stakeholders, BA and architects to deliver the UI from wireframing and prototype through to delivery.

Key skills/technology

  • React
  • Redux, Saga
  • TypeScript / ES6+
  • Node.js
  • Styled Components
  • OOCSS/BEM
  • SASS
  • Express + Nginx
  • AWS (S3, CloudFront)
  • Webpack (with custom plugins)
  • Jest + Enzyme, jest-axe
  • Cypress / BrowserStack
  • Universal / SSR
  • PWA
  • Sonar
  • JIRA
  • Jenkins
  • WCAG 1.0/2.0 / i18n / l10n
  • MathML
  • Nexus

Confidential Project (Entity Network Product)

Role
Technical Lead / Senior Full Stack Developer

Developed a new mobile first SaaS product for the finance sector. Designed and built a JWT authenticated API gateway with Node to transform, aggregate and decorate data. Consumed data was represented in the UI with React components displaying entity network diagrams using Canvas to allow users to reason about connections and discover more detailed information with dynamic overlays. PouchDB was used to manage user data and synced to CouchDB backend to provide a robust offline/mobile experience with collaboration and conflict resolution.

Key skills/technology

  • React
  • Redux
  • TypeScript / ES6+
  • PouchDB / CouchDB
  • Express + Nginx
  • AWS
  • PWA
  • Node.js
  • Material-UI
  • Webpack
  • Jest + Enzyme, jest-axe
  • Cypress / BrowserStack
  • Cucumber / Gherkin
  • JIRA
  • GitHub workflows
  • Storybook / TypeDoc / Swagger
  • Sonar
  • WCAG 1.0/2.0 / i18n / l10n

Component Library (Lerna monorepo)

Role
Technical Lead / Senior Developer

Developed a monorepo for company wide component / library / design token development, distribution and reuse. GitHub workflows were used for CI/CD and documentation generated using Storybook / TypeDoc. CD was used to deploy documentation to an internally available server, publish updated packages to a private npm registry, generate GitHub release notes and changelog and versioning inferred from conventional commits. Custom Storybook components were created to provide consistent documentation for component versioning information and installation instructions.

Key skills/technology

  • Lerna
  • Yarn + workspaces
  • TypeScript
  • Storybook / TypeDoc
  • GitHub workflows
  • React
  • Jest + Enzyme, jest-axe
  • Cypress
  • Sonar
  • WCAG 1.0/2.0 / i18n / l10n

Needle (Cross repository document search and preview product)

Role
Technical Lead / Senior Full Stack Developer / UXD

Designed and developed a new SaaS product to provide sophisticated search and refinement features to locate and preview documents across multiple repositories. Included a set of analytic / charting tools to find duplicate and close match documents and monitor content statistics. Search results included document specific metadata with preview and Google Images style view with inline preview. Worked closely with end users, BA and domain experts to design and develop from prototype and was responsible for putting together the development process including PR / review, CI, automated testing strategies and feature flow and status in JIRA.

Key skills/technology

  • React
  • Redux
  • TypeScript / ES6+
  • Node.js
  • Styled Components
  • WCAG 1.0/2.0 / i18n / l10n
  • CouchDB
  • Universal / SSR
  • PWA
  • Webpack
  • Jest + Enzyme, jest-axe
  • Sonar
  • Cypress
  • JIRA
  • Jenkins
  • Express + Nginx
  • AWS (S3, CloudFront)

Other key projects

Penguin Random House / DK Asset Library

Role
Technical Lead / UI Team Lead / Senior Full Stack Developer

Developed a DAM and search interface integrated with Alfresco ECM to allow company-wide content discovery and re-use of assets. Part of the product was built around a rich image library search interface (similar to Google Images) with expandable previews which allowed the user to navigate between the asset and its use within products and spreads. In addition, a number of tools were developed to allow the user to define complex rules when exporting assets for re-use in new products which included a multi-step process for defining relationships between assets.

Key skills/technology

  • Backbone / Underscore
  • jQuery + custom plugins
  • OOCSS / BEM
  • RequireJS / AMD
  • SASS (+Compass)
  • Grunt (including Maven integration, JSHint, JSCS)
  • Node.js
  • Mocha + Chai, Sinon
  • PHP
  • Handlebars
  • FreeMarker
  • Alfresco ECM

Tesco.com

Role
Technical Lead / UI Team Lead / UI Architect / Senior Full Stack Developer

New Grocery Superstore

Technical / team lead for a group of 15+ UI developers. Designed enterprise MVC architecture to produce a highly accessible website. The architecture separated the business services from the UI using an object based entity data model that was serialized using .NET into XML and transformed into XHTML using XSLT. Progressive enhancement techniques were used to add a behaviour layer using an OO JavaScript framework I developed to provide rich user experience and AJAX features. I was involved from the initial conceptual design through to requirements gathering, wire-frame development, technical analysis, and development. In addition, ongoing liaison with RNIB was put in place in order to achieve ‘See it Right’ accreditation.

Tesco Direct

Developed the Tesco Direct website built on .NET using XSLT to produce semantic XHTML mark-up. The website was designed to be lightweight with a thin unobtrusive JavaScript behavioural layer and reached a high level of accessibility. Also designed and developed a flexible CMS to allow an external teams to produce rich marketing content.

Tesco.com Superstore

Led the UI team to re-develop the existing superstore website from legacy thick ASP to a .NET (C#) framework making extensive use of W3C web standards, XSLT, XHTML, CSS and JavaScript to provide a rich, semantic and accessible interface. I was heavily involved in requirements gathering, user experience testing, technical design and development.

Tesco.com 'Extra'

Instrumental in gradually moving portions of the Tesco websites from tag soup to compliant semantic XHTML mark- up with a strong emphasis on accessibility and separating style and behaviour using CSS and JavaScript with progressive enhancement techniques.

Tesco Recipes / Clubcard Deals

Lead developer on the Recipes and Clubcard deals websites. These were built upon the initial architecture designed as part of the ‘Extra’ development. Endeca was used as a data source and .NET used to render the pages in XHTML.

Key skills/technology

  • .NET (C#)
  • XML / XSLT / XSD
  • JavaScript (FP / OOP / AJAX)
  • XHTML
  • CSS
  • JUnit
  • MS SQL Server
  • Endeca
  • WCAG 1.0/2.0

20th Century Fox Television

Role
Technical Lead / Senior Developer

Worked on a number of key TV programme websites transitioning to mobile first responsive websites. Worked closely with the core development team to provide technical design and development support and decisions to help Fox move towards a more maintainable, testable, componentized platform.

Key skills/technology

  • PHP
  • jQuery + custom plugins
  • Less
  • Grunt
  • Mocha + Chai, Sinon
  • WCAG 1.0/2.0

Press Association

Role
Technical Lead / Senior Developer

PA required a new editorial system that could unify and replace an antiquated set of interfaces into a single easy to use website to create, monitor, edit and workflow news stories and publish content to syndication subscribers. The published content could be customised for a specific customer. The interface provided a rich text editor for copy creation with editorial workflow and a mechanism for searching content for research / reference. It also provided a realtime feed of stories relevant to the user based on content, role, workflow status and enrichment.

Key skills/technology

  • JavaScript (FP / OOP)
  • XForms
  • WebSphere
  • Java
  • XML
  • jQuery
  • HTML5
  • CSS
  • Jenkins
  • JUnit

Dods

Role
Technical Lead / UI Architect / Senior Full Stack Developer

Dods Training Journal

Designed and built a decoupled presentation tier in PHP using an XML data model defined using XSD and using XSLT to render the view. Through an abstraction layer, the presentation tier provided a mechanism to use mock services for development / prototyping / functional testing or connect to MarkLogic, MySQL and other services. Alfresco ECM was used for content management which was published into MarkLogic. The user experience was refined through the use of a clickable prototype which allowed easy comprehension of the functionality of the website and allowed the sales team to start selling the product before back-end services had been completed.

Dods Legislation Tracker

Continuation of the framework developed for the Training Journal project. This project dealt with complex data models which described the structure of political Bills. These Bills needed to be rendered in a way that not only closely matched the original printed version of the Bill but also provide rich interactions including the ability to view the complete history and track changes of the Bill clause by clause. Changes between versions of bills could be shown as inline highlights.

Dods EU Monitoring

Developed a new website extending the previously created framework developed for Dods to allow EU members of parliament to receive news and editorial content depending on customised interests using content enrichment and MarkLogic services. Website content was further enriched with metadata and displayed in document context.

Key skills/technology

  • UXD
  • XSLT / XML / XSD
  • PHP 5 (FP / OOP)
  • JavaScript (FP / OOP / AJAX / jQuery)
  • PHPUnit / JUnit
  • XHTML
  • CSS + SASS
  • Jenkins
  • MySQL
  • SOAP
  • MarkLogic
  • Alfresco ECM
  • Subversion

Ascend Content Discovery Platform & DAM

Role
Technical Lead / UI Team Lead / Senior Developer

Working closely with the product owner and end users to create a clickable wireframe and prototype using AngularJS for a rich search interface to allow users to find and re-use content for various types of publications. Worked on the technical design and provided mentoring and code review.

Key skills/technology

  • AngularJS
  • Browserify
  • OOCSS / SASS (+ Compass)
  • Bootstrap
  • Grunt (including Maven integration JSHint, JSCS)
  • Karma + Jasmine + Sinon, Protractor

Sony

Role
UXD

Performed requirements analysis and prototyping for a new product management and editorial system.

Key skills/technology

  • requirement gathering / UXD
  • assisting client through UX process
  • Balsamiq + PHP prototype

RR Donnelley E-commerce Platform

Role
Technical Lead / Senior Developer

Led a team to develop the presentation tier for an e-commerce application. This involved building a reusable website framework on top of Apache OFBiz that enabled enterprises to distribute and sell their content online. I was responsible for creating an accessible presentation tier using Groovy and FreeMarker templates on top of the OFBiz content model. This included creating a number of reusable components such as a product carousel that used progressive enhancement to provide rich user experience that was also accessible to assistive technologies such as screen readers.

Key skills/technology

  • OFBiz
  • Java
  • Groovy
  • FreeMarker
  • JavaScript (OOP)
  • XHTML
  • CSS
  • mobile optimisation
  • WCAG 1.0/2.0

British Standards Institution DMS Prototype

Role
Senior Developer / UXD

Worked on the user experience, wireframing and prototyping of a new product for BSI. This involved working closely with the product owner and stakeholders to develop the concept into a real product. The prototype was written in .NET with a service layer communicating with MarkLogic which returned XML and a view rendered using XSLT.

Key skills/technology

  • UXD
  • .NET (C#)
  • JavaScript (OOP / AJAX)
  • PHP 5 (OOP)
  • XHTML
  • CSS
  • XSLT / XML / XSD
  • MarkLogic

eBook Store

Role
UI Lead / Senior Developer / UXD

Developed a prototype website for a major publishing house to allow education eBooks to be purchased by universities, lecturers and students. Each persona was presented with a different view on the book collection that allowed different actions to be performed depending on the type of user. Responsible for the user experience process and worked closely with the client, initially paper based during workshops, and Balsamiq wireframes. These eventually turned into clickable interactive wireframes which were used to validate the design with real users and to present to the board.

Key skills/technology

  • requirement gathering / UXD
  • wireframe development
  • Balsamiq
  • PHP

Publishing platform product

Role
Technical Lead / UI Architect

Developed a publishing platform on top of Alfresco WCM with a presentation tier used to provide a rich interface to allow a user to build their own eBook mashup based on content fragments such as modules, sections, topics or chapters of books. The user could browse the available content and add items to their book(s). Once complete, the book could be restructured and further customised before purchase and sent to one or more devices / delivery channels such as Kindle, iBooks or PDF. The data was provided as an XML service by MarkLogic and was transformed using XSLT. A responsive white-label website was also built on top of the framework which could be easily customised for specific client requirements.

Key skills/technology

  • requirement gathering / UXD
  • PHP 5 (OOP, Composer)
  • PHPUnit (including code coverage, phpcpd, Selenium)
  • Alfresco WCM
  • Jenkins
  • PHPDoc
  • XML / XSLT / XSD / XSL-FO
  • XHTML
  • SASS
  • JavaScript / jQuery / Backbone
  • Mocha + Chai, Sinon
  • Grunt
  • WCAG 1.0/2.0

Ixxus Web Framework

Role
Technical Lead / UI Architect

Developed a web framework product which could be configured to use Alfresco for content management and Solr for searching and indexing. The service layer also used Solr to retrieve document metadata. Designed and built a bespoke MVC PHP framework that went on to be reused on many future projects. This was architected using a decoupled design to allow the framework to easily work with various technologies as required for specific projects (such as Alfresco, MarkLogic, Solr, SQL Server / MySQL). The decoupled nature of the framework also allowed the UI to be built independently of the back-end which in turn allowed the UI team to concentrate on usability, accessibility, visual design and testing (manual and automated). The framework was built with a strong emphasis on componentization and multi-project reuse.

Key skills/technology

  • PHP 5 (OOP)
  • PHPUnit
  • XML / XSLT / XSD
  • Alfresco WCM
  • Solr
  • JavaScript (OOP / AJAX / jQuery)
  • XHTML
  • CSS + SASS
  • MySQL
  • mobile optimisation

Work history summary

  • Role
    Contract Senior UI / Full Stack Developer / Tech Lead / Team Lead
    Term
    ('08 – Present)
  • Company
    IVIS Group
    Role
    Consultant Senior UI / Full Stack Developer / Tech Lead / Team Lead working on various Tesco.com products
    Term
    ('02 – '08)
  • Company
    Framfab UK
    Role
    Consultant Senior UI / Full Stack Developer / Tech Lead
    Term
    ('00 – '02)
  • Company
    JATO Dynamics
    Role
    Senior Developer
    Term
    ('98 – '00)
  • Company
    Silversands Computers
    Role
    Developer
    Term
    ('96 – '98)
  • Company
    Siemens Plessey Controls
    Role
    Software Apprentice
    Term
    ('90 – '94)

Education

  • Year
    1996
    Institution
    Bournemouth University
    Qualification
    BSc. (Hons) Software Engineering Management
  • Year
    1994
    Institution
    Bournemouth University
    Qualification
    HNC Software Engineering Management
  • Year
    1992
    Institution
    Bournemouth and Poole College
    Qualification
    ONC Electronics NVQ III, IV, V

References

Available on request.