Josip Stuhli
CTO @ SofaScore
Zagreb, Croatia
Actions
As the CTO of Sofascore, a leading live score service that provides real-time sports data, Josip is responsible for overseeing the architecture, development, and scaling their web and mobile platforms, as well as leading a team of talented engineers and developers.
Since joining in 2010, he has overseen the architecture, development, and scaling of the company's web and mobile platforms, guiding a talented team of engineers and developers. His journey at Sofascore began as a software engineer, progressing to system architect and ultimately CTO, reflecting a deep understanding of the company's evolution and a significant contribution to its success. Josip’s passion for technology finds its roots in a youthful curiosity for programming languages, ultimately leading to a formal academic background in computer science. With extensive experience and expertise in web technologies and distributed systems, he thrives on tackling complex challenges that demand creative and innovative solutions. His unwavering mission is to deliver exceptional, reliable solutions that not only meet the needs of users and partners but also continuously improve and optimize Sofascore's performance and functionality.
Area of Expertise
Topics
Scaling: from 0 to 20 million users
A story of how our infrastructure evolved over time to accommodate an increasing number of users - from on-premise to cloud and back down.
How does one make an infrastructure to handle more than a couple of users?
How do you go from 100 to 1000 to 100,000 to tens of millions?
What happens when due to popular demand hundreds of thousands of users hit your servers at the same time?
I'll tell you a story of how a small team of people managed to move software and services from one server to two, and then to dozens on cloud and then back to on-premise.
Advanced Caching
In depth overview of caching techniques, from standard usage to advanced setups with strong focus on HTTP cache. Real world examples based on Symfony, together with the necessary tools (such as varnish reverse proxy) and API design decisions to achieve an extremely high hitrate. The most important part of any caching system is cache invalidation which will be covered in depth in this workshop. I'll cover how can one automate the invalidation process and make it painless for developers.
At SofaScore we serve 20 million monthly active users generating over 50 billion requests and 260 TB of data each month, with extreme peaks all running on commodity hardware, costing less than 3k euros a month. This workshop is based on the experience gathered developing that project.
As a side note, very early in the project development we've invested time to implemented a library that should be open sourced by the summer 2021 that utilises doctrine entity listener to automate good part of the invalidation process.
Inspecting IPTV for fun and no profit
Find out what happens when you put a network tap between your TV and your router. Ever wanted to know what kind of magic needs to happen in your Set Top Box to show you your favorite TV channel? What technologies are used and how is it related to the web? What if I told you YOU could control what's displayed on your TV or watch any channel you want? In this talk, I'll explain how to inspect the inner workings of modern telco IPTV. You'll see how you can build your own network tap using nothing more than a simple Raspberry Pi and use it to inspect and modify network traffic on the fly.
Scaling: from 0 to 20 million users
A story of how our infrastructure evolved over time to accommodate an increasing number of users - from on-premise to cloud and back down.
How does one make an infrastructure to handle more than a couple of users?
How do you go from 100 to 1000 to 100,000 to tens of millions?
What happens when due to popular demand hundreds of thousands of users hit your servers at the same time?
I'll tell you a story of how a small team of people managed to move software and services from one server to two, and then to dozens on cloud and then back to on-premise. What we encountered on the way, where we failed, and how we solved it.
Please note that Sessionize is not responsible for the accuracy or validity of the data provided by speakers. If you suspect this profile to be fake or spam, please let us know.
Jump to top