Nemanja is a software engineer with over 11 years of industry experience in C++, CUDA, computer vision, machine learning, performance optimizations, and more. He is passionate about programming professionally and privately and strives to write top quality and top performance code.
Wrote automatic optimizer of data-intensive algorithms in C++. Code automatically generates multi-core and vector optimizations.
Worked closely with other researchers on design, implementation, and optimization of computer vision, image processing, video processing, machine learning, AI, and deep learning algorithms.
Envisioned an algorithm for creating mosaic images from surveillance footage or sets of aerial images. Guided the team to the successful implementation of the algorithm.
Successfully modernized C++ codebase by porting it to C++11, C++14, and C++17. Made code more secure and less prone to errors and memory leaks.
Established coding style guidelines and introduced good programming practices to the team, including pair programming, code reviews, and supported teamwork.
Led 3D GIS project development - similar to Google Earth with real-time video stream rendering on top of the 3D globe.
Managed the R&D division of the company. Monitored all major R&D projects, reported on progress, and provided technical guidance to keep on track.
Improved the current multi-frame super-resolution algorithm by making it resilient to ghosting effects present at the time.
Ported most of the company's video processing algorithms to CUDA (GPGPU), including super-resolution, de-blurring, contrast enhancement, frame-rate adjustment, and more.
Optimized all the above-mentioned algorithms and enabled real-time performance.
Created a testing framework for video processing algorithms to ensure successful regression testing under change.
Ported an extremely challenging MSER feature detector to CUDA (filed a patent).
Created an RAII-based GPU memory management system which hides memory allocation latency and enables even more performance.
An autonomous poker-playing program. The program was winning against humans and used Bayesian inference to estimate the opponents' style of play after just a few hands. The program won first place at Annual Computer Poker Competition 2018 in Six-Player No-Limit Texas Hold'em category and second place at Acpc 2017 in Heads-up No-Limit Texas Hold'em category.
A template-based function specification and derivation engine in C++. It is similar to Theano from Python but basic. Users can specify functions in the explicit form:• Symbol x(0);• Symbol y(1);• auto f = (sqrt(sqr(x) * 2.0f + sqr(y)) + 1.0f);They can also evaluate them, get derivatives, and apply them to a data collection, possibly in parallel.