Scroll To View More
Nemanja Grujic

Nemanja Grujic

Niš, Serbia
Member since April 12, 2016
Nemanja is a software engineer with over 8 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.
Nemanja is now available for hire
  • C++, 16 years
  • Performance Optimization, 8 years
  • Visual Studio, 8 years
  • Computer Vision, 8 years
  • GPGPU, 7 years
  • CUDA, 7 years
  • Machine Learning (ML), 6 years
Niš, Serbia
Preferred Environment
Windows, Visual Studio, Git
The most amazing...
...thing I've made is an autonomous poker program that uses Bayesian inference to estimate the opponent's style after just a few hands and win even against humans.
  • R&D Lead Engineer
    2013 - PRESENT
    • 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.
    • Worked closely with other researchers on design, implementation, and optimization of the algorithms.
    • Envisioned an algorithm for creating mosaic images from surveillance footage or sets of aerial images. Guided the team to successful implementation of the algorithm.
    • Successfully modernized the code base by porting it to C++11. 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.
    Technologies: C++
  • R&D Engineer - Sr. Software Engineer
    2008 - 2013
    • Improved the current multi-frame super-resolution algorithm by making it resilient to ghosting effects present at the time.
    • Ported most of company's video processing algorithms to CUDA, including super-resolution, de-blurring, contrast enhancement, frame-rate adjustment, and more.
    • Optimized all 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 a RAII-based GPU memory management system which hides memory allocation latency and enables even more performance.
    Technologies: C++, CUDA, OpenCL
  • Junior Researcher
    Deutsche Telekom Laboratories
    2007 - 2008
    • Researched in the field of computer vision on the problems of real-time human head pose estimation.
    Technologies: C++
  • Software Development Intern
    Faculty of Electronic Enegineering, University of Nis
    2005 - 2005
    • 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.
    Technologies: C++, OpenGL
  • Poker Playing Bot (Development)

    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.

  • Languages
    C++, C#, SQL
  • Paradigms
  • Platforms
  • Misc
    Computer Vision, Performance Optimization, Optimization, Algorithms, Data Structures, Deep Learning, Performance, Computer Graphics, Linear Algebra, Mathematics, Math, Applied Mathematics, 2D Image Processing, Image Processing, Multithreading, Machine Learning (ML), Artificial Intelligence (AI)
  • Frameworks
  • Tools
    Visual Studio, Visual Studio 2012, Visual Studio 2013, Visual Studio 2015, MATLAB
  • M.Sc. degree in Computer Science
    Nis University - Nis
    2000 - 2006
I really like this profile
Share it with others