Nemanja Fimic, Developer in Novi Sad, Vojvodina, Serbia
Nemanja is available for hire
Hire Nemanja

Nemanja Fimic

Verified Expert  in Engineering

Digital TV Developer

Location
Novi Sad, Vojvodina, Serbia
Toptal Member Since
January 9, 2020

Currently a Ph.D. candidate, Nemanja is an accomplished developer with almost a decade of experience on cutting edge projects in DTV on Android and Linux. As a teacher and a mentor, he enjoys passing knowledge from different fields to colleagues and students and watching them advance and develop. With both scientific and industrial approach Nemanja strives to deliver the best solution for the clients' full satisfaction.

Portfolio

RT-RK LLC
Java, Git, Android, C++, C, Scrum, Linux, Python...
University of Novi Sad, Faculty of Technical Science
Java, Algorithms, Linux Kernel Modules, C++, C, Design, Parallel Programming...
RT-RK LLC
Java, Git, Android, C++, C, Scrum, Subversion (SVN), Linux, Python

Experience

Availability

Part-time

Preferred Environment

Java, Git, Android, C++, C, Vim Text Editor, Eclipse, GDB, Python, Linux

The most amazing...

...thing I've developed is a DTV set-top-box for Japanese tier 1 operator with 99,8% pass rate on 3,000+ test base which quickly reached 300,000+ users and rising!

Work Experience

Techincal Lead

2017 - PRESENT
RT-RK LLC
  • Performed sprint planning and co-led a team of 15+ people.
  • Contributed to the project planning with the customer, analyzed requirements, and gave estimations.
  • Brought new people in the team up to speed quickly to achieve strict deadlines in order not to endanger the customer's reputation.
  • Worked on-site with customers to help them integrate their TV applications with my company's middleware.
  • Developed a robust PVR scheduler with advanced features, such as periodic recording tracking, to satisfy the highest Japanese standards.
  • Maintained daily communication with the customer, overlooked release testing and delivered weekly.
Technologies: Java, Git, Android, C++, C, Scrum, Linux, Python, Digital Living Network Alliance (DLNA), Java Native Interface (JNI)

Teaching Assistant MSc

2015 - PRESENT
University of Novi Sad, Faculty of Technical Science
  • Carried out practical lectures on object-oriented programming in C++ and Java.
  • Carried out practical lectures on real-time software development and software tools programming in C/C++.
  • Carried out practical lectures on parallel programming in C/C++.
  • Carried out theoretical and practical lectures on Linux kernel modules development in C.
  • Carried out practical lectures on Linux programming in real-time in C.
  • Carried out practical lectures on algorithm design in Python.
Technologies: Java, Algorithms, Linux Kernel Modules, C++, C, Design, Parallel Programming, Linux, Python

Senior Software Developer

2015 - 2017
RT-RK LLC
  • Adapted system architecture to support fast channel change in DTV middleware and TV application.
  • Developed smart resource management to fulfill advanced and complex use cases of DTV set-top-box in a multi-user environment.
  • Involved in all system architecture discussions for a tier 4 security Linux set-top-box with 10+ possible combinations of input and complex PVR use cases.
  • Developed distributed PVR engine that runs in three different processes (middleware, media, cas) and communicates over dbus.
  • Set up the initial build environment for a Linux set-top-box.
  • Helped new colleagues get familiar with the software stack and brought them up to speed after joining the team.
Technologies: Java, Git, Android, C++, C, Scrum, Subversion (SVN), Linux, Python

Medior Software Developer

2014 - 2015
RT-RK LLC
  • Developed a TV application for Android set-top-box compliant with the TV input framework.
  • Developed a TV input based on a company's DTV stack (middleware) for hybrid set-top-boxes.
  • Oversaw middleware testing campaigns, tracked, fixed and assigned bugs using Redmine as a reporting tool.
  • Completed system integration work on an Android set-top-box with DTV middleware and third-party applications (Netflix and DLNA stack).
  • Upgraded to a new Android version.
Technologies: Java, Git, Android, C++, C, Redmine, Scrum, Python, Subversion (SVN), Linux

RnD Developer

2012 - 2014
RT-RK LLC
  • Developed UPnP based protocol for discovery, control, and content sharing between set-top-box and a second screen device.
  • Developed an HTTP server for secure content sharing with second-screen devices.
  • Developed PVR functionalities (recording, playback, and time-shift) on set-top-boxes of different vendors.
  • Tracked and fixed bugs using Redmine as a reporting tool.
  • Adapted automatic and manual tests to specific software flavors using the company's internal test tracking software.
  • Contributed to the bring-up of new devices, setting up the build environment, and the release process.
Technologies: Java, Git, Android, C++, C, Redmine, Scrum, Subversion (SVN), Linux

TV Input and Middleware for an Android Set-Top-Box for Japanese Tier 1 Operator

TV Input relying on an ARIB compliant DTV middleware. My role was to co-lead a team and work with them on the TV input and middleware development that is, in the end, integrated with the client's TV application. Since project requirements were more complex than TIF API, middleware had to provide additional APIs, especially for complex use cases such as PVR scheduler with event tracking and DLNA content sharing. Set-top-box can play cable, terrestrial, and satellite TV channels, but they are all received over IP. In addition to developer and technical lead work, I also helped the clients with integration of UI application with middleware as well as understanding how the middleware works.

Linux Set-Top-Box for German Market

A high-end STB that supports 10+ different antennas and inputs and utilizes fast channel change in addition to full PVR functionalities and tier 4 security. My role was to adapt the system architecture for fast channel change which depends on a user's choice of service list, attached inputs, and available resources. I also implemented an algorithm for resource allocation in order to support the maximum number of functionalities at all times. In addition to that, I worked on porting the middleware on the Broadcom SDK. Due to changing the system architecture, I had to work closely with other members of the team to get them familiar with the changes and to help them integrate their modules with the new architecture. Also, I developed full distributed PVR functionality (recording, playback, and time-shift) relying on the Broadcom SDK. Security requirements prevented accessing the external storage from the main process so I had to implement a protocol for PVR over dbus.

Languages

C, C++, Embedded C, Java, Python 3, Python, SQL

Tools

Git, Vim Text Editor, GDB, Broadcom SDK, Wireshark, Redmine, GCC, Makefile, Subversion (SVN), SWIG, Buildroot, Digital Living Network Alliance (DLNA)

Paradigms

Functional Programming, Object-oriented Programming (OOP), Agile Software Development, Concurrent Programming, Scrum, Parallel Programming

Platforms

Linux, Android, Eclipse

Other

Digital TV, Linux Kernel Modules, Algorithms, Software Architecture, RTP, Debugging, AOSP, MediaCodec, Design, HTTP Live Streaming (HLS), MPEG-DASH, Widevine, Java Native Interface (JNI)

Frameworks

JNI, Media Players

2013 - 2014

Master's Degree in Computing and Control Engineering

University of Novi Sad, Faculty of Technical Science - Nove Sad, Serbia

2009 - 2013

Bachelor's Degree in Computing and Control Engineering

University of Novi Sad, Faculty of Technical Science - Novi Sad, 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