Software Engineer at Particular Software, speaker and knitting addict.
Laila Bougria is a software engineer and solution architect with over 15 years of experience in the .NET space. She's a Microsoft Azure MVP and frequent speaker at conferences around the world. Currently, Laila is busy building NServiceBus at Particular Software and solving distributed riddles. When she's not immersed in code, Laila enjoys indulging in her favorite pastime - knitting! She finds that tangling the yarn into beautiful patterns helps untangle her thoughts.
Area of Expertise
Messaging: The fine line between awesome and awful (and how to stay on the right side of it)
Distributed systems are becoming increasingly common in today's systems landscape, and messaging is often used to coordinate between components in these systems safely. With benefits like increased reliability, better performance, easy scalability, and easier decoupling of components, you might quickly think, "Shut up and take my money!". However, as with any architectural choice, the other side of the coin surfaces challenges and pitfalls that we must consider: structuring code to fully leverage messaging, dealing with duplicate messages, ordering issues, and diagnosing problems.
To tackle these challenges, we'll explore different messaging communication patterns and when to use them, learn how to effectively decouple code and consider techniques for system consitency. We'll also prepare for any unexpected issues, because, Murphy. By the end of this session, you will have a comprehensive understanding of the messaging problem space and will be better equipped to make informed decisions about whether and how to incorporate messaging into your distributed systems.
How to effectively spy on your systems
OpenTelemetry has quickly become the go-to industry standard for distributed tracing, logging, and metrics. Its widespread adoption across the industry, including the .NET ecosystem, has made it a breeze to use in your applications. But larger, more complex systems introduce challenges that require us to strengthen our understanding of observability, align on our observability goals, and better understand the full capabilities of the OpenTelemetry project.
We need to understand how to choose the right observability signal for each use case, apply a set of best practices to the telemetry we collect, manage costs through different sampling strategies, and select the optimal architecture by leveraging the OpenTelemetry Collector. In this session, you'll learn the right questions to ask and gain a deeper understanding of the available options in the observability space to become more effective in spying on your systems!
Message processing failed! But what's the root cause?
How do you investigate failures in a distributed system? If your first thought is to look at the call stack, then good luck... In a distributed system, there is no such thing as a single call stack! Instead, it is scattered across multiple services that tackle a specific concern and communicate through a continuous stream of messages that flow through the system. That call stack becomes a haystack, so how do you find the proverbial needle?
Luckily, there are techniques and tools to regain the overview we lost. In this session, we'll look at modeling techniques, integration testing, and a deep dive into instrumentation with OpenTelemetry to help create visibility into your entire distributed system. And even if you're not (yet) using messaging in your architecture, you'll walk away with concrete takeaways around system observability that you can use in other architectures as well.
An exception occurred... Please try again.
If there is one certainty in software, it's that things fail. It's not a matter of if but when. All too often, we throw the error at our users, who have no means of solving the problem except for trying again. Alternatively, we build custom code to address edge cases that can't easily be fixed, and we do so with a dangerous lack of insight into the problem at hand.
In this session, we'll discuss the importance of system resilience and how you can equip your software with the ability to recover from failures scenarios. After exploring different types of failures and considering different resilience strategies, we'll dig deeper into the retry pattern by rolling our own. We'll also see existing options such as Polly and NServiceBus, that can handle this complexity for you.
Join me and embrace your system's failures.
Why You Should Consider a Career in Software Engineering
Many misconceptions exist regarding the software engineering profession that perpetuates many myths: Only geniuses can code. We're socially awkward and don't talk much. Code is cryptic, complex, and so dull. We spend entire days sitting at our desks, coding requirements handed to us by other teams. But here's a secret: these myths couldn't be further from the truth!
My name is Laila Bougria, I'm a software engineer with over 15 years of experience in the field. In this session, I will provide insights into what it truly means to be a software engineer, debunking common misconceptions and sharing my experiences. Get ready to challenge your preconceptions and gain a new appreciation for the dynamic and exciting world of software engineering!
30-minute talk presented at universities targeting students that are considering careers in software engineering.
Find true north with a technical decision-making compass
Do you ever feel like you're swimming in a sea of technological possibilities without a compass to guide you? Or perhaps you've built a system with all the latest and greatest technologies, only to find it's more complicated than a tesseract? I know I have... As tech professionals, we face an abundance of options to solve a particular problem which can lead to biased decision-making, where we choose solutions based on other's success stories neglecting their context and our own eagerness to learn.
In this session, I'll share my experiences and insights on the essential building blocks that improve critical thinking, help break through biases, and improve our intent and communication when making impactful decisions after using them for almost three years. You'll learn to ask the right questions and apply tactics to help identify assumptions, evaluate options objectively, and assess risk. You'll walk out of this session with a reliable compass to navigate our complex and ever-changing technical landscape confidently.