Sia Ghassemi

Sia Ghassemi

dev-security, we need more and easier dev-security!

dev-security, we need more and easier dev-security!

Düsseldorf, Germany

Sia Ghassemi is not just a passionate software architect and Microsoft MVP for the category Azure, he is also the founder of sia-consulting limited, a company specialized in GDPR, dev-security and cloud-security. He is a frequent speaker and workshop-lead at different conferences throughout germany and canada.

Sia Ghassemi ist nicht nur ein leidenschaftlicher Softwarearchitekt und ein Microsoft MVP für die Kategorie Azure, er ist auch der Gründer der sia consulting limited, eine Firma die sich auf DSGVO, dev-security und cloud-security spezialisiert hat. Als Sprecher und Workshopleiter ist er häufig in Deutschland und Kanada und auf verschiedenen Community-Konferenzen unterwegs.

Area of Expertise

  • Information & Communications Technology
  • Law & Regulation


  • Azure
  • Azure AD B2C
  • Azure Api Management
  • Azure App Service
  • Azure Architecture
  • .NET
  • .NET 5
  • .NET (Core) development
  • .NET Backend
  • .net core
  • .net framework
  • .NET Frontend
  • .NET Patterns & Practices
  • .NET Standard
  • .NET UI
  • ASP .NET Core
  • C#.Net
  • c#
  • Xamarin.Forms
  • Event Sourcing
  • CQRS & Event Sourcing
  • DDD
  • Domain Driven Design
  • CQRS


GDPR compliant Cloud Security en de

The General Data Protection Regulation (GDPR) has posed some major challenges for many software developers as well as for whole corporations and companies. The following three provisions keep presenting difficult tasks for many:
Art. 17 - Right to erasure
Art. 12 - Transparent information, communication and modalities for the exercise of the rights of the data subject
Art. 20 - Right to data portability
Erasure – Many times, data are mixed. Personal data and data that is needed to ensure operation (e.g., reports, processing) are interrelated. Consequently, erasure is far from easy.
Transparency – In order to ensure traceability of information (which data was collected when, and why), complete auditing is necessary.
Data portability – Our structure will never be compatible with that of another software. How are we supposed to import data into another software?
Compliance with the GDPR is no walk in the park!
Since 2005, there has been an architectural pattern which – through minimal adaptation – solves all of these problems and even offers added value to companies as well as customers. This pattern is widely known and is currently attracting more attention, due to a new hype. When it comes to compliance with the GDPR however, it is often immediately rejected.
I will show you how every company and developer can rapidly switch to this pattern in order to establish a 100% GDPR-compliant architecture. We will see how legacy data can be easily migrated and made compliant with the GDPR.

DSGVO konforme Cloud Security en de

Die DSGVO hat viele Softwareentwickler und auch ganze Konzerne und Unternehmen vor ein paar schwierige Herausforderungen gestellt. Folgende 3 Punkte stellen viele immer wieder vor eine Schwierige aufgabe:

Art. 17 - Recht auf Löschung

Art. 12 - Transparente Information, Kommunikation und Modalitäten für die Ausübung der Rechte der betroffenen Person

Art. 20 – Recht auf Datenübertragbarkeit

Diese Stellt Software vor schwierigen aufgaben. Oft werden die Daten vermischt – Personenbezogene Daten und die für die Sicherstellung des Betriebs relevanten Daten (für Berichte, Verarbeitung, etc.) sind zusammenhängend. Löschen ist nicht einfach.

Transparenz von Informationen (Wann wurden weswegen welche Daten erfasst) erfordert ein vollständiges Auditing.

Datenübertragbarkeit – Unsere struktur passt doch niemals zu der einer anderen Software. / Wie sollen wir die Daten einer anderen Software importieren?

Es ist nicht einfach mit der DSGVO!

Es gibt aber einen Silberstreif am Horizont, denn alles was wir brauchen um DSGVO-Konforme Software zu erstellen ist bereits bekannt.

Ich werde Zeigen, wie jedes Unternehmen und jeder Entwickler, sehr schnell umstellen kann um eine komplett DSGVO-Konforme Architektur aufzubauen und wie man Altdaten einfach migrieren kann und unter diese auch DSGVO-Konform macht.

What’s new in Azure Functions 2.0 en

For a long period of time the Azure Functions team focused on Azure Functions Runtime 1.0, although there was a version 2.0 publicly in preview. Runtime 2.0 had a lot of breaking changes compared to 1.0 and this was ok, since it was a major version change.
Many have tried version 2.0 and ran into a lot of problems, because version 2.0, now based on .NET core, was incompatible with fair amount of SDK libraries.
Since then the Team changed a ton in Runtime 2.0! Not only is it now Generally Available, they also changed the hole runtime model. Workers run out of process, workers can run within a Docker-Container, binding-extensions can be created and brought in by developers.
This is just a glimpse on the changes and the improvements of Runtime 2.0.

Unleash the full power of Excel Spreadsheets with Azure Serverless en

Thanks to the new Custom Functions for Excel, you can now connect your Spreadsheet to Azure. Where as fetching data from Azure Datastores in spreadsheets is a everyday feature, Custom Functions gives developers the power to move business logic out of a spreadsheet and into Azure to enable the best experience for Users. Use Azure Functions to host your business logic and Excel-formulas don’t have to change, when the algorithm changes. Use Azure SignalR Service to update a cell frequently, without any interaction.

In this session you see how you can use Excel and Azure Serverless to bring the best Experience to Users.

Build Secure Applications with Azure Kubernetes Service, Azure KeyVault and ARM Tempaltes en

Secret management isn’t an easy task, specially if you are using Azure Kubernetes Service. Often Secrets are stored in Kubernetes in a not very safe base64 encoding. ASP.NET developers often tend to ship connectionstrings within the docker-container and use Kubernetes ConfigMaps.

But Azure offers a great secrets management and cryptography service called Azure KeyVault, where secrets can be managed in a very secure way. Through ARM Template deployment it is possible to save connectionstrings to Azure Services like Azure Databases or Azure Storage only in KeyVault. By using Azure Pod Identity applications can fetch connectionstrings and secrets directly from Azure KeyVault during runtime. This makes software development-security much easier and much safer.

In this session you’ll see how all these come together to bring developers an easy to secure experience.

Dev-Security, it’s time for a change en

IT-security is mature by now, sure there are still some issues and we are far away from being done, but in the past few years it-pros and security experts have been working hard on enabling it-security at a low cost. Today there are great tools for monitoring and securing networks, application issues and vulnerabilities. Cyber-security-awareness is rising, and this is great news!


But while it-security is getting better and better these days, dev-security is lacking behind a lot. Companies focus more on making sure infrastructure is safe, then taking time to make sure software development is safe and this is because building security into software is not easy. There aren’t yet as many tools as for it-security. Knowledge on secure software development isn’t as spread as it should be. It is time for a change! Software needs to be secure by design, developers need easier ways to integrate security, services and tools are needed to provide security at a glimpse.

this is a keynote

gRPC for WCF developer en de

Microsoft introduced the Windows Communication Framework with DotNet 3.0 to finally replace DotNet Remoting. Unfortunately WCF didn't make it into DotNetCore and even though there is an open source replacement being developed by the community there is another technology filling that gap and it seems to lead the future of remoting. Google Remote Procedure Calls, short gRPC, is gaining more and more attention throughout the industry and even Microsoft supports gRPC as a first class citizen in AspNetCore. It is about time to look forward for WCF developers and look into gRPC as a replacement.

In this session we will have a closer look into gRPC for DotNetCore and go through a example demo to see the differences.

gRPC für WCF Entwickler en de

Mit DotNet 3.0 hat Microsoft das Windows Communitcation Framework eingeführt um DotNet Remoting endlich abzulösen. Leider ist mit DotNetCore WCF auf der strecke geblieben und auch wenn es bereits OpenSource Projekte die WCF in die DotNetCore Welt zu bringen, aber eine gänzlich andere Technologie scheint sich auf dem Vormarsch zu befinden und die Zukunft zu weisen. Google Remote Procedure Call, kurz gRPC findet immer mehr Zustimmung und selbst Microsoft hat gRPC mittlerweile als first class technology als teil von AspNetCore eingebunden. Ist es also nun Zeit WCF mit gRPC zuerstzen?
In dieser Session werden wir uns gRPC genauer ansehen und die unterschiede zu WCF besprechen und anhand einer Demo veranschaulichen.

White Label Apps with Azure AppCenter en de

Most transportation apps are very alike, they share the same user-flows, appearance and functionality. This isn't very surprising, since they're all for the same domain. What is needed is just always the same App but with different corporate identities and a different data source. White Label Apps are a solution to this and Azure AppCenter makes it very easy to automate the whole process.

We will look into how to automate White Labeling with AppCenter and Azure Functions.

White Label Apps mit Azure AppCenter en de

Die meisten ÖPNV-apps sind sich sehr ähnlich, alle haben die gleiche Nutzerführung, Darstellung und Funktionalität. Das ist nicht weiter verwunderlich, da die Domäne die Richtung stark vorgibt.
Wenn man nun eine App immer wieder aber mit anderer Corporate Identity anbieten möchte, liegt der Gedanke nahe mit White Label Apps zu Arbeiten. White Label Apps, sind Apps die immer das gleiche Verhalten haben, jedoch sich im aussehen unterscheiden. Dies lässt sich mit AppCenter sehr einfach komplett automatisieren.

In dieser Session schauen wir uns an wie sich das sehr leicht mit Azure AppCenter und Azure Functions umsetzen lässt.

Deploy Azure Functions secruly with Azure DevOps en de

Azure Functions has reached its 3rd version and it is still not that easy to deploy them. Setting AppSettings during deployment is also a pain and often they're not set in a secure way. ConnectionStrings and other secrets are often just added in plain text and therefor seeable for everyone who has access to the Functions instance. But Azure offers a much better way to handle secrets and connection strings called Azure KeyVault. Azure KeyVault can be fully integrated into Azure Functions and can be deployed directly through Azure DevOps and ARM-Templates.

In this session we will look into a complete and secure deployment for Azure Functions, KeyVault and all possible dependencies like Cosmos DB, Azure Storage or Service Bus.

Azure Functions mit Azure DevOps sicher deployen en de

Azure Functions ist mittlerweile in der Version 3 verfuegbar und noch immer ist das deployment eine Herausforderung. AppSettings beim deployment richtig zu setzen ist oft eine Herausforderung und oft wird dabei die Sicherheit vernachlaessigt. ConnectionStrings und andere Secrets werden im Klartext einfach in den AppSettings hinterlegt. Azure bietet mit KeyVault aber ein sehr gutes Werkzeug zum sicheren Verwalten von Secrets und ConnectionStrings. Der KeyVault laesst sich sehr gut in Azure Functions integrieren und mit Azure DevOps direkt ausrollen.

In dieser Session werden wir uns ein komplettes und sicheres deployment mit Azure DevOps fuer Azure Functions anschauen.

Cloud Computing en de

PaaS, IaaS, SaaS, CaaS, FaaS etc. Buzzword Bingo is the first thing that pops in ones mind. But what are those and what is the so called "Cloud Computing"? And what are Multi- or even Hybrid-Cloud and is that Cloud Computing? How do providers like 1&1, GoDaddy or T-Systems compare to AWS, Azure or Google Cloud or are only those really "Cloud"?

Cloud Computing en de

PaaS, IaaS, SaaS, CaaS, FaaS und so weiter. Buzzword Bingo ist das erste was einem bei Cloud einfaellt. Immer wieder hoert man „Aber das ist doch nicht Cloud Computing“, wenn mal wieder in einer Runde ueber den einsatz der Cloud gesprochen wird. Aber was heisste das ganze denn eigentlich und was befindet sich ueberhaupt hinter den Begriffen Multi- und Hybrid-Cloud und ist das nun alles Cloud Computing oder nicht? Wie schaut es denn mit deutschen Cloud anbietern, wie 1&1, Strato und T-Systems aus, sind nur AWS und Azure wirklich „Cloud“?

Secure Event Sourcing de en

In Zeiten zunehmender Sicherheitsverletzungen und Einbrüchen in Unternehmensnetzwerken sind sichere Datenaufbewahrung und Schutz der Daten immer wichtiger.
Zum einen muss sichergestellt werden, dass Daten, im Falle eines Einbruchs, weder gelesen werden können noch sollte das System damit zurechtkommen, dass Daten gelöscht werden.
Datenbanken wie Event Sourcing oder Blockchain haben aber den Anspruch, dass die Datenfragmente nicht gelöscht werden.
Um diese Datenbanken gegen Zugriff zu sichern und gleichzeitig die Rechte der Nutzer einzuhalten eignet sich eine Datenverschlüsselung.
Dies bringt aber auch Komplexität und Latenz mit sich, daher ist eine gute Planung und Architektur nötig.

In diesem Vortrag schauen wir uns Secure Event Sourcing an einem Praxisbeispiel an und besprechen die Hürden und Herausforderungen.

Kundendaten in der Cloud sicher verwalten mit Azure de en

Cloud Computing bringt viele Vorteile mit sich, um diese aber auch voll umfänglich nutzen zu können brauchen wir auch die Daten in der Cloud. Diese in der Cloud sicher aufzubewahren und zu verarbeiten ist jedoch nicht unumstritten und auch nicht einfach. Wir müssen daher sicherstellen, dass die Kundendaten gegen Cyberattacken und Spionage sicher sind.
In diesem Workshop werden wir zusammen eine praxisnahe Anwendung planen, ausarbeiten und dann gemeinsam in Azure implementieren.

How to manage customer data in Azure the secure way de en

Cloud computing offers a lot of advantages but to use those it's required to also have at some point customer data available in the cloud. Keeping and using these safely and securely in the cloud is not that easy, especially in times where cyber attacks and cyber espionage are real threats.

In this workshop we'll plan, work out the problems and then implement a demo application in Azure.

Secure Event Sourcing de en

In times of security vulnerabilities and increasing break-ins into intranets it's important to handle and store company data and customer data in a secure way. On the one hand it's important for the data to be unreadable for intruders on the other hand we need to make sure, that our system keeps working even when data needs to be deleted on a customer or business request. Special database engines like "Event Sourcing" or "Blockchain" require for a data not be deleted at all to satisfy data integrity. To make sure that we can use these database engines and still keep data safe and respect customer rights it is necessary to encrypt data. But this leads to more complexity and probably latency, therefor good planning and architecture is key.

In this session we will have close look at secure events sourcing and talk about the obstacles and challenges.

Custom Bindings for Azure Functions en

Different to AWS Lambdas and Google Cloud Functions, Azure Functions supports the concept of bindings. Bindings are powerful addition to a serverless framework and makes FaaS even more serverless by abstracting datasources and sinks from the function itself.
Azure Functions also has support custom bindings, which allows FaaS Authors to implement their own datasource/sink. Creating a custom binding is very easy and straight forward, but has also a few pitfalls.

Azure Functions en de

Microsofts Serverless Framework 'Azure Functions' is available for quite some time now and lots of developers and companies have since moved towards serverless functions and are overwhelmed by its simplicity and the cut in costs.
But the Azure Functions Team has since not been sleeping, they are constantly working on making the serverless functions experience on Azure better. Users are now able to Run Azure Functions within Docker Containers and the support for languages has been expanded too. With 2.0 there was only support for DotNet and Javascript functions, but the team put in a lot of afford to bring support not just for TypeScript but also for Python, Java and PowerShell.
And if you want to run Azure Functions on your own Kubernetes Cluster or even on a Cluster at a different Provider in a MultiCloud-Environment, then you can do it by using Project KEDA.

In this session we will look at the new Experience available on Azure, how Docker support works and how to use KEDA to run Azure Functions auto-scaling on your own Kubernetes Cluster.

Azure Functions en de

Microsofts Serverless Framework "Azure Functions" gibt es nun schon eine ganze Weile und Firmen und Entwickler die diese im Einsatz haben sind begeistert von der Einfachheit und dem Kostenersparnis.
Aber das Azure Functions-Team hat nicht einfach geschlafen oder sich auf den Lorbeerblättern ausgeruht, sie haben mit voller manpower daran gearbeitet dieses Framework besser zu machen. Seitdem gab es zahlreiche Neuerungen wie das ausführen von Azure Functions in einem Docker Container und es wurde auch am Support für weitere Sprachen gefeilt. Mit Version 2.0 gab es ursprünglich nur Support für DotNet und JavaScript, aber das Team hat sich ins Zeug gelegt und nicht nur den Support für TypeScript fertiggestellt, sondern auch für Python, Java und PowerShell.
Außerdem wurde ein weiteres Tool entwickelt, um es Kunden zu ermöglichen Azure Functions auf eigenen Kubernetes Clustern, im eingenen RZ oder auch bei anderen Anbietern, wie bei einer MultiCloud-Umgebung, laufen zu lassen. Dieses Tool trägt den Namen Project KEDA.

In dieser Session schauen wir uns die Neuerungen im Azure Portal an, wir schauen uns an, wie man Azure Functions in einem Docker Container laufen lassen kann und wie wir unser eigenes Scheduling und Auto-Skalierung mit KEDA im eigenen Kubernetes Cluster umsetzen kann.

Sia Ghassemi

dev-security, we need more and easier dev-security!

Düsseldorf, Germany