Ivica Bogosavljevic, Developer in Belgrade, Serbia
Ivica is available for hire
Hire Ivica

Ivica Bogosavljevic

Verified Expert  in Engineering

Embedded Systems Developer

Location
Belgrade, Serbia
Toptal Member Since
July 30, 2021

Ivica is a senior software engineer with 10 years of experience in the domain of Linux and bare-metal-based embedded systems. His professional focus is application performance improvement — techniques used to make your C/C++ program run faster by using better algorithms, exploiting the underlying hardware, and using the standard library, programming language, and operating system. Ivica is also a writer for a performance-related tech blog.

Portfolio

Johny's Software Lab
Performance Tuning, Performance
Syrmia
C++, Performance Tuning, Hardware Drivers, Linux, Make
RT-RK
C++, Compilers, Google V8, MIPS

Experience

Availability

Part-time

Preferred Environment

Linux, Git, GCC, Clang, CMake, GNU Make

The most amazing...

...thing I've achieved is speeding up an image processing algorithm used for feature extraction in machine learning eight times compared to its original version.

Work Experience

Application Performance Specialist

2020 - PRESENT
Johny's Software Lab
  • Conducted the performance analysis and performance tuning for several different codebases in the domain of scientific computing, video processing, speech recognition, and image processing.
  • Helped set up functionality requirements for Parallelware Analyzer, a tool that helps their users achieve the maximum performance of their C/C++ codebase through parallelization and vectorization.
  • Wrote several blog posts targeted at developers that explain various ways of doing performance optimizations for C and C++ programs.
Technologies: Performance Tuning, Performance

Senior Software Developer

2018 - 2020
Syrmia
  • Served as the engineering manager for a small team of five in charge of the CISCO Silicon One networking chip infrastructure team.
  • Implemented various features related to infrastructure, including low-level development and optimizations of the driver, configuration, and optimization of the Linux environment the driver is running.
  • Performed board bring-up on an FPGA chip simulator for the graphene chip.
  • Implemented a dedicated memory allocator that improved the performance of the driver so the driver could meet the performance requirements about the network route insertion into the routing table.
Technologies: C++, Performance Tuning, Hardware Drivers, Linux, Make

Senior Software Developer

2015 - 2018
RT-RK
  • Served as a developer and manager of a small team of five for Google's V8 JavaScript compiler MIPS port. Google V8 JavaScript compiler is a ubiquitous compiler part of the Chrome browser. MIPS is an HW architecture used in many embedded devices.
  • Oversaw the development of V8 features and performed the port to MIPS architecture.
  • Added support for MIPS revision 6, a new version of MIPS that is not backward compatible with earlier versions and includes many new features.
  • Added MIPS support for WASM. WASM stands for WebAssembly, a new web standard aimed for high-performance web applications.
Technologies: C++, Compilers, Google V8, MIPS

Parallelware Analyzer

http://www.appentra.com
Parallelware Analyzer is a static source code analysis tool aimed at developers which helps them speed up the performance of their code. I was working as an application performance specialist, analyzing various source bases, helping write functionality requirements for the tool, and producing blog posts describing various techniques for performance optimizations.

Software Blog — Johny's Software Lab

http://johnysswlab.com
Johny's Software Lab is a software blog oriented at developers, teaching them techniques for writing fast and efficient code. I am the main maintainer of the site, and I write most of the articles. I run the experiments, perform the tests, and write the articles published on the site.

Cisco Silicon One Networking Chip | Infrastructure and Low-level Driver

https://www.cisco.com/c/en/us/solutions/silicon-one.html
Cisco Silicon One is the network routing chip by Cisco. I was the leader of the driver team in charge of the project's infrastructure. This included both management work (2-5 people) and development work in the domain of low-level driver development and optimization, configuration and optimization of the Linux environment the driver is running, and configuration of the testing infrastructure. I also configured parts of the system that are not directly related to the device, such as logging subsystem, task management, and device properties.

Google V8 JavaScript Compiler Port for MIPS Architecture

https://v8.dev
JavaScript compiler is part of Chrome web browser and maintained by Google. It is written in C++, but the back end of the compiler generates MIPS assembler, so knowledge of both assembler and C++ was needed.

Managed a team of 3-6 developers, including task allocation, communication with customers, external dependencies, SW development, and debugging.

List of patches: https://chromium-review.googlesource.com/q/owner:ibogosavljevic%2540wavecomp.com.

Other

Performance Tuning, Performance, Clang, Embedded Systems, Software Development, Hardware Drivers, Compilers, Google V8, Linux Device Driver

Languages

C, C++, Embedded C, Embedded C++, C++11, C++17, MIPS

Tools

GCC, Git, CMake, GNU Make, Make

Platforms

Linux, Embedded Linux

2007 - 2009

Master's Degree in Software System Engineering

RWTH Aachen University - Aachen, Germany

2003 - 2007

Bachelor's Degree in Software Engineering

University of Belgrade - Belgrade, Serbia

Collaboration That Works

How to Work with Toptal

Toptal matches you directly with global industry experts from our network in hours—not weeks or months.

1

Share your needs

Discuss your requirements and refine your scope in a call with a Toptal domain expert.
2

Choose your talent

Get a short list of expertly matched talent within 24 hours to review, interview, and choose from.
3

Start your risk-free talent trial

Work with your chosen talent on a trial basis for up to two weeks. Pay only if you decide to hire them.

Top talent is in high demand.

Start hiring