Products and Platforms

We build and support two main platforms that host a variety of different products. The platforms are split broadly between client facing and internal support tools.

Client Platform

Our client platform provides our clients with everything they need to plan, understand and manage their investment with Netwealth. Using our platform, they can learn and discover the different ways they can invest and manage their money with us. We provide them with tools to plan their financial goals, open an account and move their money to us. Once they are a fully-fledged client they are able to manage their portfolios online using our powerful, cost-effective and award-winning online service.

Internal Platform

Our internal platform is built to provide our Client Service, Advisory and Operations teams with everything they need to open, process and manage client accounts and investments. This includes complex financial processing, 3rd party integrations and client account management.

Languages and Frameworks

From the very start, Netwealth has been a cloud-first company, choosing Microsoft Azure. The majority of our middle- and back-end languages and frameworks are from Microsoft, but we use more open-source offerings on our front-end.


Front End

  • Html5
  • CSS3
  • Angular 7
  • Ionic 4.0
  • Selenium

Middleware

  • ASP.Net MVC
  • .Net Core
  • C# v6
    • Mediatr
    • AutoMapper
    • Structure Map
    • Moq
    • xUnit

Microsoft Azure

  • App Services
  • Web Jobs
  • Native Storage (Blobs, Queues & Tables)
  • SQL Server
  • Azure Data Factory
  • Azure Functions
  • Key Vault
  • Application Insights

Tools

We use the latest and best tools so that our teams are as productive as they can be.

  • Visual Studio 2019
  • VS Code
  • Notepad++
  • Sketch
  • Invision
  • Adobe Creative Suite
  • Hot Jar

Architecture

Serverless Microservices

At the start of 2019 we decided to migrate our architecture to Serverless Microservices. This was made more obvious and possible by the improvements to Azure (Durable) Functions, Event Grid, and the more general move Microsoft is making towards Consumption models for all their resources.

We advocate orchestration for intra-service work and choreography for inter-service communications. Our platform is now being underpinned by Event Sourcing and we've championed the idea of User-Aspected Services.

Our goal is to have an architecture where everything that can be serverless, is.

Legacy

Whilst certainly not legacy, in its purest term, it helps to clarify the older ways of working that we are moving away from.

Our platform is deployed to multiple Azure data centres in Europe and the UK. We use automatic scaling and load-balancing techniques on our user-facing resources, which are ASP.Net websites running in App Services.

Our middle-office functionality is primarily supported by queue-fed WebJobs and Logic Apps.

All our secrets are encrypted with access restricted and audited via Key Vault.

We use various data persistence media for our domain including SQL Server, Tables, Blobs and Queues.

DevOps

All our CI/CD and Agile (Scrum) processes are housed in a single product: Microsoft DevOps. We benefit from the seamless, joined-up nature with which all these elements can interact with one another. Employees get used to working in a single, integrated environment for multiple aspects of DevOps.

Example: Bug Lifecycle

  • Discover problem in Application Insights
  • Create, estimate and prioritise Bug work item
  • Branch -> Fix -> Pull Request
  • Code Review + Build + Unit Test
  • Build and Deploy
  • Work items set to Done

The entire lifecycle of that bug is connected and visible; from discovery, through code fixes, through approvals and, finally, to release.

Checklist

Here's an overview of the major elements of our DevOps setup:

Scrum Work Items and Custom Processes Source Control (Git) Branching and merging strategies and policies PR Builds, Tests and Code Reviews Automated Branch Build, Test and Release Automation Tests Release Approval Gateways