Master and Bachelor thesis topics for Microsoft in Prague, Czech Republic

Latest update: 2025/10/23

Topics are primarily for MFF UK, although we have ongoing collaboration with FI MUNI, FIT CVUT and FIT VUT -- all universities (not limited by this list or to Czech Republic) are welcome to participate.

If you pick a topic, please ping me if the topic is not taken. Also please make sure your university agrees with it. If everyone is onboard, I will connect you with Microsoft expert in the area to support you through topic refinement and your work.

Ping me if you are not sure about a topic, or if you have ideas for other related topics we might be able to support.



Notable defended thesis

Katerina Prusova - L'anatra - Library for interoperability between C# and Java



Tomas Husak - Improved Type Inference in the C# Language



Radek Zikmund - Managed QUIC protocol implementation



Bachelor thesis - topics

Create an IL rewrite library on top of System.Reflection.Metadata. The library should make it easy to create a tool which takes an assembly on the input, makes some modifications to it (for example add an attribute to some member, remove a member, or add some item) and writes it out as a new assembly. Focus of the project will be correctness, performance and ease of use (in that order). The library will be later used to port the existing ILStrip tool to it and then use it to improve trimming for mobile scenarios (by moving custom steps from a trimmer into this new tool).



Implement some .NET runtime analyzers and code fixers. .NET runtime (Roslyn) analyzers inspect your C# or Visual Basic code for code quality and style issues. Code fixers offer you options to fix your code. List of analyzers and code fixers can be found here



Implement some ASP.NET Core analyzers and code fixers. .NET runtime (Roslyn) analyzers inspect your C# or Visual Basic code for code quality and style issues. Code fixers offer you options to fix your code. List of analyzers and code fixers can be found here



F# Compiler - Support 'without' for anonymous records



Master thesis - topics

[Reseved as of 2025/7 - Patrik Trefil, MFF UK] Prototype WebTransport in .NET Core based on already existing HTTP/3 and QUIC implementations. WebTransport is new networking protocol based on HTTP/3 and QUIC protocols, currently in draft stage. It supports sending data both reliably and unreliably. It can be viewed as next generation of popular WebSockets protocol (which is based on HTTP 1.1 and HTTP/2 protocols).



⁠Port .NET trimming tool from Cecil API to System.Reflection.Metadata backend. .NET trimming tool is in repo dotnet/runtime. The goal is to replace old-style Cecil APIs with .NET Core inbox System.Reflection.Metadata-based implementation. Tracking issue.



Create mutation testing for .NET project based on CLR Instrumentation Engine. Similar to stryker-mutator/stryker-net (Mutation testing for .NET core and .NET framework). The goal is to scale on large code bases (like Roslyn) by analyzing and reusing parts of Stryker, while migrating Stryker backend-logic to CLR Instrumentation Engine for collection of code coverage of each test and for performing the mutations



Create coverage-guided fuzzing for .NET/C#. Fuzzing is used for discovering security bugs (crashes, memory leaks, hangs) in SW by randomly changing its input (binary or text). Coverage-guided fuzzing uses program instrumentation to generate "smarter" random inputs to discover security problems faster. Similar tools exist for other languages, e.g. dvyukov/go-fuzz



[Reserved as of 2025/9 - Vojtech Gadurek, MFF UK] - F# Compiler - Type Providers - Generate types from other types



[Reserved as of 2025/9 - Mikulas Vitek, FIT VUT] - F# Compiler + Language design - Support for anonymous type-tagged union types



Bachelor or Master thesis

F# Tooling - Search engine for typed functions by using F# Compiler APIs (aka 'hoogle for F#')



Ideas for thesis

Orleans projects - see full list



Augment the regex source generator to support RegexOptions.NonBacktracking. This is not only about emitting source for NonBacktracking, but figuring out what additional APIs would need to be exposed for that generated source to function. This is a hard project.



[Reserved as of 2025/7 - Krystof Suchanek, FI MUNI] - Build a LlamaIndex-like solution on top of Microsoft.Extensions.VectorData / Microsoft.Extensions.AI, in particular for handling advanced RAG patterns easily in .NET.



Build a Visual Studio extension using OpenAI realtime API and .NET that lets you discuss your code with AI, with integrated tools so that the AI can automate changes back into the code, launch tools, etc.



Add JSON Path or JSON Merge Patch support to System.Text.Json.



Write an intercepting source generator for LINQ that replaces calls to LINQ methods with optimized implementations based on the exact sequence of calls, removing various overheads.



Implement state-of-the-art stable sorting routines with the goal of benchmarking and picking one to use to replace Array.Sort’s implementation, assuming an implementation can be found that rivals the current unstable algorithm employed.



BigInteger rewrite to address existing issues, keep performance in mind



[Reserved as of 2025/? Roman Poliacik - TBD] - Guessing passwords using GenAI - student's idea