The core platform team at viagogo is responsible for the performance and stability of viagogo's production systems. Working alongside engineers in the core and data platform teams, the team is also responsible for working with the broader engineering group to understand and anticipate current and future engineering challenges.
Our work is all driven by helping viagogo become the world's largest ticket marketplace, and that typically translates into solving hard engineering problems related to scale, concurrency, and latency.
As a platform engineer you'll be expected to work on problems at every stage – from understanding the business challenge to implementing and maintaining production systems. Some sample problems that you might work on in the next few months include:
- Designing and building a multi-tier caching strategy that supports low-latency reliable reads, and provides semi-strict guarantees on data freshness
- Build a near-time monitoring and feedback loop capability to our high-scale systems, aiming for minimal human intervention, and automated remediation
- Upgrading our production observability stack to let any team diagnose both macro and micro-level problems (Is the service slower overall? Why did this individual request fail?)
- Assisting teams increase their release velocity for services from once per-day (with a bit of babysitting) to hourly or even more frequent, with no human interaction
- Transitioning certain edge telemetry services into a cost-effective and secure cloud deployment
viagogo predominantly utilizes Microsoft technologies, such as Windows, .NET, C# and IIS, however we’re not afraid to use the right tool for the job. We use RabbitMQ for some of our internal pub/sub messaging, Redis for local caching and gRPC for high performance out of process calls.
Our public facing website is built using ASP.NET MVC 5.2 and is deployed to multiple Windows Servers that are fronted by an F5 load balancer. We have heavily customized MVC to suit our requirements and handle hundreds of HTTP requests per second per server when mostly idle.
Our backend is a set of SQL Server databases deployed in a high-availability configuration using availability groups. These support everything from high-volume transactions and decision support/telemetry analytics.
We're increasingly taking advantage of the Azure cloud to enable hybrid or cloud-only scenarios that support our global growth, and ability to quickly respond to surges in demand.
Success in this role requires a passion for both technology and using it to solve business challenges. We expect that you've already demonstrated your ability to solve hard problems multiple times already and have consistently been drawn to larger projects with increasing amounts of risk/load/complexity (or similar dimensions). We also know that the only way to gain experience is by having tried and failed multiple times, so we'll expect you to have plenty of war stories to share with us about the times when it didn't work out quite as planned, and what you learned.
You'll also likely be a specialist in one or more areas – working alongside individuals who have extreme depth in areas like SQL Server performance, ASP.NET MVC, or performant C# code – we'll expect you to bring an additional dimension to our team that you can leverage not only by building exceptional solutions, but also sharing that knowledge to build a better engineering team.