Shahab Ganji
Lead Coding Architect
Profile Picture
  • Birthday: 23 Jan. 1985

  • Sessionize Profile

  • My YouTube Channel


  • Hello and welcome!

    I am the guy who happened to be a software engineer for about two decades, and still continues! I have worked with a broad range of technologies; however, due to growing up with C# and .NET, that's where my knowledge shines.

  • 10/25/2024

    Building Event-Driven Systems at Scale with Azure Cosmos DB

    Øredev Conference, Malmö, Sweden

    The most prominent shift we've observed in the field of distributed systems over the last decade is probably the transition from traditional synchronous integrated systems to message-driven means. This change is a logical response to the high demands for scalability, elasticity, and resilience within today's software systems.

    Regardless of how overwhelming the array of message-based options may seem, Cosmos DB serves as an incredible solid backbone for most of them, whether utilized as a transactional outbox or a fully-fledged event store in the context of event-sourcing. By diving deeper into real-world experiences, we will discover the mechanics of how Cosmos DB can guarantee nearly infinite scalability if you follow a few basic principles and patterns to efficiently model your data.

    While Cosmos DB should not be considered as another silver bullet, this talk will teach you why you should certainly keep it as a prominent tool in your toolkit when it comes to building event-driven systems at scale.


  • 09/10/2024

    Building Event-Driven Systems at Scale with Azure Cosmos DB

    Online - Azure Cosmos DB Global User Group

    The most prominent shift we've observed in the field of distributed systems over the last decade is probably the transition from traditional synchronous integrated systems to message-driven means. This change is a logical response to the high demands for scalability, elasticity, and resilience within today's software systems. Regardless of how overwhelming the array of message-based options may seem, Azure Cosmos DB serves as an incredible solid backbone for most of them, whether utilized as a transactional outbox or a fully-fledged event store in the context of event-sourcing. By diving deeper into real-world experiences, we will discover the mechanics of how Azure Cosmos DB can guarantee nearly infinite scalability if you follow a few basic principles and patterns to efficiently model your data. While Azure Cosmos DB should not be considered as another silver bullet, this talk will teach you why you should certainly keep it as a prominent tool in your toolkit when it comes to building event-driven systems at scale.


  • 06/09/2024

    Empowering developers with "Roslyn"

    Online - MS Farsi Community

    On-boarding new developers and imposing programming patterns and guidelines can take a good amount of time from your team. Roslyn with its rich APIs is helping us to tackle these challenges at compile time. In this session we will investigate Compiler APIs from Roslyn and how they assist to create Semantic Analyzers and Code Fixers tailored for your team. With Semantic Analysis you can ensure the given program is semantically consistent with language definition, and with Semantic Analyzers you can extend it to best practices and coding patterns. Code Fixers provide suggestions for the already written code to be replaced with an alternative, this way your team's developers will have an extra tool in their toolbox for writing better code addressing their needs. In the session we will showcase how to save time on development and during code reviews through unifying the build on your machine and CI/CD pipelines.


Capability Familiar with Proficient Expert
Software Development Practices
Test Driven Development
CQRS & ES
Domain Driven Design
Frontend
iconJavsscript
iconTypescript
iconReact
iconCSS
WPF
iconBlazor
DevOps
iconGitHub Actions
iconAzure DevOps
iconGit
Backend
iconKafka
iconRoslyn
icongRPC
iconRabbitMQ
iconAzure Functions
iconAzure Event Hubs
iconC#
iconEF Core
Database
iconRedis
iconPostgreSQL
iconAzure Cosmos DB
iconSQL Server
Cloud Platforms
iconTerraform
iconAWS
iconPulumi
iconAzure
An error has occurred. This application may no longer respond until reloaded. Reload x