Predrag Nikolić, Developer in Niš, Serbia
Predrag is available for hire
Hire Predrag

Predrag Nikolić

Verified Expert  in Engineering

Machine Learning Developer

Location
Niš, Serbia
Toptal Member Since
October 1, 2020

Predrag is a software engineer with experience working on a variety of back-end projects. He's previously created software for image and video enhancement. Predrag is driven to solve problems with well-developed skills and provide improvements during the process. He enjoys collaborating with others to complete any given task.

Portfolio

BH2 Innovations Inc
Computer Vision, Image Processing, Machine Learning, Python, NumPy...
Diffine
Python, Machine Learning, Image Processing, PyTorch, TensorFlow, OpenCV, GitHub...
Fazi & Triple Crown Company
GStreamer, DirectX, WinAPI, C++, FFmpeg, C, WebRTC, Streaming, Qt, Raspberry Pi...

Experience

Availability

Part-time

Preferred Environment

Anaconda, Visual Studio Code (VS Code), Visual Studio, Jira, Subversion (SVN), Git, Skype, Slack, Ubuntu, Windows

The most amazing...

...project I have developed included features for IkenaISR, a software for image and video enhancement.

Work Experience

CV Software Engineer

2022 - PRESENT
BH2 Innovations Inc
  • Researched and implemented data preparation techniques for the ML segmentation model.
  • Worked with data annotation teams to define and overview the labeling process. Experimented with semantic segmentation models (BiSeNet, UNet) on medical-related images.
  • Researched and developed computer vision tasks of video enhancement and OCR. Researched computer vision techniques for visual odometry.
  • Implemented various features in the pyQt desktop application.
Technologies: Computer Vision, Image Processing, Machine Learning, Python, NumPy, Scikit-learn, PyTorch, OCR, OpenCV, Visual Odometry, PyQt, PyInstaller, Image Annotation, Data Transformation

ML Software Engineer

2022 - 2023
Diffine
  • Developed training framework, a template for creating, training, and evaluating image segmentation models. I made the framework using Python and PyTorch.
  • Researched and developed MIL (multiple instance learning) model for segmentation and classification of high-resolution microscopic images.
  • Developed data processing scripts and deep learning models.
Technologies: Python, Machine Learning, Image Processing, PyTorch, TensorFlow, OpenCV, GitHub, Pandas, NumPy, Deep Learning, Scripting, Python 3, Lint, SciPy, OpenSlide, Poetry, Image Annotation, Data Transformation

Software Engineer

2019 - 2022
Fazi & Triple Crown Company
  • Developed the back end for gambling games, designed to run on slot machines in casinos—used C++ on top of WinAPI.
  • Built the graphics interface for gambling games, using directX 11, designed to run on casino slot machines.
  • Implemented a streaming service via WebRTC for gambling games, using a C++ and GStreamer library.
  • Developed an application for displaying jackpots in casinos. The application is running on a Raspberry Pi device. I used the Qt framework and C++.
Technologies: GStreamer, DirectX, WinAPI, C++, FFmpeg, C, WebRTC, Streaming, Qt, Raspberry Pi, .NET Core, Boost, Win32, Linux, C++17, GitHub, Janus, Google Cloud, Video Streaming, Game Programming, Multithreading, Back-end Development, DirectX 11, Video Processing, Amazon Web Services (AWS)

CV Software Engineer

2017 - 2019
MotionDSP
  • Implemented algorithms (prototypes) for image enhancement in MATLAB to test performance and results.
  • Implemented features, such as image, video filters, and GIS tools, for image and video enhancement software, using C++.
  • Optimized the algorithm for image and video filters, both on CPU and GPU, with SSE/AVX and Intel's TBB on CPU and CUDA on GPU.
  • Implemented tools for data preparation, model development, and training, using Python and TensorFlow to solve computer vision problems with machine learning.
  • Implemented and integrated an application to run inference on the neural-network model and send results to a third-party application using C++.
Technologies: C#.NET, TensorFlow, Python, Intel TBB, NVIDIA CUDA, C++, MATLAB, C++17, GitHub, Pandas, NumPy, Computer Vision, OpenGL, Machine Learning, Deep Learning, GPU Computing, Graphics Processing Unit (GPU), Parallel Programming, Multithreading, Back-end Development, Scripting, Video Processing, Python 3, SciPy, Image Annotation, Data Transformation

Intern

2015 - 2015
INGSoftware
  • Developed an application for the human resources department to track employees' days off. Created the web API using ASP.NET MVC.
  • Created database for the same project, using Microsoft SQL Server.
  • Built front-end pages using basic web technologies, including HTML, SCC, and JavaScript.
Technologies: JavaScript, CSS, HTML, Microsoft SQL Server, SQL, C#.NET, ASP.NET MVC, C#, .NET, Databases, Back-end Development

IkenaISR

https://www.motiondsp.com/software-and-subscription-pricing/isr-video-enhancement-software/
A desktop application for live video processing and enhancement.

I was the back-end developer who handled various features, like image and video filters and GIS tools. I implemented computer vision algorithms and optimization to decrease computation time. Machine learning was also used to create some features. I created tools for data preparation, model creation, and training ML models. I was responsible for the integration of those models into the application.

iDisplay System

https://www.fazi.rs/en/products-i-display-system
Easy to use software solution for centralized control of led displays.

As a full-stack developer, I developed new features and fixed existing bugs. I implemented an application in Qt that runs on Raspberry Pi and displays jackpot and other stuff on led displays in casinos. I was in charge of creating new features and creating an environment and pipeline for application deployment.

Training Framework

This is a Python library for creating training and evaluating segmentation models using PyTorch.

Users can instantiate some given model architectures or create models from scratch using config files. I was in charge of developing various features, like components to build models and many more.

Slot Machine Games

I was the full-stack developer who handled creating new games for slot machines written in C++ and DirectX 11 on top of WinAPI. I created the game logic and flow and the game graphical user interface (GUI). I also did various bug fixes on the graphics engine.

Languages

C++, Python, C++17, Python 3, C, SQL, C#.NET, CSS, HTML, JavaScript, C#, Janus, Java

Libraries/APIs

TensorFlow, Pandas, DirectX, OpenCV, WebRTC, Scikit-learn, NumPy, PyTorch, Matplotlib, DirectX 11, OpenGL, Intel TBB, WinAPI, Natural Language Toolkit (NLTK), FFmpeg, SciPy, PyQt

Other

Machine Learning, Deep Learning, Back-end Development, Image Processing, Computer Vision, Data Mining, Streaming, Mathematics, Linear Algebra, Probability Theory, Algorithms, GPU Computing, Computer Graphics, Scripting, Video Processing, OCR, Image Annotation, Data Transformation, 3D Modeling, Operating Systems, Natural Language Processing (NLP), Recommendation Systems, Video Streaming, Game Programming, Artificial Intelligence (AI), Graphics Processing Unit (GPU), Multithreading, Games, Cryptography, Lint, GPT, Generative Pre-trained Transformers (GPT), OpenSlide, Poetry, Visual Odometry

Frameworks

.NET, GStreamer, Qt, ASP.NET MVC, Boost, .NET Core

Tools

Git, Subversion (SVN), Jira, Visual Studio, MATLAB, GitHub, LaTeX, PyInstaller

Platforms

NVIDIA CUDA, Windows, Linux, Raspberry Pi, Visual Studio Code (VS Code), Anaconda, Win32, Docker, Azure, Android, Amazon Web Services (AWS), AWS Lambda

Paradigms

Parallel Programming

Storage

Microsoft SQL Server, Google Cloud, Databases, MongoDB

2019 - 2021

Master's Degree in Computer Science

University of Niš - Niš, Serbia

2013 - 2017

Bachelor's Degree with Honors in Computer Science

University of Niš - Niš, Serbia

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