Toni Petrina
Lead SRE | Developer | Speaker
Lead SRE | Developer | Speaker
Copenhagen, Denmark
Actions
Lead SRE at Visma e-conomic, developer at heart and frequent speaker at conferences, meetups and local events. Found passion in QBasic, jumped through C++, C#, JavaScript, TypeScript - only to land in the world of YAML. Finally, a full-stack engineer! Nowadays works on everything from UI to Cloud tooling. He spends most of the time at the keyboard typing yet another demo or application. If you take his keyboard away from him, he will talk endlessly about code, best practices and what not to do... Been coding for over a decade to know if something is a programming fad or not - and prefers spaces over tabs. Strong proponent of Open Source and all things chocolate.
Bivši ekspert za QBASIC u svom razredu danas kombinira TypeScript, C# i YAML u nešto korisno. Trenutačno radi kao Lead SRE odnosno pravi full-stack. Bloga, forumira i redovito predaje na regionalnim konferencijama i meetupovima. Pobornik je otvorenih tehnologija i čokoladnih proizvoda. Kad ne piše kod, piše blog ili proučava nove tehnologije, slobodno vrijeme provodi sa svojom boljom polovicom, prijateljima i na raznim hobijima.
Area of Expertise
Topics
Aspire end to end flows
.NET Aspire has changed the way we tie together .NET services. It's an opinionated approach towards building an application stack including both our services and external dependencies.
After writing and tying our services, the focus shifts to testing and deployment. In this session we will take a look at how to effectively test distributed applications built with Aspire. We will also take a look at how to deploy such applications onto our infrastructure with the special focus on day 2 operations.
Asynchronous UX
"Please do not close or leave this page" may send shivers down your spine, but coding the proper UX flow for async might make you question your daily job. How can we properly handle UX for asynchronous code in highly responsive applications? Let's explore how introducing asynchronous code creates a challenge for UX.
Porting code - lessons learned
What does it take to port code from one language to another without users noticing it? During the multi-year process of porting more than 100k lines of code from Classic ASP to C# we learned a lot. How do you plan and approach project at this scale? How do you test such a large and complicated codebase? What are rollout and rollback strategies? The project succeed, but there were some costs and lessons learned. We know how to do it again and we learned what not to do.
Information patterns for microservice architecture
While microservices have lots of benefits over traditional monoliths, splitting application and databases makes certain patterns harder or even impossible. Transactions are replaced by sagas, synchronous communication with events, but at what cost? Data is split among services, but we still want to consume it in a predictable way. Events are used to dispatch information, but they increase our operational cost and introduce eventual consistency. CAP theorem still applies, are our patterns up to speed? In this session we will examine how information flows in a microservice architecture and how we can update our ways of thinking that is still based in traditional monolithic design.
Immutable code in .NET
Our day to day thinking is quite imperative. Do this, then that, only if this...which is also the way we code. Although natural, imperative code has certain disadvantages when it comes to self-containment, ability to reason about a particular code fragment, testability and performance in certain conditions.
So let's talk about adjusting our code and our way of thinking to more functional one. Let's see how certain limitations can open up new possibilities previously impossible to attain using just the imperative code. By implementing certain patterns or restricting the way we write existing code, we can achieve more
The enemies of good code
Why don't you write good code? There is no time? Unclear requirements? Changing requirements? Are you colleagues to blame? Is it you in the end? Let's discuss how to tackle this issue. Unless your code is perfect - then come by and tell us how to do it better!
Refactoring to CQRS
Code reflects the way we think, but not necessarily the way it is used. Our programming patterns reflect the simplistic nature of acquiring and changing resources, but in certain cases it doesn't map properly to how the software is used. In this session we will introduce CQRS and explain how our code will now reflect a slightly different paradigm - one more powerful and a better match for how we interact with the software. We will explore how testing is simplified, what is its relation to DDD and how it will affect our overall architecture.
GraphQL with Entity Framework Core
Tired of writing REST APIs? Mapping DTOs to entities and vice versa? Want to have a standard and clear way of fetching multiple (related) entities? The answer just might be GraphQL - a new way of building backends for your APIs. We'll explore how to use existing knowledge to write simple data access layer using Entity Framework Core and exposed as a GraphQL. You'll learn about authentication and authorisation, pagination, filtering, nested queries and much much more.
Øredev 2019
REFACTORING TO CQRS
Key takeaways
- What is CQRS?
- Why we would want CQRS?
- What we in and what we lose get when switching mindset?
- How you can start today with this approach?
Code reflects the way we think, but not necessarily the way it is used. Our programming patterns reflect the simplistic nature of acquiring and changing resources, but in certain cases it doesn't map properly to how the software is used. In this session we will introduce CQRS and explain how our code will now reflect a slightly different paradigm - one more powerful and a better match for how we interact with the software. We will explore how testing is simplified, what is its relation to DDD and how it will affect our overall architecture.
Update Conference Prague 2018 Sessionize Event
KulenDayz 2018 Sessionize Event
Advanced Technology Days 13 Sessionize Event
Advanced Technology Days 12 Sessionize Event
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