Nenad Korolija, Developer in Belgrade, Serbia
Nenad is available for hire
Hire Nenad

Nenad Korolija

Verified Expert  in Engineering

C++ Developer

Belgrade, Serbia

Toptal member since April 14, 2020

Bio

Nenad is an experienced software engineer with a strong math and computer science background. During his Ph.D. in the domain of high-performance computing and architectures, he was an intern at Google in California. Based on his Ph.D. on the topic of parallelizing algorithm execution, he has improved the Maxeler infrastructure in London. He possesses extensive problem-solving skills, with expertise in C/C++, but he is also comfortable working with Java, PHP, Python, and database systems.

Portfolio

Tcom d.o.o.
PHP, Java, C++, Git, C, Linux, MySQL, Databases, Windows, Bash Script...
University of Belgrade, School of Electrical Engineering
Java, C++, MySQL, PHP, Git, Linux, Databases, Windows, Python, Bash Script...
Khloud Abdeen
C++, Java, Algorithms, MPI, Open MPI, Parsers, C, Linux, Bash Script

Experience

  • C - 18 years
  • C++ - 18 years
  • Simulations - 12 years
  • Linux - 12 years
  • MySQL - 8 years
  • Databases - 8 years
  • PHP - 8 years
  • Python - 2 years

Availability

Full-time

Preferred Environment

Parallel Programming, GNU Debugger (GDB), MPI, Bash, Linux, SQL, PHP, C++, C

The most amazing...

...improvement I've done in Google was accelerating GDB and the gdbserver communication, as it can affect parallel software development worldwide.

Work Experience

Software Designer and Developer

2018 - PRESENT
Tcom d.o.o.
  • Developed OCR (optical character recognition) on seven segment displays for android phones in C++.
  • Recruited employment software developers that now form a team for digital and analog OCR and related server applications.
  • Led OCR for digital and analog numbers and co-led the development of two projects in PHP, Laravel, C++, and statistics.
Technologies: PHP, Java, C++, Git, C, Linux, MySQL, Databases, Windows, Bash Script, GNU Debugger (GDB), HTML, Makefile

Researcher

2003 - PRESENT
University of Belgrade, School of Electrical Engineering
  • Contributed to projects for the Ministry of Science, European FP7 (HiPEAC, ARTreat), etc.
  • Programmed the Maxeler FPGA-based dataflow hardware using C++, Java, and MaxJ.
  • Led students who were competing in regional/international programming contests.
  • Taught two courses for two years: Software Project Management, and Business Communication: A Practical Course.
  • Organized computer laboratories and implemented a portion of faculty websites using PHP and MySQL.
Technologies: Java, C++, MySQL, PHP, Git, Linux, Databases, Windows, Python, Bash Script, GNU Debugger (GDB), HTML, Makefile, CSS

C++ and Java Developer

2023 - 2023
Khloud Abdeen
  • Developed an algorithm that automatically parallelizes C++ programs with certain C++ constructs (e.g. loops and function calls) using MPI and OpenMP.
  • Developed a parser that acts as an interpreter of C++ expressions. Therefore, variables whose values could be detected in the compile time will be known, and loop parallelization can be scheduled accordingly.
  • Developed a method to automatically serialize arguments of functions from a given C++ program and deserialize at the receiving MPI process. Types of parameters are extracted in the compile time using a macro.
Technologies: C++, Java, Algorithms, MPI, Open MPI, Parsers, C, Linux, Bash Script

Software Developer (Contract)

2017 - 2017
Maxeler Technologies
  • Improved the infrastructure by developing a C++ analyzer of data streams to be processed on an FPGA (Field Programmable Gate Arrays) hardware.
  • Developed a C++ simulator for running high-performance applications on an FPGA hardware with reduced precision of floating-point numbers.
  • Implemented support for fixed-point real numbers arithmetic.
  • Continued simulator development with a team assigned for this purpose in Belgrade until the end of the year.
Technologies: Makefile, Java, Linux, Python, C++, Git, C, XML, Bash Script, GNU Debugger (GDB)

Intern

2013 - 2013
Google Inc.
  • Improved the GNU debugger (GDB). Speeded-up the communication between GDB and the gdbserver.
  • Designed and implemented a test framework in Python for testing GDB pretty-printers and changed the biggest pretty-printer accordingly.
  • Discussed the Google infrastructure and possibilities for improving the performance of a custom compiler.
Technologies: Linux, Tcl, GNU Debugger (GDB), Python, C, Git, C++, Bash Script, Makefile

Researcher

2008 - 2009
Department of Information Engineering, University of Sienna
  • Extended a decoupled threaded architecture simulator in C++.
  • Developed highly parallel benchmarks in DTA assembler and analyzed the architecture performances.
  • Worked remotely on development for one year from the School of Electrical Engineering, University of Belgrade, Serbia.
Technologies: Bash, Linux, Assembler, Architecture, C++, Git, C, Bash Script, GNU Debugger (GDB), Makefile

Software Developer

2003 - 2006
IPSI
  • Designed the software cache management as a parallel version of the server infrastructure. This was a project for Dow Jones, USA.
  • Implemented SwanLink, a Visual C++ P2P collaborating drawing application for teaching. This was a project for Panthesis in Bellevue, WA, USA.
  • Improved and ported a C++ MPEG multiplexer from Windows to Linux. This was a project for IPSI Fraunhofer Institute, Germany.
Technologies: Jira, JUnit, Java, C++, Git, C, Linux, PHP, MySQL, Databases, MPI, Windows, XML, Bash Script, GNU Debugger (GDB), Makefile

Researcher

2004 - 2005
Institute of Parallel and Distributed Systems
  • Developed the conjugate gradient method (2D and 3D) in C.
  • Implemented a parallel version of the 3D CG method using the MPI library.
  • Optimized computer communication—scalable up to 128 processors that the cluster had.
  • Attended and helped to organize multiple DAAD conferences and courses for learning MPI in Belgrade and neighboring countries. Presented results.
Technologies: MPI, C++, C, Bash Script, Makefile

Experience

Research: SCI Journal Papers and Book Chapters

I collaborated in several research activities, including:
- Research papers related to high-performance computing: algorithm parallelization, dataflow scheduling, and cloud scheduling, among other topics.
- Numerous book chapters published by Springer (https://scholar.google.com/scholar?q=nenad+korolija+springer).
- A PHP and a MySQL website, together with a methodology for grading changes in the assessment of facial attractiveness, that resulted in an SCI journal paper.

Teaching Support Websites in PHP and MySQL

By my initiative, I developed websites that allowed students to:
- Book computer laboratories.
- Submit homework.
- Define diploma thesis topics.
- Choose their laboratory slots for teaching activities.
These websites have been used by more than 10,000 students.
I also implemented a CMS for the teaching staff to support the definition of all previously mentioned activities.

A Novel Method to Detect Recycled Counterfeit Integrated Circuits

I developed a new method for detecting counterfeit integrated circuits (ICs) based on the difference in the aging rate of ICs using a single IC.
This research was supported by the Army Research Office (ARO) and by Texas Instruments Inc. The results were published at the IEEE journal and the paper was recommended by the associate editor.
According to a paper by M. Pecht and S. Tiku (https://ieeexplore.ieee.org/abstract/document/1628506), legitimate electronics companies miss out on about USD $100 billion of global revenue every year because of counterfeiting.

Visual Simulator of the Process of Alloy Casting

The cooling during the process of alloy casting based on finite elements conducts to crack formation. I implemented a visual simulator of the crack formation using C++, gnuplot (for creating graphs and cracks), composite (for putting cracks over the real alloy image), and convert (for creating a video out of generated frames).
I shared knowledge on the topic at international conferences and wrote a related paper.

Parallelizing Latice-Boltzmann Method Using FPGAs

Implemented the Latice-Boltzmann method using FPGAs. The implementation framework was based on Maxeler dataflow card along with the C library for accessing it from within C code responsible for preparing data and communicating with the FPGA card connected over PCIe.

Education

2013 - 2017

Ph.D. in Electrical Engineering and Computer Science

School of Electrical Engineering, University of Belgrade - Serbia

2002 - 2009

Postgraduate Degree in Electrical Engineering and Computer Science

School of Electrical Engineering, University of Belgrade - Serbia

1997 - 2002

Bachelor Degree in Electrical Engineering and Computer Science

School of Electrical Engineering, University of Belgrade - Serbia

Skills

Libraries/APIs

MPI, Open MPI

Tools

GNU Debugger (GDB), Git, Makefile, Jira, Perforce, Cloud Dataflow

Languages

C++, C, PHP, Bash Script, HTML, SQL, Bash, Tcl, Java, Assembler, Python, XML, JavaScript, CSS

Platforms

Linux, Windows

Storage

MySQL, Databases

Frameworks

JUnit

Paradigms

Database Design, Parallel Programming

Other

Software Engineering, Simulations, Architecture, FPGA, Algorithms, Parsers

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