Borislav Stanimirov

speaker

Borislav Stanimirov has been a professional C++ programmer since 2002 and a game programmer since 2006. He has worked at Masthead Studios on Earthrise, in GameLoft, and in several startups including Chobolabs on Mayhem (http://www.playmayhem.com/).

His interests include low-level programming, optimizations, programming languages, and software architecture and design.

He is also active on GitHub: https://github.com/iboB.

 

Presentations

Bringing Business Logic Back to C++ (2018)


For the past 15 or so years business logic has been gradually disappearing from C++ code in favor of other languages.

Business logic is often very complex and people need high-level abstractions do deal with it. It changes often and people need a way to efficiently and safely incorporate the changes. It often has complex workflows and people want to test and debug them efficiently.

C++ has a bad reputation among many programmers. Languages like Python, Ruby, JavaScript, C#, and many more, on the other hand, are often said to be much more elegant and the process of programming in them is often cited as much more efficient and pleasant. It's no wonder that more and more projects are being developed in such languages. Even if the performance of C++ is needed, it's usually kept in a small core module while the actual business logic is written in another language alongside it. However, this has drawbacks like worse performance, the complexity of a language binding layer, and inevitable code duplication.

This doesn't have to be the case!

In this talk, we'll see some developments and techniques which help us greatly improve the expressiveness and work efficiency of writing business logic in C++.

 

CPU-Friendly Code (2018)


The Big-O notation isn't everything. There are many complexities hidden from the programmer by the hardware and software platforms which execute their code.

Knuth said that premature optimization is the root of all evil, but early optimization doesn't necessarily need to be premature.

In this talk, we'll discuss the architecture of a typical CPU and how your software can benefit in terms of performance (and power consumption) if you employ this knowledge in writing it. We'll also talk about how operating systems typically manage programs and how to benefit in terms of performance using this knowledge.

The talk introduces some fundamental principles: data and instruction cache-locality, branch prediction, C and C++ compiler intrinsics, and SIMD. It will also briefly cover operating-system concepts like virtual memory, syscalls, and memory allocation.

 

The Bad Big Wolf Meets Riding Hood Little Red (2018)


Borislav didn't provide us with a description. When we asked him about it, he only responded with: "You know... mumble, mumble"... in writing. So go at your own risk.