Senior Software developer
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 temrminal) has been infected and needs to revert back to an older verison
- 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
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 replacable 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 targetted some painful areas in a website that we owned, creating mutiple 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 seperate parts the new system from the old, targetting the most used pieces first and kept slowly migrating until the system was completely moved
Software Developer
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 intergration team that moved data from external systems to the BYM platform, this way customers could use information stored in system they were all ready familier with to send emails, I was responsible for creating and maintaining intergration systems and communication around how to use those systems.
- Product intergration - 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 geenric 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
- Global referral system - This was an early project that focussed on getting customers that (for example) moved from one location to another location to refer them to another system
- Internal team help - I was part of a business as usual team that worked closely with our internal teams to add and fix internal systems, helping them be more efficient
Junior Software Developer
- Generic tools - There were many differnet interfaces that had common functionality that we moved into generic controls (or components) that we could use accross the system generically
Internal systems developer
- Messaging System overhaul - Overhaul of an older emailing system to create a fresher ui and faster more responsive interface
- Multiple contacts - Internal system that only supported two contacts, we created a project to support as many contacts as the account needed, this was a large re-write of touchpoints of the system
- PHP version upgrade + sql connection system - After a php decision to deprecate sql connection strategy we had to change a large amount of connection logic and took the opportunity to centralize connection logic