×
William Mark Davies

William Mark Davies

Lead Software Developer

Derby, Derbyshire, UK
07927104686
English

Background


About

About

Developer living and working in Derbyshire, always looking to learn and extend my knowledge in all things technology and programming

Work Experience

Work Experience

  • Software lead, Storefeeder

    Apr, 2023 - Present

    Leading two teams of 5-7 people I was resposible for organising and delivering projects and keeping the team on track

  • Lead Software developer, (Webroot) Open Text

    Feb, 2021 - Apr, 20232 years 2 months

    Working alongside a small group of talented individuals to maintain and create services that handle 10,000+ request a minute. With millions of customers sending information about files on their pc's we work very hard to keep everything flowing as quickly as possible so customers can get as up to date information as possible and so administrators can determine whether an endpoint (individual terminal) has been infected and needs to revert back to an older version

    • Coaching teams - As a lead developer a large part of my role is to coach and listen to my team as to how they can improve - this can range from reviewing coding standards to reviewing code to having one on one sessions with team members.

    • Event Ingestion v2 - As a project lead I was in charge of directing and advocating for a series of technology choices to use as part of a new system that would be the front door for millions of events

    • Data remapping - This is/was a technology based project where a highly used api (which was written years prior) had to undergo a shift in how data was being represented in the database (as it was inefficient) years of iteration on a model left it in a highly un-optimized way. With those instructions I directed a team of people to create a new data model which made sense for the data to be more extensible in the future and have directed a path forward in how we can still work on the api day-to-day whilst slowly moving towards the end goal

    • Commands System - Working as part of a small delivery team to create a REST api to serve specific requirements about sending command information at high volume

  • Senior Software developer, Webroot

    Oct, 2019 - Feb, 20211 year 4 months

    Working alongside a small group of talented individuals to maintain and create services that handle 10,000+ request a minute. With millions of customers sending information about files on their pc's we work very hard to keep everything flowing as quickly as possible so customers can get as up to date information as possible and so administrators can determine whether an endpoint (individual terminal) has been infected and needs to revert back to an older version

    • Events system - system that ingests 1.4 million events a minute, I was one of two developers that created this system and was heavily involved in performance tuning the service to handle everything without blocking up-stream systems

    • Licensing - I was involved in a complex system overhaul that involved a great amount of communication and collaboration around a system that was aging and needed a revamp, we took old requests that returned various information and models and turned it into a consistent REST based service that is more consistent and much easier for consumers

    • Licensing bulk requests - I was part of a team that developed a bulk endpoint in which we took inspiration from Paypal system where you can call different endpoints and have requests that rely on previous requests. I (along with the team) found optimizations that allowed us to create a system that allowed us to handle 50,000 requests in under 10 seconds

  • Software Developer, Esendex/commify

    Aug, 2017 - Sep, 20192 years 1 month

    Working as a developer of customer many customer facing software interfaces and back end api's for thousands of active customers

    • Cloud based document download - Worked on a generic api that has templates which have replaceable fields for customer information, converting HTML to PDF content to send order receipts

    • Internal tools - As part of a ship it day I headed up a team of two people who targeted some painful areas in a website that we owned, creating multiple CRUD based interfaces so internal teams could use and setup clients faster. I was also part of a team that took requirements from internal teams and make improvements to internal systems for teams to make their jobs easier and faster

    • Chat performance change - Working on a legacy application that could not support a large set of users, after some investigation and some targeted changes we changed the website to support a large set of users

    • Document upload - We developed a distributed system that allowed a configurable document upload option onto one of our public systems, this allowed internal teams to set-up a system which delivered files to customers via different endpoints i.e. SFTP, S3, blob storage

    • Platform change/overhaul - One of the first project I worked on was an overhaul of one of the public facing platforms, we wanted the system to have 99% uptime, to achieve this we ahd to move the system onto new servers and slowly separate parts the new system from the old, targeting the most used pieces first and kept slowly migrating until the system was completely moved

  • Software Developer, Brief Your Market

    Feb, 2017 - Aug, 20176 months

    Continuing with the company as a software developer I was now looked upon as a knowledge holder of some of the systems that were part of the core emailing platform

    • Trigger knowledge holder - When I worked at BYM I was the foremost knowledge holder in the 'trigger' based emailing system, where emails would be sent if a condition was true i.e. three months after a renewal date, this put me in a position to make quite a few bug fixes and interface changes, by understanding the system to an expert level I managed to look at it from a user point of view and improve workflows for support staff and external customers.

    • Logic based emailing - I was the lead developer a user interface that allowed customers to create a chain of conditions to send email i.e. two months after email 1 was sent send a follow up email if the user has not opened it, this way customers could create 'campaigns' for long running strategy

    • Workflow system - I lead a team of people to create a workflow based system, this was a complex system where internal system could gather information from the system and send emails when certain flags were i.e. when contacts were looking for a house we sent email with appropriate information, this was a highly configurable system and could be changed for each person using the system

    • Integration platform - I was an integral part of an integration team that moved data from external systems to the BYM platform, this way customers could use information stored in system they were all ready familiar with to send emails, I was responsible for creating and maintaining integration systems and communication around how to use those systems.

    • Product integration - As an extension of the system to import contacts I was an integral part of the team that brought forward a system that imported more generic items, this was the 'product' importer, we used this to gather information about house information (for example) and send emails to contacts about new deals.

  • Junior Software Developer, Brief Your Market

    Mar, 2016 - Feb, 201711 months

    General system developer

  • Junior Software Developer, Deventio solutions

    Jun, 2014 - Feb, 20158 months

    Website developer working on internal and exterenal facing websites

  • Internal systems developer, Education City

    Jun, 2012 - Jul, 20131 year 1 month

    Internal systems developer helping the sales team perform their best

Projects Experience

Projects Experience

  • Dev tools

    - Present

    Useful website - mostly for tools I use a lot and want in one place

  • Advent of code

    - Present

    Solutions to the yearly advent of code puzzles, not the tidiest code but can solve the problems

  • Project-track

    - Present

    Attempt at making a bug tracking system that differs from conventional tracking systems, mostly a playground for my DDD adventures

  • Dotnet-server

    - Present

    A dotnet tool that spins up lightweight server endpoints that return specified values

Skills

Skills

  • C#

    DotNet

    Blazor

    DotNetCore

  • Databases

    Sql

    MySql

    DDB

    Cosmos

    Azure table storage

    Firebase

    postgreSQL

    Elastic search

  • TDD

    xUnit

    nUnit

    MSTest

    Mocking

    Faking

  • Git

    gitflow

    branching

    rebasing

  • Api's

    REST

    interface's

    libraries

  • Distributed services

    Queues

    Eventing

    Micro-services

    Docker

  • AWS

    S3

    Kinesis

    DDB

    SQS

    Lambda

    API Gateway

    Event Bridge

  • Azure

    Queue storage

    Table storage

    Blob storage

    Cosmos

    App Services

    Functions

    Service bus

Education

Education

  • Software Development, Bachelor, University Of Derby

    Jan, 2010 - Jan, 2014

  • Information technology, National Diploma, Deeside college (now known as Coleg cambria)

    Jan, 2007 - Jan, 2010

Interests

Interests

  • Running

    RunRace
  • Music

    GuitarBluesRock
  • Technology

    ProgrammingComputersArduino
  • Reading

    FantasySci-FiHistoryDetective