R&D Lead Engineer2013 - 2019MotionDSP
Technologies: OpenGL, 3D Graphics, GIS, Agile, Video Processing, Image Processing, Deep Learning, Machine Learning, Computer Vision, C++17, C++14, C++11, C++
- 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.
R&D Engineer - Senior Software Engineer2008 - 2013MotionDSP
Technologies: Windows, OpenCL/GPU, Git, Caching, Attention to Detail, Parallel Programming, Multithreading, Performance Optimization, Visual Studio, Performance, Optimization, Profiling, Memory Management, Unit Testing, Test-driven Development (TDD), Low Latency, Real-time Systems, Image Processing, Video Processing, Computer Vision, GPGPU, OpenCL, CUDA, C++
- 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.
Junior Researcher2007 - 2008Deutsche Telekom Laboratories
Technologies: OpenCV, Computer Vision, Linux, C++
- Researched the problem of real-time human head poses estimation in the field of computer vision (CV).
- Implemented a novel approach to this problem. Used OpenCV, C++, and Linux.
- Published paper on the proposed method in the Automatic Face and Gesture Recognition conference.
Software Development Intern2005 - 2005Faculty of Electronic Enegineering, University of Nis
Technologies: Low Latency, Real-time Systems, Performance, Optimization, Visual Studio, 3D Graphics Engines, 3D Graphics, OpenGL, C++
- Developed a 3D graphics engine for massive landscape rendering in C++ and OpenGL.
- The engine was able to render gigabytes of terrain texture data in real time by automatically adjusting level of detail on per frame basis.
- Optimized engine performance to achieve real-time.