I’m a Principal Engineer at Auth0 where I focus on making its architecture reliable and scalable.
I love to solve hard problems of any type, especially those related to making software and teams scale.
Before Auth0, I spent many years working for and at Microsoft on Azure SQL, Azure Media, and patterns & practices related initiatives. I spend my spare time with family, friends, exercising, and catching up on all things NBA.
I’ve had the opportunity to speak at events over the past few years, both about technical topics and also building teams.
How Auth0 built a highly-available identity-as-a-service platform that is spread across multiple AWS Regions. Auth0 handles billions of logins every month, so our architecture is built for extremely high availability. You’ll learn what pitfalls to avoid when deploying across multiple regions, and how they use Route53, VPC Peering plus other services and techniques to achieve high-availability with rock solid replica set elections.
When building a large enough set of services using node.js, there will be a point when you find that your application is suffering from performance or memory issues. When this happens, you have to roll up your sleeves, get your tools and start digging. This talk explains how you can use tools such as ab, flame graphs, heap snapshots and Chrome’s memory inspector to find the cause of these. We will go over two real life issues, a CPU bottleneck and a memory leak, we found while building our services at Auth0, and also explain how we fixed them.
When you first start building an API for a new product you mostly focus on getting an MVP ready, with the goal shipping as soon as possible so you can get feedback from customers. If you are lucky enough, your product will be successful and you will have to start worrying about things like authentication, authorization, documentation, validation, rate limiting, geo-redundancy, and no downtime deployments. In this talk I go over some real life examples of our experience evolving our APIs at Auth0 and some of the tools we use for that.
Modern computers and devices continue the trend of having a larger number of CPU cores instead of cores with more computing power. That means that the days of waiting for Moore’s Law to take effect so our apps run faster are over, and we, developers, need to start adventuring into the land of parallelism.