Matthew Law, Senior Software Engineer Matthew Law, Senior Software Engineer

// Senior Software Engineer · Systems · Trade-offs · Developer Experience Engineer

Matthew_Law

I've spent over ten years building software and learning that making something work is only the beginning. The harder questions tend to show up afterwards: what happens when it changes, scales, breaks, or lands with someone who wasn't there when it was designed?

Mostly .NET and TypeScript, across fintech, banking and stock exchanges. I usually end up in the cross-cutting problems: the decisions and trade-offs that don't belong neatly to a single ticket, system, or person. And mentoring the people around me through them, whether or not that's my title.

Most of the expensive problems didn't look expensive at the time.

The ones that stuck with me are written down.

Experience()

Entelect

// Jun 2022 – Present · 2 roles
// Jan 2024 – Present

Senior Software Engineer

  • - Own the multi-tenant plugin architecture. Each tenant has an explicit registered list of what it is allowed to load, rather than the loader accepting anything that implements the right interface.
  • - Led a team of four on a platform modernisation, planning and running an Angular 11 to 20 upgrade and pushing for real unit test coverage as part of it.
  • - Called a stop at the last LTS rather than the newest release. Several packages had no support past it, and handing the client back something stable mattered more than reaching 20.
  • - Joined a new project and spent the wait for access and onboarding fixing pain points in the existing CI/CD pipeline.
  • - Build and maintain shared NuGet and npm libraries so teams are not each solving the same problem a slightly different way.
  • - Mentor engineers through code reviews and technical guidance, and hold the cross-cutting technical decisions in client engagements.
C#.NETASP.NET CoreOAuth2JWTEntity FrameworkTypeScriptAngular
// Jun 2022 – Jan 2024

Intermediate Software Engineer

  • - Brought fintech auth and OWASP experience to teams that had not worked in heavily regulated environments.
  • - Led a small team building a shared auth package. Other departments at the client have since adopted it.
  • - Contributed to the multi-tenant platform and the early iterations of its plugin-based architecture.
  • - Refactored legacy codebases as part of ongoing modernisation, focused on what would still be maintainable once the team handed it over.
C#.NETJWTTypeScriptAngular

Dariel

// Mar 2020 – May 2022 · 2 roles
// Dec 2021 – May 2022

Mentor

  • - Ran weekly after-hours mentoring sessions with juniors. Opted into rather than assigned.
  • - Worked through best practices, pointed people at material, and helped a few of them finish personal projects they had wanted to build.
  • - Learned to give feedback without taking ownership of the problem away from the person holding it.
C#ASP.NETMVCAngularAzureApache NiFigRPC
// Mar 2020 – May 2022

Software Developer

  • - Pushed back when a senior stakeholder wanted to bring in technology that cost more sprint capacity than it returned. Never a flat no: the reasoning went into the technical discussions, so everyone could see what it would push out of the release.
  • - Built APIs and integrations against external systems across several client projects, usually joining the codebase cold and at short notice.
C#.NETASP.NETJavaScriptSQLAngularAzureFirebaseApache NiFigRPC

Securities & Trading Technology

// Dec 2015 – Feb 2020 · 2 roles
// Jan 2019 – Feb 2020

Intermediate Software Developer

  • - Client's reporting engine ran user-uploaded SQL as raw text. Argued for validation on upload, with anything containing UPDATE, DELETE or INSERT forced into a maker-checker review by a second person at the client. It slowed down quick ad hoc reporting, which was the price of nobody running a destructive 'report'.
  • - Pushed the team to replace hardcoded values (such as VAT) scattered through the codebase with a single centralised constant. It cost an extensive audit to find them all. When the rate changed, it was a one-file change.
  • - Worked on market data and custodial platforms running in live financial operations.
C#SQLJavaScriptAngular
// Dec 2015 – Dec 2018

Junior Software Developer

  • - Built BBO and custodial solutions for the ZAR X environment, which went live in February 2017.
  • - Contributed to the internal frameworks the team's financial systems were built on.
C#SQLJavaScriptAngular

Hobbies()

Dungeons & Dragons
Side Projects
Video Games
Reading