Adnan Ademovic, Robotics Developer in Sarajevo, Bosnia and Herzegovina
Adnan Ademovic

Robotics Developer in Sarajevo, Bosnia and Herzegovina

Member since May 12, 2015
Adnan is an engineer with experience in desktop, embedded, and distributed systems. He has worked extensively in C++ (working at low and high levels), Python, and other languages. He is experienced in developing complex algorithms and intelligent systems, optimization, networking, and signal processing. He is very passionate about problems faced by robotics and mechatronics in general.
Adnan is now available for hire




Sarajevo, Bosnia and Herzegovina



Preferred Environment

Git, Linux, IntelliJ

The most amazing...

...thing I've created is Rust bindings for ROS, allowing many robotics companies to use Rust in their products, whether their tools or actual robots.


  • Teaching Assistant

    2014 - 2017
    University of Sarajevo, Faculty of Electrical Engineering
    • Designed ROS nodes to control ABB robot arms via network communication.
    • Prepared and performed laboratory works in robotics.
    • Prepared and performed laboratory works in modeling and simulating systems.
    Technologies: NumPy, MATLAB, Robot Operating System (ROS), Python, C++
  • Researcher

    2012 - 2015
    University of Sarajevo, Faculty of Electrical Engineering
    • Developed alternative algorithms for motion planning using different paradigms than the industry standard.
    • Created a tuner based on a genetic algorithm to optimize performance of global space exploration for repetitive tasks.
    • Explored ways to use volumetric data to get maximum information with minimum feedback, comparing it with standard planning algorithms.
    • Implemented an unscented particle filter and metric map-based approximate localization algorithm that is efficient at searching space with noisy and/or non-invertable feedback.
    • Integrated all of the above with ROS.
    Technologies: C#, Robot Operating System (ROS), Python, C++
  • Software Engineering Intern

    2014 - 2014
    Google Switzerland
    • Participated in the development of a pipeline used to provide real-time and historic data to search engines.
    • Created generic reusable clients for overcoming drawbacks of the PubSubHubBub protocol.
    • Performed load tests on Google's feed providing services to discover potential of future expansions.
    • Developed all solutions to be infinitely scalable linearly with hardware availability.
    • Analyzed possibilities of service deprecation and redesign.
    Technologies: BigTable, MapReduce, webapp2, Google App Engine, Python, C++


  • Rosrust - Rust Bindings for ROS

    Rosrust is a pure Rust implementation of a ROS client library.

    Based on available documentation about ROS's protocols, I've implemented compatible communication with the ROS framework, and made an API that is similar to the ones provided in C++ and Python, with slight twists allowed by Rust's expressiveness.

  • Library for Motion Planning

    After working on research for developing new methods of motion planning, the codebase for development has been extended to implementing other methods of motion planning, with the research results used for optimizing various existing algorithms.

  • 3D Graphics: A WebGL Tutorial (Publication)
    Whether you just want to create an interactive 3D logo, on the screen or design a fully fledged game, knowing the principles of 3D graphics rendering will help you achieve your goal. In this article, Toptal Freelance Software Engineer Adnan Ademovic gives us a step-by-step tutorial to rendering objects with textures and lighting, by breaking down abstract concepts like objects, lights, and cameras into simple WebGL procedures.
  • An Introduction to Robot Operating System: The Ultimate Robot Application Framework (Publication)
    Robot Operating System, a framework for building robot applications, allows developers to assemble a complex system by connecting existing solutions for small problems. In this article, Toptal engineer Adnan Ademovic gives us a step-by-step tutorial to building software for an onboard computer that allows us to remotely control and monitor a robot and running it in a simulated world using Robot OS.


  • Languages

    C++, Rust, Python, Octave, TypeScript, Go, JavaScript, C#, Java, SQL, CoffeeScript
  • Paradigms

    Distributed Computing, Parallel Computing, Dynamic Programming, Design Patterns, Object-oriented Programming (OOP), Functional Programming, Test Automation, Unit Testing, Distributed Programming, REST, MapReduce
  • Other

    Robot Operating System (ROS), Robotics, Embedded Systems, Cython, Applied Mathematics, Mathematics, Game Development, Optimization, Evolutionary Algorithms, Distributed Systems, Networking, Machine Learning, Modeling, Physics Simulations, AI Programming, Neural Networks, Regular Expressions
  • Frameworks

    AngularJS, .NET, Unity3D, Boost, webapp2, WebApp, Django, Windows Presentation Foundation (WPF), Android SDK, Qt
  • Libraries/APIs

    React, WebGL, Protobuf, Standard Template Library (STL), NumPy, jQuery, OpenCV, OpenGL, POSIX, WinForms, XNA
  • Tools

    MATLAB, Make, CMake, Microsoft Visual Studio, Git, Qt Creator, Atom, Vim Text Editor, IntelliJ, Jekyll, Android Studio, Eclipse IDE
  • Platforms

    Google App Engine, Linux, Windows
  • Storage

    MySQL, BigTable


  • Master's of Electrical Engineering Degree in Automatic Control and Electronics
    2013 - 2015
    University of Sarajevo; Faculty of Electrical Engineering - Sarajevo, Bosnia and Herzegovina
  • Bachelor's of Electrical Engineering Degree in Automatic Control and Electronics
    2010 - 2013
    University of Sarajevo; Faculty of Electrical Engineering - Sarajevo, Bosnia and Herzegovina

To view more profiles

Join Toptal
Share it with others