Workshops
I speak about .NET and databases at international conferences - NDC, KCDC, Voxxed Days, Update Conference, .NET Developer Days. These workshops are that material, extended from a conference hour into a working day: the same demos, plus labs your team runs on their own machines, and time to ask about your codebase rather than mine.
All of them are delivered in English or Georgian, on-site in Tbilisi or remote.
The workshops
EF Core Performance: Query Plans, Indexes and Diagnosis
1 day · up to 15 developers · intermediate
Most slow .NET applications are slow in the database, and most teams debug that by guessing. This one replaces the guessing with a method.
You’ll cover:
- How EF Core turns LINQ into SQL, and how to see the SQL it actually sent
- Reading a query plan: scans vs seeks, estimated vs actual rows, where the time really goes
- Query plans inside Visual Studio with EFCore.Visualizer, and in LINQPad
- The expensive mistakes: N+1, cartesian explosion, client evaluation, tracking where you don’t need it, and when split queries help
- Indexes: what the plan tells you is missing, covering indexes, and why the index you added did nothing
- Diagnostics in production: EF Core logging, interceptors and OpenTelemetry
- Constraint violations as typed exceptions with EntityFramework.Exceptions
The lab: a deliberately slow application to profile and fix - or, better, your own. Teams that send me a slow query and its schema beforehand get it worked through live.
Your team leaves with: a repeatable way to answer “why is this endpoint slow?” without waiting for a DBA.
Semantic Search and Vector Embeddings in .NET
1 day · up to 15 developers · intermediate
Keyword search finds documents containing the words. Users want the ones that answer the question. This is the gap, and how to close it in .NET.
You’ll cover:
- Why
LIKEand full-text search fall short, and what “meaning” means to a machine - Embeddings from first principles: vectors, dimensions, which model, what it costs
- Storing vectors where your data already lives: Azure SQL’s native vector type, PostgreSQL with pgvector
- Indexing and approximate search: HNSW and IVFFlat, and the recall-versus-latency trade you are making
- Hybrid search: combining full-text and vector results, and why pure vector search often loses
- Retrieval-augmented generation: chunking, retrieval quality, and evaluating whether it works
- Running Azure OpenAI directly from PostgreSQL with the
azure_aiextension
The lab: build semantic search over a real corpus, then measure it against the keyword search it would replace.
Your team leaves with: a working search pipeline and an honest picture of the cost and latency.
Beyond Relational: JSON, Spatial, Full-Text and Temporal Data
1 day · up to 15 developers · intermediate
The database you already pay for does far more than CRUD. This is the workshop I’ve given most often, at KCDC, Basta, Update Conference and elsewhere.
You’ll cover:
- JSON columns: storing, indexing and querying documents from EF Core - and when a JSON column beats a table, which is less often than people think
- Full-text search: SQL Server and PostgreSQL, ranking results, combining text search with relational filters
- Spatial data: geography against geometry, NetTopologySuite, nearest-neighbour queries and spatial indexes
- Temporal tables: system-versioned history, auditing and point-in-time queries, with and without EF Core
- Choosing between these and reaching for another datastore
The lab: one CRUD application, extended with each capability in turn.
Your team leaves with: a sample repository and a decision guide for when each feature earns its place.
Modern SQL for .NET Developers
1 day · up to 15 developers · all levels
Most developers’ SQL stopped growing after JOIN and GROUP BY. SQL did not.
You’ll cover:
- Common table expressions, including recursive ones for hierarchies and graphs
- Window functions: running totals, rankings, gaps and islands, period-over-period
LATERALandAPPLYfor top-N-per-group and correlated work- Multi-dimensional aggregation with
GROUPING SETS,CUBEandROLLUP - Temporal, JSON and vector operations in one query language
- Knowing when to stay in LINQ and when to drop into SQL - and how to keep the SQL testable when you do
The lab: reporting queries that are painful in LINQ, rewritten in SQL that is shorter and faster.
Your team leaves with: a set of query patterns they will reach for the same week.
Formats
- Half day - one topic, demo-led, light hands-on. Good for a first engagement.
- Full day - as above, the default.
- Two days - two workshops back to back, or one plus a working session on your own code.
Up to 15 developers keeps it hands-on; more than that and it becomes a lecture, which is worth less.
Start with a free session
Before booking anything, I’ll give your team the conference version of any of these as a free lunch-and-learn - 45 minutes, remote or in your office. Your developers see whether the material is useful and whether I’m worth a day of their time, and you decide afterwards.
Get in touch
Use the contact form or find me on LinkedIn. Tell me what your team is struggling with and I’ll say honestly whether one of these helps.