Scroll To View More
Nemanja Grujic, C++ Developer in Niš, Serbia
Nemanja Grujic

C++ Developer in 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

Portfolio

Experience

  • C++, 16 years
  • Computer Vision, 8 years
  • Visual Studio, 8 years
  • Performance Optimization, 8 years
  • GPGPU, 7 years
  • CUDA, 7 years
  • Machine Learning, 6 years
Niš, Serbia

Availability

Part-time

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.

Employment

  • R&D Lead Engineer

    2013 - PRESENT
    MotionDSP
    • 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
    MotionDSP
    • 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

    2007 - 2008
    Deutsche Telekom Laboratories
    • Researched in the field of computer vision on the problems of real-time human head pose estimation.
    Technologies: C++
  • Software Development Intern

    2005 - 2005
    Faculty of Electronic Enegineering, University of Nis
    • 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

Experience

  • 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.

Skills

  • Languages

    C++, SQL, C#
  • Paradigms

    GPGPU
  • Platforms

    CUDA
  • Other

    Performance Optimization, Computer Vision, Optimization, Algorithms, Data Structures, Deep Learning, Performance, Computer Graphics, Linear Algebra, Mathematics, Math, Applied Mathematics, Image Processing, Multithreading, Artificial Intelligence (AI)
  • Frameworks

    Machine Learning, OpenCL
  • Tools

    Visual Studio, Visual Studio 2012, Visual Studio 2013, Visual Studio 2015, MATLAB

Education

  • M.Sc. degree in Computer Science
    2000 - 2006
    Nis University - Nis
I really like this profile
Share it with others