Adnan Ademovic, Developer in Sarajevo, Bosnia and Herzegovina
Adnan is available for hire
Hire Adnan

Adnan Ademovic

Verified Expert  in Engineering

Robotics Developer

Location
Sarajevo, Bosnia and Herzegovina
Toptal Member Since
July 20, 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.

Availability

Part-time

Preferred Environment

Git, Linux, IntelliJ IDEA

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.

Work Experience

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

https://github.com/adnanademovic/rosrust
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.

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, Windows Forms (WinForms), XNA

Tools

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

Platforms

Google App Engine, Linux, Windows

Storage

MySQL, BigTable

2013 - 2015

Master's of Electrical Engineering Degree in Automatic Control and Electronics

University of Sarajevo; Faculty of Electrical Engineering - Sarajevo, Bosnia and Herzegovina

2010 - 2013

Bachelor's of Electrical Engineering Degree in Automatic Control and Electronics

University of Sarajevo; Faculty of Electrical Engineering - Sarajevo, Bosnia and Herzegovina

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