Work Experience
Senior Software Developer
February 2022 - Today
Inbox Insight, Winchester, UK
Software Developer
July 2020 - December 2021
Zupa Tech Ltd, Southampton, UK
Joined the company on a quest to launch a greenfield project made of a set of microservices that would support the different actors of the hospitality supply chain negotiating and delivering the products they need. I was a member of the procurement team, working in Agile Scrum in iterations of 3 weeks. I contributed to the design and delivery of features and the resolution of bugs for the Agreements, Orders, Products and Stocks services. The technical stack I worked on was: - Microsoft .NET Core 3.1 - .NET Web API, C# - JavaScript, Jest, ReactJS - Event Sourcing, CQRS - Azure DevOps (Boards, Repos, Pipelines, Artifacts) - GitHub - YAML Pipelines - Azure App Services, Azure PIM, Azure Service Bus, Azure Identity, Azure Active Directory B2C, Azure API Management, Azure Cosmos DB, Microsoft Azure SQL, Azure Front Door - Feature branching, CI/CD pipelines The defining challenge we had to overcome as a team was displaying, processing and moving around 50MB per user of data across the front end and different services. We iteratively moved from front-end to back-end pagination, reducing the ability for the user to work offline. Notable contributions: - Passed Microsoft AZ-400 Designing and Implementing Microsoft DevOps Solutions certification - Together with AZ-204 became 'DevOps Engineer Expert' - Passed the Problem Solver Intermediate certification on HackerRank - Spotted and reproduced XSS vulnerability during PR before it reached release introduced by this dependency https://github.com/peternewnham/react-html-parser/blob/master/README.md#security - Suggested how PostJsonAsync could help save memory by sending data directly on the wire - Implemented a custom React Numerical Input starting from repo https://github.com/mohitgupta8888/react-currency-format/blob/react-currency-format/src/currency-format.js - During a PR, suggested how using DB pagination could avoid loading data in memory
Consultant
April 2019 - July 2020
Avanade, Milan, Italy
Avanade is a joint venture between Microsoft and Accenture. I had the privilege to work for two of their Fortune Global 500 customers, one of them being one of the biggest banks in Europe. I worked on different projects. The first required to migrate a car fleet management tool written in .NET MVC 5 to PAAS, Azure App Services. We had to rewrite part of the application written to use a COM library in order to parse a Microsoft Excel file. The second, in a team of 50 or more developers and using Angular and Ionic, required to swap the third party provider used by the home banking mobile app in order to categorise transactions made by the users. The third focused on the maintenance of a WPF application operating in the Forex market. I integrated it with a new service performing credit checks on customers wanting to buy derivates. I took a legacy library that was parsing and running an SQL where clause and rewrote it/refitted to work with a novel internal framework. I took a legacy, data ingestion library that was subscribing to a stream of prices provided by Reuters, and rewrote/refitted to work with a novel internal framework; the Reuters feed at times was producing bursts of messages and I wrote a multi-threaded data-ingestor that was aggregating the prices returning the most updated values, pacing them using a configurable interval. I helped to deploy and to troubleshoot a background job that was loading in RAM GBs of data acting as a cache, keeping them in sync between their sources (a number of files on different shared folder published by other teams daily) and destinations (an Oracle DB). The job was exposing a Rest API that was querying the cache using .NET Web API, exposing OAuth 2.0 authentication (client credential flow) with JWT Tokens. My daily tasks included attending meetings with customers, deliver the changes in time and handing over when moving to a different assignment. While at Avanade I managed become open source contributor on GitHub for the Microsoft Azure Event Hubs SDK. I also attended the the Microsoft Build 2020 event, I was rewarded with an exam voucher, I used it to pass my AZ204: Developing Solutions for Microsoft Azure exam. Avanade generously provides weeks of training for their employees and pays their exams. By winning the voucher I saved the company the cost of the exam.
Software Developer
March 2017 - April 2019
Creditplus, Poole
Creditplus is one of the leading actors in the car finance market in the UK. As a software developer I used to work on the entire application life cycle, from writing the code to deliver it and maintain it in production. My responsibilities were: - Working adopting modern management methodologies such as Kanban and Continuous Delivery - Writing fit-for-purpose code and building scalable functionality to support new application features - Updating peers and management on work status and progress, identifying issues and clearly communicating them - Updating, maintaining and day-to-day running of existing websites using C#, .NET 5, JavaScript, TypeScript, jQuery, .NET MVC, .NET Web API and T-SQL - Implementing security upgrades to mutual TLS authentication with key partner API - Prioritising, managing and delivering fixes for bug/defect backlogs - Co-ordinating and developing HTTP interface upgrades with key partners - Managing the renewal and configuration of company SSL certificates My main achievements were: - Discovered a way to extend the existing ASP/iframe based CRM with modern technologies such as .NET Core and Angular - Created a lender API in .NET Core containing 10 connectors with as many lenders, allowing to increase the number of lending options available for customers - Discovered and fixed a security entry - During an integration with a lender, reverse engineered the algorithm to calculate the monthly interest starting from the APR, the loan amount and the term. That was an important algorithm for the business that no one before ever implemented.
Software Engineer
August 2016 - March 2017
Brightserve, Chichester
Worked on the extension of two different AngularJS, Web API 2, SQL Server projects, mainly on authentication side installing and configuring ASP.NET Identity with JWT tokens. I also had the opportunity to work with Git, Windows Workflow Foundation, Ninject, MOQ, Bower and Grunt
Web Developer
January 2016 - July 2016
Fresh Egg, Worthing (United Kingdom)
Worked on different integrations with third party web-services (Trustpilot, Mailchimp, Eventbrite) for different ASP.NET MVC websites. Ordinary maintenance for customer websites. I worked and promoted the adoption of Owin and Katana for a small self hosted WebApi 2.0 webservice, withing a windows service.
Junior Software Developer
August 2014 - December 2015
Mosaic Online Systems, Worthing (United Kingdom)
I Worked as .NET backend developer in the mailing industry using WPF, WCF, WebApi, Webforms, T-SQL and MVC. I worked on a windows service, an MVC web-application, a Web API web service, different T-SQL stored procedures and one WPF application.
Junior Software Developer
November 2013 - July 2014
PharmiWeb Solutions, Bracknell (United Kingdom)
Front-end development on HTML5 web sites, compiled to IOS apps. I mainly worked with JavaScript, HTML5 and CSS3.
Software Developer
May 2013 - September 2013
Freelancer
Electronic signature projects with .NET WPF and MVC.
System Integrator
May 2012 - May 2013
Innovery S.p.A., Rome (Italy)
Identity management solutions (Oracle Waveset), Web applications hardening (PHP), Data Masking (C), Web Application Development (Java, Hibernate, Spring)
Junior Software Developer
July 2011 - November 2011
Internship for Forge Reply s.r.l., Milan (Italy)
Path finding with A* (C++), Graphical Maya Scene Exporting (C++, Python)