Sign in

Michal Strehovský

@migeel.sk
708 followers 120 following 96 posts

I help building the .NET runtime at Microsoft. My tweets are my own opinions and/or shitposts, not the official party line.

PostsRepliesMedia
Michal Strehovský @migeel.sk · 03/09/2026
It's happening! Google is outlawing reflection! android-developers.googleblog.com/2026/08/app-...
android-developers.googleblog.com
Elevating app quality: Reducing memory usage and improving device migration
News and insights on the Android platform, developer tools, and events.
160
Michal Strehovský @migeel.sk · 19/05/2026
I'll be speaking at the .NET Developers meetup in Tokyo on June 9th!
Tokyo .NET Developers Meetup #67 - Native AOT And Runtime Async, RSVP at tokyo-dotnet.com
020
Michal Strehovský @migeel.sk · 06/05/2026
1/N I vibe-coded a C compiler that targets .NET IL. It can build unmodified PureDOOM into a .NET app that runs on both .NET 10 and desktop framework.
1134
Reposted by Michal Strehovský
Ahmed Walid @ahmedwalid.bsky.social · 21/12/2025
.NET 11 (NativeAOT) on Windows ARM32!!
0143
Michal Strehovský @migeel.sk · 08/12/2025
Found Sokol.NET - C# bindings for the Sokol crossplat gfx framework. If you haven't heard about Sokol, it's a C header-only library to build crossplat gfx/audio apps (games). Sokol.NET wraps it for C# (Win/Linux/Mac/Android/iOS/WASM). Tons of samples. Also native AOT: github.com/elix22/Sokol...
github.com
GitHub - elix22/Sokol.NET: Cross-platform graphics framework for C# with .NET NativeAOT | Desktop • Mobile • Web | Direct3D • Metal • OpenGL • WebGL
Cross-platform graphics framework for C# with .NET NativeAOT | Desktop • Mobile • Web | Direct3D • Metal • OpenGL • WebGL - elix22/Sokol.NET
1124
Reposted by Michal Strehovský
Damian Edwards @damianedwards.com · 13/11/2025
Nice article on the state of native AOT with the release of .NET 10: code.soundaranbu.com/state-of-nat...
code.soundaranbu.com
State of Native AOT in .NET 10
After 3 years since my previous article on Native AOT, let’s find out how far AOT compilation in .NET has come.
03010
Michal Strehovský @migeel.sk · 07/11/2025
Sorry but the off-color corner of the new Word icon looks like a compression artifact when taskbar is set to small (and sorry but small & never combine & show labels is the only correct taskbar configuration on Windows, this is not macOS).
290
Reposted by Michal Strehovský
valentinbreiz.bsky.social @valentinbreiz.bsky.social · 19/10/2025
Cosmos Gen3: The NativeAOT Era and the End of IL2CPU? valentin.bzh/posts/3 #dotnet #osdev #csharp
0104
Reposted by Michal Strehovský
Washi @washi-dev.bsky.social · 18/04/2025
After #flareon11 challenge 7, I got inspired to build tooling for #dotnet Native AOT reverse engineering. As such, I built a #Ghidra Analyzer that can automatically recover most .NET types, methods and frozen objects (e.g., strings). 👉https://blog.washi.dev/posts/recovering-nativeaot-metadata/
0143
Reposted by Michal Strehovský
Jb Evain @jb.evain.net · 20/03/2025
A small template to write self-contained Win32 services in C# with NativeAOT: gist.github.com/jbevain/b295...
gist.github.com
Service.cs
GitHub Gist: instantly share code, notes, and snippets.
1185
Reposted by Michal Strehovský
Kevin Gosse @kevingosse.net · 11/02/2025
I've published the third part of my series of articles about writing a .NET garbage collector in C#. In this one, we add a helper method to inspect the objects in memory, learning about thread modes and the DAC. minidump.net/writing-a-ne... #dotnet
minidump.net
Writing a .NET Garbage Collector in C#  -  Part 3
Using NativeAOT to write a .NET GC in C#. The third part adds some tooling to inspect the objects stored on the heap.
0164
Reposted by Michal Strehovský
Kevin Gosse @kevingosse.net · 28/01/2025
After writing a profiler in C#, I've now published the first of a series of articles about how use C# to... write a .NET Garbage Collector. #dotnet minidump.net/2025-28-01-w...
minidump.net
Writing a .NET Garbage Collector in C#  -  Part 1
First part of a series of articles about writing a .NET Garbage Collector in C# using NativeAOT. This part sets the expectations and setups the project, dealing with the first difficulties.
1309
Michal Strehovský @migeel.sk · 24/01/2025
Cool project: a hypervisor-based emulator for Windows x64 user-mode executables. One of my first thoughts upon seeing it - "I wonder if it's also possible to call the Windows hypervisor APIs from C#". github.com/x86matthew/W...
github.com
GitHub - x86matthew/WinVisor: WinVisor - A hypervisor-based emulator for Windows x64 user-mode executables using Windows Hypervisor Platform API
WinVisor - A hypervisor-based emulator for Windows x64 user-mode executables using Windows Hypervisor Platform API - x86matthew/WinVisor
0155
Reposted by Michal Strehovský
Kevin Gosse @kevingosse.net · 07/01/2025
I published part 5 of my "Writing a .NET profiler in C#" series. All the foundations built in the previous articles have been moved to a library named Silhouette. In this new article, we finally have everything we need to write an actual profiler. minidump.net/writing-a-ne... #dotnet
minidump.net
Writing a .NET profiler in C#  -  Part 5
Part 5 of the series about using NativeAOT to write a .NET profiler in C#. We have all the foundations, we’re finally writing an actual profiler.
12811
Reposted by Michal Strehovský
Kirill Osenkov @kirillosenkov.com · 29/12/2024
Finally had time over the holidays to realize a long-standing dream of mine: a hex editor that knows about the PE file and .NET metadata format. You can click any byte and it will show you which data structure it is in the tree. Every byte is covered. The parser is at github.com/KirillOsenko...
Screenshot of a hex editor with a PE file open, on the left there's a tree with the headers, sections and other parts of the file format. On the right there's a typical table of bytes in hex.
824264
Reposted by Michal Strehovský
Kyle Kukshtel @kkukshtel.bsky.social · 29/12/2024
got my custom sokol-backed c# game engine zinc compiling to wasm using nativeaot-llvm! and for anyone else headed in a similar direction, I spent some time writing up what it took, what bugs I encountered, etc! give it a read here #gamedev #zinc #csharp kylekukshtel.com/csharp-wasm-...
kylekukshtel.com
So You Want To Compile Your C# Game Engine To The Web With WASM - k-hole
Diving into the NativeAOT-LLVM compile chain to make my game engine work on the web
3226
Michal Strehovský @migeel.sk · 19/12/2024
Forgot that the docs are here: www.nuget.org/packages/siz.... To install, simply `dotnet tool install sizoscope --global` but you'll want to read the docs to find out how to create the files this tool operates on.
nuget.org
sizoscope 1.1.0
.NET tool to analyze size of Native AOT binaries.
240
Michal Strehovský @migeel.sk · 19/12/2024
1/3 New version of sizoscope, my tool to analyze size of .NET native AOT executables, is out! It can now show you sizes of some of the blobs within the executable just to give a more complete picture.
1194
Reposted by Michal Strehovský
WalkingCat @h0x0d.bsky.social · 14/12/2024
Invoke Mechanism for the .NET CLR, etc. - George Bosworth - 2001/09 www.youtube.com/watch?v=Uimh...
youtube.com
.NET Workshop - Invoke Mechanism for the .NET CLR, etc. - George Bosworth, Nick Benton - 2001/09
YouTube video by WalkingCat
044
Michal Strehovský @migeel.sk · 27/11/2024
Thanksgiving is approaching in the US and that means time with family. People in your family were presented with this dialog in the past and probably just clicked the button Google wanted them to click. Ask them if they want to browse the web, or if they want web to browse them.
Enhanced ad privacy dialog in Google Chrome
070
Michal Strehovský @migeel.sk · 26/11/2024
If you're into low level .NET, you should give @xoofx.mastodon.social.ap.brid.gy a follow!
043
Michal Strehovský @migeel.sk · 26/11/2024
JIT compiled .NET will often be faster than AOT compiled .NET thanks to dynamic PGO. But AOT compilation has some tricks up the sleeve too. In .NET 9, the TechEmpower JSON benchmark ends up a bit faster with AOT.
Screenshot of TechEmpower JSON benchmark showing 2,921,958 rps with AOT and 2,920,527 rps with JIT.
182
Reposted by Michal Strehovský
Clinton Ingram @saucecontrol.us · 22/11/2024
The C# Community Discord is putting on another virtual conference, and I'll be talking performance. SIMD content guaranteed. Nov 24 @ 17:30 UTC www.youtube.com/watch?v=T4Ao...
youtube.com
Solution2: C# Is Faster Than C++!!!!!1!!! with Clinton Ingram
YouTube video by .NET Foundation
194
Michal Strehovský @migeel.sk · 20/11/2024
1/4 Life hack: uninstalling the Notepad app in Windows 11 gives you back old notepad.exe that starts faster and uses less memory. This Notepad is going to be a bit cursed and registry hacks are needed to uncurse it. 👇
292
Michal Strehovský @migeel.sk · 19/11/2024
Last time I got free stuff from Microsoft as an employee was when I got a T-shirt for shipping .NET 6.
1120
Michal Strehovský @migeel.sk · 18/11/2024
The .NET native AOT compiler used to have an unsupported mode where it broke all reflection for size savings. I added the mode in 2019 when Hello World was 4 MB and with broken reflection only 1 MB. It was a good goalpost. In .NET 9 they're both ~1 MB: goalpost reached! github.com/dotnet/runti...
"Grant Gustin Next To Oliver Queen's Grave" meme with the name on the gravestone replaced to read "Reflection-free mode 2019 - 2024".
2324
Reposted by Michal Strehovský
Fabien Sanglard @fabinou.bsky.social · 17/11/2024
Game Engine Black Book: DOOM v1.2 Game Engine Black Book: WOLFENSTEIN 3D v2.2 The Book of CP-System v1.0 Free pdfs, high-quality 80g premium color prints, PlayStore, and source code are now available. fabiensanglard.net/three_books_...
59923
Michal Strehovský @migeel.sk · 15/11/2024
My Deep dive on native AOT talk is now available for on-demand viewing! www.youtube.com/watch?v=Gmn-...
youtube.com
Deep dive on native AOT
YouTube video by dotnet
0173
Michal Strehovský @migeel.sk · 15/11/2024
Starting in 10 hours from now here, available on-demand later: www.youtube.com/watch?v=Gmn-...
youtube.com
Deep dive on native AOT
YouTube video by dotnet
062
Michal Strehovský @migeel.sk · 13/11/2024
1/N When the .NET native AOT compiler compiles your app to native code, it needs to perform whole program analysis to figure out all parts of your program. Reflection kind of throws a wrench in that because some reflection is really hard to reason about statically.
1122
Reposted by Michal Strehovský
Dylan Perks @perksey.com · 11/11/2024
CALLING .NET DEVS: Solution2 is the 2nd conference organized by the C# community discord server. Follow us from Nov 18th to Nov 24th for some great talks with great people about .NET and C#! Join on Discord: discord.gg/csharp & YT: www.youtube.com/c/NETFoundat...) (P.S. .NET peeps please repost!)
1126
Michal Strehovský @migeel.sk · 11/11/2024
.NET conf 2024 is this week and I'll go deep into native AOT on Friday!
081
Michal Strehovský @migeel.sk · 18/09/2024
030
Michal Strehovský @migeel.sk · 12/09/2024
Different ways .NET makes sure your code is done fast.
020
Michal Strehovský @migeel.sk · 21/05/2024
1/ There is now a 4 MB portable ZIP version of my Sizoscope tool (built with C# and WinForms) that runs on Windows and Linux. While WinForms in the .NET 9 nightlies is still not fully trim-safe or AOT-safe it didn't require too many hacks to get native AOT working with Sizoscope.
110
Michal Strehovský @migeel.sk · 02/01/2024
For my next trick I'm going to build a 64 MB self-contained game in C# and then shrink it to 1936 bytes in 10 steps. Read all about it in my latest article: migeel.sk/blog/2024/01...
053
Michal Strehovský @migeel.sk · 11/12/2023
Wrote an article on how I built a bare-metal bootable "game" in C#: migeel.sk/blog/2023/12...
migeel.sk
Building a bare-metal bootable game for Raspberry Pi in C#
How I built a graphical bootable "game" for the Raspberry Pi (or any other modern computer) in C#.
020
Michal Strehovský @migeel.sk · 25/11/2023
Made a bare metal bootable maze "game" in C# as a demo of what's possible with bflat's zerolib. Anyone interested in reading a write-up of how I did it? Source here: github.com/MichalStreho...
030
Michal Strehovský @migeel.sk · 22/11/2023
I've released v8.0 of bflat - my take on C# with a native-first compilation model. If you're on Windows you can grab it with `winget install bflat`. Linux version in the repo releases tab.
flattened.net
bflat - C# as you know it but with Go-inspired tooling
Build tiny, selfcontained, and native executables with C#
021
Michal Strehovský @migeel.sk · 22/11/2023
Wrote a new article: Top 3 Whole Program Optimizations for AOT in .NET 8
migeel.sk
Top 3 whole program optimizations for AOT in .NET 8
A look at some of the whole program optimizations that are done when you compile your app as native AOT.
000
Michal Strehovský @migeel.sk · 15/11/2023
New version of Sizoscope, my tool to inspect size of .NET native AOT binaries is out. If you're on .NET 9, the tool will now show you "frozen objects", a frozen part of the GC heap that the compiler generated ahead of time. They're the result of executing your code ahead of time.
171