John Sutcliffe, Developer in Dortmund, North Rhine-Westphalia, Germany
John is available for hire
Hire John

John Sutcliffe

Verified Expert  in Engineering

Software Engineer and Developer

Dortmund, North Rhine-Westphalia, Germany

Toptal member since April 1, 2021

Bio

John is a developer with 15 years of experience creating commercial software. He is an expert in back-end projects using C# with top skills in JavaScript, Angular, and React. He created a sophisticated booking application that enables universities to manage and optimize the use of their resources. John has developed cloud-hosted products, including some that used a microservice architecture hosted in Docker.

Portfolio

Dome Consulting
C#, Angular, Autodesk, Building Information Modeling (BIM), AWS CLI, TypeScript...
MesserSoft
C#, ASP.NET, AngularJS, Docker, Entity Framework, REST, .NET, TypeScript...
OpusCapita
React, JavaScript, Docker, Node.js, Express.js, .NET, OpenID, OAuth...

Experience

Availability

Part-time

Preferred Environment

C#, ASP.NET, AngularJS, Docker

The most amazing...

...application I've developed was for universities that enabled them to manage and optimize the use of their resources.

Work Experience

Software Architect

2021 - PRESENT
Dome Consulting
  • Migrated an old web forms project into microservices. Used a reserve proxy to run the old and new applications side by side and have a phased transition from the old to the new architecture to avoid a Big Bang update.
  • Implemented a micro-front-end architecture. Pages were moved from the web forms application to Angular with a microservice REST API in stages while maintaining a single application feel and consistent styling.
  • Added Autodesk 3D modeling to the application and interacted with their API to allow the selection of parts in the model and link to elements within our local database.
Technologies: C#, Angular, Autodesk, Building Information Modeling (BIM), AWS CLI, TypeScript, Full-stack Development, .NET Core, .NET, Web Applications, Microsoft SQL Server, Microservices, REST, Entity Framework, Docker, AngularJS, ASP.NET, Architecture, Elasticsearch, Visual Studio, Technical Leadership, SQL, API Integration

Senior Developer

2019 - 2021
MesserSoft
  • Developed a microservice application using C# ASP.NET and AngularJS. The applications allow users to manage a production job's lifecycle from the initial quote generation to the final inspection of the produced part.
  • Integrated onsite legacy applications using message queues. This was developed using RabbitMQ.
  • Added authentication to the application using the OpenId protocol. I designed a model that enabled the mapping of a user's details from the onsite identity provider to application permissions.
  • Developed a build pipeline in Azure DevOps to create the application, run the unit test, and publish the Docker containers.
Technologies: C#, ASP.NET, AngularJS, Docker, Entity Framework, REST, .NET, TypeScript, OpenID, OAuth, JavaScript, C#.NET, .NET Core, Angular, Full-stack Development, Web Applications, Microsoft SQL Server, Microservices, Architecture, Visual Studio, Technical Leadership, SQL, Agile Software Development, Agile, API Integration

Software Architect

2018 - 2019
OpusCapita
  • Developed Node.js microservices for processing B2B financial transactions using RabbitMQ and Azure message bus to process messages. Developed a micro-UI using React.
  • Created a token service that issues JWTs for use in the product’s API. Tokens are issued using the OpenID protocol.
  • Developed a user notification service and designed a preferences model which allowed individual customers to create notification lists and configure how they want to be notified.
  • Built a token service that issues JWTs for use in the product’s API. Tokens are issued using the OpenID protocol.
Technologies: React, JavaScript, Docker, Node.js, Express.js, .NET, OpenID, OAuth, Web Applications, Microservices, Agile Software Development, Agile

Senior Software Engineer

2010 - 2017
Scientia
  • Delivered a variety of projects developing resource scheduling applications for higher education.
  • Re-architectured a legacy application in a hosted C# microservice application running in Azure.
  • Expanded and improved a WinForms application that synchronized data via message queues to a hosted web application.
  • Created a data transfer tool to import reference data from Oracle and SQL Server databases into a SQL Server database. This greatly reduced the time required to perform the transfer compared to the previous version of the application.
  • Presented software at user conferences and user groups. Ran internal training courses for the support and consultancy teams.
  • Coordinated back-end development with an outsourced front-end development team.
  • Authenticated web applications using the SAML protocol.
Technologies: C#, C#.NET, Microservices, REST, Azure, Windows Forms (WinForms), Oracle, Microsoft SQL Server, ASP.NET, MongoDB, Presentations, .NET, TypeScript, OAuth, JavaScript, .NET Core, Full-stack Development, Web Applications, Visual Studio, SQL, Agile Software Development, Agile, CI/CD Pipelines, API Integration

Software Engineer

2008 - 2010
AVEVA
  • Developed web parts and workflows in SharePoint for managing documents associated with the oil and marine exploration industry.
  • Served in a specialist web development team within AVEVA to provide web development support to projects. This included providing training through Wikis. I presented a guide to using templates in ASP.NET and SharePoint.
  • Assisted the development team architecture control group to analyze the generic web controls and determine which ones should be developed for reuse across all projects.
Technologies: SharePoint, Microsoft SQL Server, Web Applications, .NET, C#.NET, .NET Core, Visual Studio

Software Engineer

2003 - 2008
Granta Design
  • Created applications for managing and capturing engineering data in the aerospace industry.
  • Assisted in the development of all parts of the software including the data layer, business logic, interfaces, and the Windows and web applications using WinForms and ASP.NET.
  • Created a secure, scalable web application with C#, ASP.NET, and AJAX. The web application was required to handle 10,000s of users.
  • Presented projects to customers at a biannual user group.
  • Collaborated with customers on several projects to develop tools to analyze their test data and import it into the application.
Technologies: C#, Microsoft SQL Server, Windows Forms (WinForms), ASP.NET, Regular Expressions, Excel VBA, .NET, JavaScript, C#.NET, .NET Core, Web Applications, Visual Studio, SQL, Agile Software Development, Agile

Resource Booker

This is a C# ASP.NET and Angular application developed for universities to manage their resources, such as the booking of conference rooms.

I developed and architectured the back-end ASP.NET application and coordinated with an outsourced developer who created the front-end UI. I designed an object model that enabled universities to group their resources and assign availability and access to groups. This allowed the university to restrict students from booking certain rooms at certain times of the day. Staff members could use the same UI to book from a larger pool of rooms with more flexibility over the times they were allowed to book the rooms.

I implemented an approval workflow for the booking of the resource. This enabled the university to allow the user to book a resource immediately, as long as it was available, for example, audio-visual equipment. However, they could also require approval for some types of bookings, such as a room booking where a student group had invited an external speaker to present to the students.

Web Application Migration

I was tasked with migrating a web forms application using .NET Framework 4.5 to a client-server web application using Angular and REST APIs deployed as microservices.

This was a multi-year project, and there was a requirement to release this in a phased approach along with new features rather than a big-bang release after several years.

I created a plan to identify areas of functionality that could be extracted into a microservice and then add new pages to an Angular application to use this new microservice. A reverse proxy gave the user experience of a single consistent application.

CHALLENGES
• A single authentication protocol between the old application, using an ASP.NET session, and the new microservice, using JSON web tokens (JWTs). Solved using an internal microservice to validate the JWT for the legacy application and set the user on the request context.
• Navigation between the old and new pages. A new routing service was needed in Angular to identify when an internal page redirect could be used and when a full-page redirect was needed when accessing the old UI. The reverse proxy required a list of URLs to pages that had already been migrated, which we mitigated by trying to group pages within routing rules.
1999 - 2002

Master's Degree in Materials Science and Engineering

Birmingham University - Birmingham, England

1996 - 1999

Bachelor's Degree in Materials Science and Engineering

Imperial College - London, England

Libraries/APIs

Entity Framework, OpenID, React, Node.js, Windows Forms (WinForms)

Tools

Visual Studio, Autodesk, AWS CLI

Languages

C#, C#.NET, SQL, JavaScript, Excel VBA, TypeScript

Frameworks

ASP.NET, .NET, .NET Core, AngularJS, Angular, Express.js

Paradigms

Agile Software Development, Agile, Microservices, REST, Building Information Modeling (BIM), Microservices Architecture

Platforms

Docker, Azure, Oracle, SharePoint

Storage

Microsoft SQL Server, Elasticsearch, MongoDB, NoSQL

Industry Expertise

Teaching

Other

Web Applications, Full-stack Development, API Integration, OAuth, Architecture, Technical Leadership, Mathematics, Materials Science, Engineering, Science, Research, Presentations, Regular Expressions, API Design, Reverse Proxy, CI/CD Pipelines

Collaboration That Works

How to Work with Toptal

Toptal matches you directly with global industry experts from our network in hours—not weeks or months.

1

Share your needs

Discuss your requirements and refine your scope in a call with a Toptal domain expert.
2

Choose your talent

Get a short list of expertly matched talent within 24 hours to review, interview, and choose from.
3

Start your risk-free talent trial

Work with your chosen talent on a trial basis for up to two weeks. Pay only if you decide to hire them.

Top talent is in high demand.

Start hiring