Let's
something greatServices
Frontend development
Web site and single-page application development using React and TypeScript, with experience in various libraries and frameworks.
Full stack web development
Traditional server-based development of web sites, applications and web services, integrating with anything from a back office system to social networking APIs.
Software engineering
Test-Driven Development, with dependency injected code, SOLID principles. Automated unit and integration testing. Experience of working with NoSQL databases and faceted search systems. Software architecture skills including performance optimisation.
We can also help out with...
Automated build and deployment with TeamCity and Octopus
APM and site performance improvement
Web site usability and competitor analysis
Skills
The full list
Frontend
- React.js
- TypeScript
- Next.js
- Tailwind
- Styled Components
- Storybook
- Tanstack Query
- Redux and Mobx
- Material UI
- AngularJS 1.x
Backend
- Next.js
- Express.js
- Node.js
- ASP.NET MVC
- ASP.NET WebAPI
- Castle Windsor, Autofac
- RabbitMQ and MassTransit
Databases
- MongoDb
- Redis
- SQL Server
- MySQL
- Endeca
- Fredhopper
Testing
- Jest
- React Testing Library
- Cypress
- Moq
- Karma
- Enzyme
- Nunit
Recent projects
Client Portal development
Jan 2022 - Jun 2023
Built a new application and component library from scratch. Heavily involved in the design of the security for the application, including moving the application from a regular SPA to next.js to provide a backend and solve security issues around authentication token storage. Was a key factor in ensuring UI consistency as the project progressed. Assisted with .NET Core API work where necessary to remove blockers due to resource issues. Component library used TailwindCSS, Headless UI and Heroicons.
- Took a brand new application from concept to production
- Built a new component library for current and future projects
- New e2e testing suite built with cypress
- Extensive use of Tanstack Query with mutations to cache as much data as possible to offset response times
Equities trading application
Jan 2021 - Nov 2022
Senior developer on a small frontend team, building new features and platform improvements to a complex application used by securities and options traders.
- Improved usability of core components
- Took ownership of a new forms framework, and made it production-ready
Micro-frontend dashboard
Jun 2020 - Jan 2021
Built a new dashboard for a SAAS delivery platform. Created a new micro-frontend shell - initially using a beta version of Webpack 5 Module Federation. Defined an interface for apps operating within the shell, and delivered hosted apps that presented a set of graphs and forms for managing data.
- New micro-frontend framework build with Webpack 5 Module Federation
- New component library using Storybook
- OAuth authentication system using secure PKCE code flow
React.js HR Application
Jun 2018 - Apr 2020
Front end work on a SAAS HR application over a period of nearly two years. Initial work was focused on migrating Angular 1.x code over to React. Later work involved major new features, and contributions to the UI of the application.
- New feature development in React using context and hooks
- Tests written in RTL
- Porting over old parts of app written in Angular 1.x
- In-house component library development
React.js Customer Engagement application
Jan 2017 - Jun 2018
Full stack work on building a complex application to manage multi-channel social media interactions in real-time. Components tested with Enzyme. Use of Redux to store application-wide state and respond to events
- Integration with Twitter, Facebook and other common platforms
- Built a telephony integration feature with Twilio
- Added phone tree support using Twilio integration
Asynchronous Angular Single-Page Application
Sep 2016 - Jan 2017
Full stack work on a heavily asynchronous application that makes extensive use of message queues, microservices and WebSockets (SignalR). Work includes new feature development and significant enhancements to an in-house WebChat application.
Distributed REST API architecture
Apr 2016 - Aug 2016
Full stack work on enhancements to a distributed system comprised of multiple .NET Nancy applications providing a REST API.
- Front end components were built with Bootstrap and Knockout.js, with jQuery to call JSON services.
- Backend development involved replacing nHibernate with Dapper, performance optimisation and cache invalidation.
Angular single page intranet application
Oct 2015 - Apr 2016
Created a modern, attractive intranet application for managing an ecommerce web site, using a combination of AngularJS 1.4, TypeScript and Bootstrap.
- Single-page application using routing, templates, custom directives and filters
- Architected as an API-first application - any action performed in the GUI can be achieved using a HTTP call to a REST API
- Backend built with ASP.NET WebAPI and C#
Continuous Integration and deployment automation
Aug 2015 - Oct 2015
Delivered an automated build and deployment system that spanned development, test and production environments
- Installed new TeamCity and OctopusDeploy instances and Tentacle agents
- Created build configurations for a mix of automatic and manualdeployments
- Configured NUnit runner steps with code coverage statistics collection
- Restructured legacy code into Nuget packages as a more modern approach to code sharing
- Wrote and integrated PowerShell scripts to control load-balancer services during deployments to production environment
- Added TypeScript transpiling support to TeamCity
Order queuing system
Mar 2015 - Jun 2015
Created a web services platform to enqueue orders from multiple sources, with a channel concept to allow per-source configuration. Queued orders are processed onto a backend ERP system.
- All business logic written in C# web services rather than batch jobs, including order placement
- A simple maintenance-free batch runner picks up queued orders and calls a web services for order fulfilment
- Fully Test-driven Development with 100% unit test code coverage across services projects. Used NCrunch to analyse and improve unit test code coverage
- Integration test library for end-to-end testing
- Test-driven approach paid off - perfect deployment record with no rollbacks or post-deployment fixes required
- Load-tested using SOAP UI
Web site stabilisation and performance optimisation
Jan 2015 - Mar 2015
Used Application Performance Monitoring tools supplied by NewRelic to analyse the performance of a busy ecommerce web site in a production environment
- Identified previously unknown performance problems with in-house and third-party code
- Modified Endeca Guided Search pipelines to load more data, allowing SQL calls to be dramatically reduced
- Worked with infrastructure team to build and configure Application Request Routing servers, to cache web responses. Almost 50% performance improvement.
About
My name is Dorian Farrimond, and I'm an experienced senior freelance developer, covering the Manchester and Lancashire (Preston, Blackburn, Bolton) areas, plus remote work across the UK.
I'm a positive and enthusiastic individual with a client-focused approach. In my career I've done team leadership, business analysis, web design, usability and worked onsite at client locations in the US and Europe.
When building applications I always consider the human side of a system as well as the code. Robust code and excellent response times are only half the story - it all needs to make sense from the perspective of the end user.