Nikola Tanev, Developer in Skopje, Macedonia
Nikola is available for hire
Hire Nikola

Nikola Tanev

Verified Expert  in Engineering

Multithreading Developer

Location
Skopje, Macedonia
Toptal Member Since
February 17, 2016

Nikola is a skilled and result-driven software architect with experience in challenging tasks involving designs of multi-platform systems, horizontally-scalable solutions, asynchronous designs, and usage of various network protocols. His active knowledge in various technologies, platforms, and their integration in combination with great communication, analytical, and problem solving skills make him a valuable member of any software team.

Portfolio

Fabula Tabula
Android, Java, Lua, C++
Musala Soft
IBM Tivoli Directory Server, Java
NTH Group
Qt, C++, FreeSWITCH, Spring, Java

Experience

Availability

Part-time

Preferred Environment

MacOS, Linux

The most amazing...

...thing I've built was a multi-platform game development framework based on Cocos2d-x. Games were completely written in C++, Java, Lua, and Objective C.

Work Experience

Owner, Solution Architect

2016 - PRESENT
Fabula Tabula
  • Developed in-house gaming platform.
  • Designed educational games for kids.
  • Won a grant from the "Fond of Technological Advancement" in Macedonia.
  • Developed games and game tools.
Technologies: Android, Java, Lua, C++

Software Architect

2016 - PRESENT
Musala Soft
  • Created mapping specifications for TDI.
  • Guided developers.
  • Made performing acceptance tests.
Technologies: IBM Tivoli Directory Server, Java

Solution Architect, Lead Developer

2015 - 2016
NTH Group
  • Developed a multi-platform VoIp Client based on Baresip SIP agent.
  • Architected a solution for the project “Voice Server” (remote configuration and management of multiple Freeswitch instances). The Voice Server allows creation of user accounts on FreeSWITCH endpoints and generation of VoIp client instance configured for that account.
  • Maintained several in-house products (web applications, Spring).
Technologies: Qt, C++, FreeSWITCH, Spring, Java

Team Leader

2013 - 2014
Seavus
  • Wrote the software architecture of a multi-platform game framework - SGPClient.
  • Was the team leader of a team of 5 members for the development of 2 games on the SGPClient platform.
  • Developed a multi-platform game framework - SGPClient.
  • Performed market (iOS and Android) integration through Lua.
Technologies: Linux, iOS, Cocos2d-x, Objective-C, Android, Java, Lua, C++

External Consultant/Solution Architect

2011 - 2012
Synergy
  • Was the external consultant for the project “Agriculture Strengthening and Accession Project (ASAP) 4861-MK, Implementation of ERP and DMS”.
  • Performed business analysis, establishing business processes in the agency.
  • Was responsible for the complete development of the project leading 2 technical people and 1 system integration specialist.
  • Was responsible for the training strategy of 25 employees in the agency.
Technologies: EMC Documentum, Java

External Consultant/Developer

2011 - 2011
SRC
  • Developed a module “Module for communication and playback for the VETS application for video surveillance”.
  • Wrote the C++ component with a high level .NET interface (using C++/CLI) to be used in .NET desktop application.
  • Performed on-site consultancy work.
Technologies: Command-line Interface (CLI), C++

Senior Software Developer, Technical Leader

2005 - 2010
Ein-Sof
  • Composed the solution architecture for NRE (Nouvelle réglementation de Européenne – New European regulation) for Renault, an authoring tool to export ECU specifications from the CLIP's simulation data (from XML and Access database). Led a team of 3 software engineers assigned for the project.
  • Worked as a solution architect implementing the Documentum DMS and BPM (Business Process Modeling) in 11 institutions in the government of the Republic of Macedonia.
  • Performed maintenance, feature proposal, and development for Renault's diagnostic tool CLIP.
  • Made a “CLIP on Vista” study to asses the risk and to estimate time for porting the Renault's diagnostic tool (CLIP) to newer OS (Windows Vista at the time) for the migration from Visual Studio 6 to Visual Studio 2013.
  • As software developer on a platform for unitary test performed execution and reporting. Reverse engineered (code -> documentation -> test strategy) the Renault's authoring tools.
  • Was the software developer on the Renault's Authoring Tool.
Technologies: Java, C#, Qt, C++

Software Developer

2003 - 2005
Secretariat of European affairs (Government of RM)
  • Created software for standardization of a translation process. A tool used internally for the purpose of the project “translation of the questionnaire for admission in the European Union”. Automated the self-learning tool to replace legal phrases during the translation (ex. “Ministry of Agriculture” instead of “Agricultural Ministry”).
  • Developed many VBA macros/tools for standardization of the formatting.
  • Performed administration of CDAD (Central Donor Assistance Database).
  • Provided IT support.
  • Created software for automatic invoice generation for the translators based on the number of word translated.
Technologies: VB, Visual Basic for Applications (VBA)

Game Development Framework

Multi-platform game development framework. The framework is written in C++ and Lua. Simplifies the game development by writing code only in Lua. Most features were declarative (configurations) Full integration of platform specific markets, Facebook API ad providers, and so on.

My main role was to design the architecture and develop the core of the framework. I was assigned a team of developers in order to make games with the framework.

I am especially proud of the multi-platform solution on the platform-specific functionalities. By applying the observer pattern, I was able to drill-down messages from Lua - through C++ - Java and back giving the opportunity to use a JSON based protocol of communication to solve the platform specific requirements.

Links on the game developed with the framework on Google play and AppStore:
https://itunes.apple.com/ca/app/farkle-battlefield/id891640317?mt=8
https://play.google.com/store/apps/details?id=org.cocos2dx.lua&hl=en

Module for Communication and Playback for the VETS Application for Video Surveillance

A high level C# component for video playback from a DVR.
My role was to reverse-engineer the protocol the DVR used for the communication due to non responsiveness from the DVR vendor.

I am especially proud of the asynchronous functionality of the component, especially because the client needed several streams to play simultaneously.

It was completely written in C++ then using CLI (Common language interface) was exposed to the .NET framework as a C# component.

Signal and Slots Architecture

By applying template-meta-programming and various concepts that became a reality in C++11, such as variadic templates and anonymous functions, I was able to create a simple yet powerful signal and slot implementation of the observer pattern. I have used this piece of code many times in my personal endeavors.

Object-oriented Programming in Lua

A very useful piece of code that enables object-oriented programming (OOP) in Lua. Based on this class functor, I have been able to develop many complex functionalities in Lua, both in gaming and other projects.

VoIp Server

Single point configuration on multiple freeswitch instances. The project aimed to easily create users on the chosen freeswitch installation. It also had other functionalities like: call quality information, association of the accounts with the company clients that were using them, and integration with the ERP software.

I architected the solution and helped during the development by researching the FreeSWITCH integration and leading the development team. I also have written the VoIp client in C++/Qt using a Baresip library.

Technologies Used: Java, Spring, FreeSWITCH, FS mod_xml_curl, FS-mod_es, C++, Qt, and Baresip.
2001 - 2013

Bachelor of Science Degree in Software Engineering (Internet and Mobile Technologies)

Saints Cyril and Methodius University of Skopje - Skopje, Macedonia

Libraries/APIs

Sockets

Tools

FreeSWITCH

Languages

C++, Java, XML, Lua, C#, Visual Basic for Applications (VBA), VB, Objective-C, JavaScript, Delphi, Python, C++11

Frameworks

Boost, Qt, Spring, Cocos2d-x

Storage

JSON, MySQL

Paradigms

Agile Software Development

Platforms

Windows, Linux, Android, MacOS, iOS, Windows Vista

Other

Multithreading, Command-line Interface (CLI), EMC Documentum, IBM Tivoli Directory Server

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