Hi there!


You have found my personal website.

I am Sebastian Schöner, and you are most likely here because you enjoy programming as well.

Choose your adventure:


  • A word on using modern C# in Unity

    I want to talk about why Unity C# code is different. This is about editor performance, with nullable types as an example. There’s some JSON parsing happening, which someone wants faster. (It has to be a JSON parser.) A significant portion here goes into peeking chars. “OK, that’s where I/O... [Read More]
    Tags:
  • How to enable the Windows Segment Heap

    If you have profiled Windows applications for any length of time, you will know that multi-threaded workloads on Windows often end up contending over some lock in the default Windows allocator. In the screenshot below (from the awesome Superluminal profiler), you can see that in the top right there are... [Read More]
  • Unmanaging Unity

    Unity has recently undergone some drastic management changes that affect the entire technology stack, and I have some ideas for how to best take advantage of that. The management in question here is of course memory management, and by recent changes I mean that Unity 6 included some low profile... [Read More]
    Tags:
  • Unity Burst - Interacting with managed code

    In the context of Unity, Burst often provides huge speed-ups compared to Mono at the cost of placing more restrictions on the code you can actually write. Burst has a leg up on Mono because Burst actually makes a good effort to optimize your code whereas Mono is more about... [Read More]
    Tags:
  • Getting people to do the right thing

    A useful guiding idea for my work at various companies has always been this: When you want to get people in a sizeable company to change their behavior, it is more effective to change the environment than to (ex)change the people. “Behavior” here might mean “the way that people write... [Read More]