Serhei Makarov's Website
About Me, in the third person
Current Status and Interests
I am interested in working to improve essential open source developer tools (SystemTap, GDB, LLDB, Valgrind or similar), both to improve their reliability and to develop more effective ways of diagnosing the kinds of complex, hair-pulling bugs that currently take developers days or weeks to resolve.
Interesting Work and Achievements
(2010-2014) I wrote a class schedule generator based on a linear programming model. This was used to produce customized class schedules for a small high school in Toronto, allowing students to request courses from a mixture of grade levels and reducing scheduling conflicts.
(2012-2013, 2017) I spent a year at Red Hat working on the SystemTap project, contributing language features such as a macro preprocessor and a regex matching engine. (One of the nice things about working on open source software is that your commit history is publically available.) I also presented a layman’s introduction to SystemTap at the FSOSS 2012 conference (video available on youtube). Later on, I extended my regex matching engine with support for subgroup extraction based on an algorithm by Ville Laurikari of TRE fame.
(2015-2017) At UofT, I formulated the event-chaining approach for automatically reconstructing the causes of a software failure. Event-chaining improves on existing symbolic execution methods (e.g. KLEE, ESD) by only analyzing program locations that are causally related to known external symptoms of the failure. This approach turns a very large exponential search problem into a much smaller (though still exponential) search problem, potentially making it feasible to bridge the remaining complexity gap using (fairly ad hoc) search heuristics. More details about the project are available in our paper published at SOSP 2017.
(2018-) At Red Hat, my current primary area of work is again SystemTap, including work on SystemTap’s BPF backend. I am also experimenting with ways to improve the debugging workflow for applications in the OpenShift container environment. Thus far, I’ve published the following blog articles about debugging on OpenShift: