Bartosz Szurgot


Writing software for fun and profit. Doing a bit of electronics every now and then. 3d-printing when the moon is full. Geek during day, hacker during night time. Naturally spotted on the net. Main features include: C++, Linux, embedded, server side ops, abstract humor. Addicted to sleep. Occasional speaker at geeks’ gatherings, including: NDC Oslo, code::dive and C++ Users’ Group Wrocław



The Taming Of The Software: C++, Embedded... And More (2016)

creating software is a tricky thing. there are a lot of decisions to be made. what should be tested? which tests are beneficial? how to organize software components? where to put abstractions? how to make millions of lines of code understandable? these are everyday questions of every developer. making software for embedded platform brings one more challenge, namely different hardware platforms. how to make your embedded software easily debuggable? how to avoid complexities when multiple platforms need to be supported by the same code base? all of these problems seem to be well known, yet practice shows the wheel is being constantly reinvented... and usually turns out to be square. during the presentation battle-tested solutions for these common issues will be presented. while the main focus will be on C++ projects for embedded platforms, many ideas can be applied to different languages and project types as well. no in-depth knowledge of C++ or embedded development is required to understand the talk.


C++ vs. C: The Embedded Perspective (2015)

C is commonly known to be “the best choice for embedded”. Many embedded developers consider C++ to be generally slower and generating larger binaries… but is it really so? In this lecture, series of case studies are presented and measured in order to check out how things really are. Knowing how tools work allows to understand our software better. Even though presentation is focused on embedded software, most of the gained knowledge can be applied to desktop development equally well. Target audience are C and C++ developers. In-depth knowledge of embedded development is not required to understand the content


Threading: Dos And Don'ts (2014)

Writing concurrent software for modern architectures is a difficult task. There are cache memories, buffers, coherence models, and constantly increasing cores count. During the presentation a set of threading pitfalls will be shown, along with proper countermeasures - all in the context of multicore processors we have today and may expect in a near future. the whole presentation will be held in a spirit of modern C++, including the memory model.