Introducing DPE University — Explore free, self-paced training courses on Gradle and Maven
Developer Productivity Engineering in the Complex Low-Level Systems World Logo

Bartosz Zator

Head of Mobile Security

Samsung Poland Research Institute

Summit producer highlights:

For Adrian and Bartosz at Samsung, software running on embedded systems—powering mobile phones, cars, and IoT devices—presents complex needs that require a specialized approach to DPE. In this talk, learn why Samsung created Code Aware Services (CAS) to bring forward data about builds and source code to further refine their developer productivity metrics and initiatives.

Watch Video

About the session

For Adrian and Bartosz at Samsung, software running on embedded systems—powering mobile phones, cars, and IoT devices—presents complex needs that require a specialized approach to DPE. In this talk, learn why Samsung created Code Aware Services (CAS) to bring forward data about builds and source code to further refine their developer productivity metrics and initiatives.

Watch the video Play Button

View the slides Arrow Down

Developer Productivity Engineering in the Complex Low-Level Systems World

Software systems powering OS kernels, basebands, bootloaders, firmware, IoT or automotive build the foundation of infrastructure that billions of people rely on every day. Developing and maintaining such systems is challenging as they usually consist of a very large number of source files, have multiple configurations, hundreds of modules and various custom build steps. Therefore, tools that help engineers navigate through the growing complexity of low-level systems are highly desirable.

In this talk, we present various developer productivity engineering (DPE) techniques that we developed and used in the last few years to ensure high performance and effectiveness of engineers working on the system layer of the OS. The cornerstone of these techniques is our novel Code Aware Services (CAS) toolchain which opens up new possibilities for DPE-related applications.

CAS is a set of tools for extracting information from the build process and the source code. This includes data such as how a particular software image is created or information on functions, types and dependencies across them. CAS makes this data easily accessible to external applications.

In the talk, we will first present core components of CAS: low-overhead build tracer module, clang-based source code processor and Python libraries used for application development. Then, we will talk about selected DPE techniques and tools developed on top of CAS.

One DPE tool we will present is Build Awareness Service: a system which provides detailed information acquired during the full build of a product. We will demonstrate how this information could be used to improve various aspects of S/W Engineer’s job:

  • Better code search and IDE indexing enhancements
  • Using build-related data to automate various S/W related operations, e.g. generate custom Makefiles for partial/incremental builds or fine-grained static analysis, provide process visualization, build dependency analysis, execution time measurements etc.

Watch The Video

Get more DPE

The slides

Array
Samsung Poland Research Institute

Who is Bartosz Zator?

Bartosz Zator is a Mobile Security manager at Samsung Electronics Poland R&D where he leads a team responsible for security assessment of the latest flagship mobile products. Bartosz spent over 15 years working on various aspects of mobile development, including Linux kernel development, product commercialization, factory process improvement, DSP programming, build optimization and more. Bartosz is passionate about creating development tools that help software engineers. For the past 7 years, his main task has been to make the life of security engineers radically easier. To this end, he proposed and led several projects aimed at creating automatic vulnerability detection tools for finding and triaging software bugs. Many of these tools can be successfully applied in the more general S/W Engineering context at the scale of a large mobile product code to improve developer productivity.