Tomislav Trajkovski, Developer in Delft, Netherlands
Tomislav is available for hire
Hire Tomislav

Tomislav Trajkovski

Verified Expert  in Engineering

Software Developer

Location
Delft, Netherlands
Toptal Member Since
August 22, 2016

Tomislav is a technically-oriented software professional with 25 years of experience. With an entrepreneur's attitude, he's looking for opportunities to help his customers with tough software development challenges. Tomislav is an excellent communicator who will put in the extra effort to create fantastic products and loves writing very well-structured code.

Portfolio

Apt304
Nebular, Cube.js, ECharts, SVG, SCSS, TypeScript, Angular, C#.NET, PDF...
X-Systems
WebRTC, Janus, Socket.IO, MariaDB, Express.io, Node.js, TypeScript, Angular...
Applify
MongoDB, NestJS, JSON/XML Schemas, JavaScript, TypeScript, Node.js, SQL, C#.NET...

Experience

Availability

Full-time

Preferred Environment

TypeScript, C#

The most amazing...

...work I've done was a .NET/SQL server-based framework for consolidation/reconciliation of real-time finance market data; used by a big Dutch finance institution.

Work Experience

Front-end Developer

2020 - PRESENT
Apt304
  • Migrated a management/configuration application from Angular 1.5 to Angular 8.x by fully rewriting the UI.
  • Implemented a new responsive design replacing Nebular components with custom components.
  • Developed a drag-and-drop workflow designer in HTML, CSS, and SVG.
  • Integrated e-charts for dashboards with CubeJS for interfacing with the PostgresSQL back end.
Technologies: Nebular, Cube.js, ECharts, SVG, SCSS, TypeScript, Angular, C#.NET, PDF, Windows Services, REST APIs, Unit Testing

Lead Developer

2020 - 2021
X-Systems
  • Integrated a Janus MeetEcho WebRTC streaming gateway in an Angular front-end for a Zoom-like experience. The Angular UI is developed in a modular and reactive fashion to support multi-user interactions and solve responsive issues.
  • Developed a multi-user coordination server based on Socket.IO, TypeScript, Node.js, and Express that takes care of synchronizing the UI of all participants at online conferences and meetings.
  • Modified the underlying database to make it GDPR compliant by adding an encryption layer. The database is being used by three server services and two REST services written in Node.js, TypeScript.
  • Dockerized the whole application and prepared it for Kubernetes.
  • Coordinated five freelancers working off-shore on various development tasks in the UI or back end. Prepared technical task descriptions, provided coaching/development support, and performed code reviews and integration testing.
Technologies: WebRTC, Janus, Socket.IO, MariaDB, Express.io, Node.js, TypeScript, Angular, Distributed Systems, SQL, Kubernetes, Cloud Architecture, Windows Services, REST APIs, Unit Testing, Continuous Delivery (CD), CI/CD Pipelines, Continuous Integration (CI)

Lead Developer

2019 - 2020
Applify
  • Designed a meta-language based on JSON to describe the application structure.
  • Developed a code generator in TypeScript based on Node.js. This code generator is generic in structure and based on templates.
  • Developed back-end templates based on Node.js, MongoDB, TypeScript, and Nest framework.
  • Built front-end templates based on Angular, Bootstrap.
  • Created work-breakdown for an off-shore team of two employees.
  • Provided support for the off-shore development team, performed code reviews, and coordinated test activities.
Technologies: MongoDB, NestJS, JSON/XML Schemas, JavaScript, TypeScript, Node.js, SQL, C#.NET, PDF, Windows Services, Data Engineering, REST APIs, Microsoft SQL Server, Compiler Design, Unit Testing, Continuous Delivery (CD), CI/CD Pipelines, Continuous Integration (CI), OpenAI

Senior Full-stack Software Developer

2019 - 2020
Gulf Coast Solutions
  • Developed a new front end in React.
  • Extended the front end to support collaboration with SignalR.
  • Added custom data sources and plugins to the Handsontable grid.
  • Developed an interactive PDF editor with PDF.js and Konva.
Technologies: Entity Framework Core, Web API, C#, .NET Core, jQuery, React, SQL, C#.NET, REST APIs, Microsoft SQL Server, Unit Testing

Senior Software Developer

2018 - 2019
IdWare
  • Developed single-page apps for access management, based on an Angular 7 front end; it was built to support multiple languages and types of users (Angular Material and Bootstrap).
  • Built a self-service kiosk application based on Windows Presentation Foundation (WPF).
  • Developed back-end REST APIs in C#, using EF Core and .NET Core 2.2.
  • Constructed a theming system for the Angular single-page apps based on hot CSS replacing.
  • Composed scripts for CI/CD that supported standard configuration and any number of customer-specific customizations.
Technologies: Windows Presentation Foundation (WPF), Entity Framework Core, Web API, C#, .NET Core, Angular, Distributed Systems, SQL, C#.NET, Cloud Architecture, PDF, Windows Services, REST APIs, Unit Testing, Continuous Delivery (CD), CI/CD Pipelines, Continuous Integration (CI)

Application Designer | Lead Developer

2017 - 2019
Nexus Cura
  • Set up the application build and run-time (CI/CD) based on Docker/Docker Compose with a Windows development environment and Linux run-time.
  • Implemented authentication by using Identity Server 4 and extending it with custom PostgreSQL configuration and username/password store, integration with Google, Live and Facebook SSO.
  • Established the application architecture based on event sourcing and, written in .NET Core/C# on top of a PostgreSQL database.
  • Exposed the functionality for the front ends via REST APIs and via a RabbitMQ queue.
  • Built three different front ends based on Angular. Mapped to the functionality in the Web APIs, based on Angular Material.
  • Implemented machine learning for improved functionality in the app's search screens.
  • Provided daily management for a senior UX designer, a senior back-end developer, and a junior front-end developer.
  • Made sure that end-user requirements were met, by translating requirements into tasks organized in sprints.
  • Provided guidance to our develoopers to meet compliance requirements with respect to data security and privacy (GDPR) and created policy documents for external users.
Technologies: Jitsi, HL7, Machine Learning, CQRS, PostgreSQL, Identity Server, Angular, ASP.NET Core, C#, Azure, Distributed Systems, Kubernetes, C#.NET, Cloud Architecture, Windows Services, REST APIs, Unit Testing

Senior .NET Developer

2018 - 2018
Radiant (Shell/Baker Hughes Joint Venture)
  • Performed an architecture review and tuning (replacing a crud application structure with better-performing commands).
  • Conducted performance assessment and improvements (fine-tuning APIs and database structure).
  • Handled a single sign-on implementation, integrating with Identity Server and Active Directory.
Technologies: Windows Presentation Foundation (WPF), T-SQL (Transact-SQL), Entity Framework, OpenAPI, Web API, ASP.NET Core, Windows Communication Framework (WCF), C#, Distributed Systems, SQL, C#.NET, Windows Services, REST APIs, Microsoft SQL Server, Unit Testing

Founder

1999 - 2018
Applify
  • Worked together with customers, talked about their goals and requirements, and then translated those goals into functional designs, architecture, and technical designs.
  • Created estimations of software development projects by using a combination of Scrum, function point analysis, and operational risk management. In this way, I was able to give reasonable predictions of how long a project would take and how much it will cost.
  • Developed a business application framework that is being used as the core of several custom made ERP applications used in the print sector by companies like Ricoh and Xerox. This framework is based on a centralized data dictionary that is the basis for many applications like CRUD, transaction processing, and reporting.
  • Migrated VB6 legacy code to .NET/C# and HTML5/JavaScript by using Knockout.js, Sencha, and jQuery.
  • Developed eCommerce tools for customers in the print industry. This required an in-depth understanding of the PDF file format and related technologies, optimizing the .NET server layer for maximum performance, and implementing interactive HTML5 interfaces for a maximal WYSIWYG experience when ordering books and other print products.
Technologies: Visual Basic, JavaScript, Microsoft SQL Server, .NET, Unit Testing, Continuous Delivery (CD), CI/CD Pipelines, Continuous Integration (CI)

Architect | Developer

2012 - 2017
Delta Lloyd Asset Management
  • Performed data modeling of a data warehouse for financial risk management. The database uses a couple of hundred of data sources with different types of financial data.
  • Analyzed data sources and designed a future-proof data model where these data sources can be easily loaded.
  • Applied T-SQL on a SQL Server 2012 to develop complex procedures for data loading, validation, data quality, and consolidation.
  • Wrote complex queries and stored procedures is a daily task.
  • Optimized the performance and solved bottlenecks by investigating and troubleshooting.
  • Designed a web-based workflow based on ASP.NET MVC4. This workflow is used to provide compliance with legal regulations that affect the financial risk management database for loading of a couple of hundred different data sources with financial information.
  • Fulfilled client's specific needs; the client required very strict procedures with deployment to production and testing.
  • Developed the necessary processes to establish unit testing of the .NET layer and the T-SQL layer but also procedures for easy deployment of all application components over all of the environments (development, test, acceptance, and production).
  • Worked a considerable amount with Solvency II and AIFMD regulations. Both regulations impose a number of specific data requirements, but also require some changes in the workflow in front to allow for compliance in general.
Technologies: ASP.NET MVC 4, JavaScript, XSLT, T-SQL (Transact-SQL), Microsoft SQL Server, C#, .NET 4, SQL, Data Engineering

Developer | Architect

2015 - 2016
DGMR Software BV
  • Fine-tuned the PostgreSQL database (column types, indexes, and primary keys).
  • Improved the usage of an Entity Framework, by applying eager vs. lazy-loading as appropriate and by making sure that the Entity Framework generated the best possible SQL code.
  • Replaced specific parts of the Entity Framework via direct SQL code (stored procedures and complex queries).
  • Introduced multi-threading in order to make better use of the CPU power on the application server. The system was performing a lot of data processing and advanced mathematical calculations.
  • Ensured that full usage of the multiple CPUs and cores and the additional application servers by using service bus queues and the advanced multi-threading features of C# and .NET.
  • Reviewed code and coached other developers. The developers had experience with fat-client applications written in Delphi and VB6 and needed help to develop effective web-based and service-oriented solutions.
  • Performed code reviews which resulted in hands-on training that I provided to developers to achieve better performance, security, or more correct code.
Technologies: Entity Framework, PostgreSQL, Windows Communication Framework (WCF), C#, SQL, C#.NET

R&D Software Engineer

1996 - 1997
Compuware
  • Maintained the Uniface 4GL environment, being used by corporate to develop portable database-driven applications. Uniface was developed in C and C++.
  • Designed and developed object-oriented extensions to the Uniface 4GL language. Introduced classes, objects, member variables, and functions to the run-time. Modified the parser, compiler, and interpreter.
  • Improved the memory management system of Uniface to further improve the usage of RAM memory, reduce fragmentation, and improve garbage collection.
  • Worked on a continuous integration environment where automated builds were done, but also automated merges of the development branches into the main development branch. This was based on the continuous system.
  • Developed various sample and test applications in the Uniface 4GL system.
Technologies: Uniface, C++

R&D Software Engineer

1995 - 1996
ThunderByte/ESaSS BV
  • Developed an API for interfacing with the virus detection and cleaning engine with Windows applications. This involved low-level mapping to assembly language modules.
  • Built libraries in C++ for management of antivirus software of computers on the network from a central server application.
  • Created a system for defining policies for scanning and cleaning; being a combination of real-time scanning, on-demand scanning, and scheduled tasks. This involved the development of a system for background processing on the Windows versions that did not have proper multi-threading (Windows 3, Windows 95, Windows 98). This was implemented in C++ with Windows SDK.
  • Constructed a file system driver in C to hook into the file system and perform real-time scanning of new files or changed files on the system.
  • Worked in the integration of three different antivirus products into one common system in C++ with a common management user interface.
Technologies: Windows Azure SDK, C++

R&D Software Engineer

1992 - 1995
Exact Software
  • Developed a platform for porting from a DOS-based business application framework to Windows. This was a research project where I considered several Windows rapid application development environments based on C++, VB6, or 4GL language.
  • Created a database abstraction layer to replace the proprietary file system database by an open database based on BTrieve and SQL Server.
  • Developed a full-fledged order entry and processing application in VB6 based on a SQL Server.
  • Created a data dictionary tool that could be used to define the data dictionary that was the basis for database deployment, migration, and generation of various applications.
  • Implemented a distributed system for processing of financial ERP data on multiple computers based on Windows Services in C++.
Technologies: Windows Azure SDK, Visual Basic, C++, C, Compiler Design

Freelance Software Developer

1990 - 1992
B-Software
  • Designed business applications for warehouse management in the Clipper/dBASE development environment.
  • Developed a workflow automation tool for the first independent daily newspaper based on custom-made tools created in C++, database applications in Clipper, and integrations with publishing processes in Ventura Publisher, CorelDRAW, and PostScript.
  • Built a compiler for the Scheme functional programming language directly into assembly code. The compiler was developed in C++ and used an LALR parser.
  • Composed a concurrent BTree algorithm.
  • Developed a virtual machine system that was running my pseudo-code and implemented the algorithms in this language to simulate and measure concurrency.
  • Used my virtual machine system to validate the scalability of the algorithm very easily. The system was developed in C++.
Technologies: Visual FoxPro, Clipper, C++

Enrichment of Position Data

Within this project, I was responsible for extending the risk management database of DLAM with additional information as required by Solvency II for risk and price calculation extensions of the internal model and standard formula models.

Here I provided for the inflow of additional data from Bloomberg, front arena, and several other data sources with respect to different types of derivatives like for example credit default swaps and FX swaps.

I worked closely with the reporting and quantitative analysts and helped translate their data requirements to the FRM data warehouse.

Load and Validation Workflow

I developed an automated system for importing, transformation and loading (ETL) of data from a large range of sources of financial data like Portia, Front Arena, and Bloomberg. Then I would process this data in compliance with all the Solvency II requirements that are enforced upon financial institutions. The primary user of the system is the financial risk management department of a major insurance company. This department had the additional requirement that the system should be easily extensible with additional data sources, transformation and validation rules.

I designed an architecture consisting of three components:
• Data layer written in TSQL+/- 300 stored procedures, functions, and views.
• Windows service application written in .NET 4/C#.
• Website written in .NET 4/C#/MVC3 using Ajax with jQuery for interactivity. This website provides a menu system that is integrated with an active directory.

I designed the whole system such that it can be easily configured and extended without coding. To add additional data sources, master data tables or validation business rules, the dictionary of the system needs to be extended with additional definitions.

System for AIFM Compliant Reporting

The Alternative Investment Fund Managers Directive defines the legal requirements for reports. A financial institution that sells shares in alternative funds is required to provide detailed reporting with about 600 variables for each alternative fund.

The system is used by a major insurance company.
The reporting process consists of several steps:
• Collection of data
• Pre-validation of the data
• Creating a draft report
• Submitting the draft reports to the E-Line system of the DNB (De Nederlandsche Bank)
• Validating the reports
• Submit the final version of the reports

The system is built up of several components:
• A data layer consisting of +/- 40 tables and +/- 30 executable TSQL objects. This data layer makes a Solvency II compliant reporting workflow possible.
• A core module written in C#. This module is driven by a specially designed definition file that maps each value in the report to the correct data sources. A business analyst can define/modify the mappings without the necessity of coding for each different report value. This core reporting module is capable of generating the AIFMD reports in a human-readable Excel format meant for review and control, and ELINE XML format meant for submission to DNB.

Rental App Based on Hybrid Technology

For Dutch Bicycle Rental, I developed an app based on JavaScript/HTML5/CSS3 hybrid technology. Hybrid technology was used to be able to create one app running on both iOS and Android devices. The back-end system consists of a REST web service layer written in C# by using .NET Web Api and Magento. OAuth2 is used for securing the communication between the mobile client and the server.

The app functionality is to let customers easily find a rental location where they can rent a bicycle. It uses the LeafletJS map system (similar to Google Maps) to let the customer search around a specific place for rental locations that satisfy the preferences of the customer.

The Magento database is the source for information on rental locations and points of interest. After selecting a rental location, the customer can choose the start and end-date and the number of bicycles to rent. A request is made to the service layer to check for availability and to reserve the bicycles. The customers can create an account and login to view their reservations, change, or cancel them.

eCommerce Application for Print Providers

The goal of the project was to create a web-to-print eCommerce application. I was the architect, product specialist, and lead developer.

I integrated the application with an order processing system, PDF workflow system, and online payments (Mollie, PayPal, and Rabobank Omni Kassa).

I extended the shopping cart with a product configurator to upload files and configure the print products. This system is developed as a single-page application in JavaScript, HTML5, CSS3 based on Bootstrap, and Knockout.js.

The server layer was split into two parts:
• An MVC4 based website with Web APIs
• A WCF service

The server functionality is concentrated in the WCF SOAP service written in C#. This is responsible for providing all the data to the JavaScript layer for the setup of screens (e.g. screens, field, labels) and for storing orders in the database. As the database SQL Server 2012 is used the WCF services relies on a PDF processing service.

This service is responsible for:
• Converting Microsoft Office files to PDF by using the Microsoft Office COM APIs
• PDF manipulation by using the iTextSharp and Callas SDK libraries

SharePoint 2010 Document Processing System

I was responsible for the prototype development of a print-on-demand portal based on SharePoint.

In this portal the following functions were available:
• Users uploading book files and book specifications.
• The workflow automatically processing these files.
• The successfully processed files are then published in a catalog.
• From the catalog, the book files can then be selected by a user to order books which then get assembled on demand.

For this, I created a custom design master page giving SharePoint a custom look and feel. Then I created some custom content types and designed forms for the submission of documents. Attached to these content types is a state machine workflow that triggers background server processing in a C# service: converting Word files to PDF, PDF preflighting, and PDF normalization.

Finally, I created a web part where the catalog is presented and where users can assemble chapters into one book.

This is created in .NET 4 with C#, HTML, CSS, and jQuery.

High Volume Print Order Processing System

For KN Digital, a digital printing factory, I developed FlowPDF.

FlowPDF is a batching workflow application that receives many thousands of print jobs a day via a hot folder or a web service. Based on business rules, these jobs have to be scheduled and grouped for efficient production. The goal is to give to the print operator a tool for efficient production: He deals with batches instead of individual print jobs.

I was responsible for the functional design, technical design, and creation of the working prototype. After this, I handed the project over to a development team with a project manager.

As performance was key, I designed a very compact SQL Server data model with a set of stored procedures integrating SQL Server Message Broker.

For PDF file processing, I integrated the Callas pdfToolbox SDK inside a Windows service that I wrote in C#. This service is multithreaded to make optimal use of a large server with lots of CPUs. It communicates with the SQL Server API through the message broker.

I delivered my task when I reached the proof-of-concept; we were able to process 1500 jobs per hour on a server with 4 quad-core CPUs, also having a user-friendly GUI for the print operator.

Interactive PDF Workflow System

This interactive PDF workflow system is used by an operator to combine submitted PDF files into an order and to be able to specify how the order is to be printed.

For this project, I did the whole development for the first version. I developed the application fully in JavaScript in combination with the ExtJS 2.x library.

On the server side, I created some ASP server side code in VBScript. This code is using a Microsoft SQL Server database and a number of PDF related libraries (Aurgima PageMill, GhostScript, QuickPDF, & Callas pdfToolbox).

In the GUI, the user can select an order from the order processing system (part of a different project) & can start building a print order. He/she select the documents to print. Word documents get converted to PDF. After that the PDF documents get preflighted and then the preflight results in XML format get translated in a human readable HTML form by using XSL transforms. The user can then navigate through all pages and generate previews. Per page or per group of pages the user can interact, i.e. change orientation, change color, page format, paper type etc. The result of this process is a print order specification. This print order specification gets saved into the database as XML.

SharePoint 2007 Portal for Project Management

In this project I have setup a SharePoint 2007 portal which had the following goals:
• Repository with information and documents about customers and projects.
• Project milestones.
• Integration with the Subversion version control system.
• Integration with the build environment.

I configured SharePoint 2007. Then I created web parts in Visual Studio C#. One web part that could be used to browse the Subversion log and repository so that one can see from inside the SharePoint portal which tasks have been completed and committed to the Subversion repository. On each commit, the project information in SharePoint got updated so it is easy to see the progress from within Subversion.

Also created another web part for interfacing with the build environment. The communication between the web part and the build environment takes place via web service calls and Microsoft Message Queuing.

For the tasks, I created a state machine workflow for Windows Workflow Foundation. This was responsible for sending notifications for asking people for interventions.

System Integration for a School Book Distributor

A major Dutch school book distributor traditionally delivers the school books to the customers from a warehouse. The orders are entered by book stores or schools through a web-based environment.

They decided to also start with printing-on-demand. The books are not stored in the warehouse, but only PDF files are stored on a server. When orders for these books are received, the orders with PDF files get submitted to a printing company where they get produced. Because of the huge numbers of orders, this process needs to be automated.

For this project, I was responsible for linking the systems of the book distributor and that of the printing company. I had project management responsibility to make sure the software people on both sides opened up the systems in the proper way. For the middleware, I designed and implemented a set of WCF and Windows services written in C#. These services were exchanging messages between both systems and added the necessary logging and tracking to make sure orders did not get lost and the order-to-cash process is guaranteed. I also managed another GUI developer that created a dashboard monitoring this link.

System Integration of a POD Company

This print-on-demand company has a huge printing capacity and is able to produce many thousands of books a day. Their customers are mainly large international scientific publishers that were making the move from production warehouse and order delivery to order production delivery.

The goal of the integration was to create an integrated workflow where the ordering, production, and invoicing is included.

For this purpose, I created a couple of services that were meant to receive different types of orders. One of the services I created was a C# service with WCF interface receiving notification messages and posting them in the database to initiate further processing. The other service I created was in VB6 for integration with some legacy libraries, it was responsible for monitoring hot folders where job files arrived for further processing. The system made extensive use of XSLT for transformation of messages and of SQL for data storage and business logic implementation of stored procedures.

Warehouse Management System for a Logistic Provider

The customer was already using our system for their printing operations and then they asked me to extend it to make it fit for warehouse management as well. For this purpose, I setup a web-based system consisting of a customer website, an order management & planning system, and an invoicing system.

I contracted an external designer for the web based system. I implemented the design in a .NET 3.5/Web Forms website. The website interfaces with the SQL Server 2008 R2 database via a set of web services. I wrote a part of these web services in C#.

On the website, the end-customers can browse through the catalog that gets presented by using XML data transformed by XSLT for maximum performance. The shopping cart system was built in JavaScript by using ExtJS 3.x.

The warehouse people get their orders via e-mail notifications. I created the logic that maps the products to pick to the warehouse locations. For this I designed the SQL database structures and stored procedures where the business rules can be defined. After picking slips are printed, the people can then pick the orders. Then a shipping label has to be printed, and in the end an invoice is created.

A Multichannel CMS for an Educational Publisher

The educational publisher has decided to switch to print-on-demand book production and to offer customized books to their customers.

For this I created a web-based content management system using .NET 2/VB.NET Web Forms. The content was stored in a SQL Server database. For editing of the content, I created an integration with Microsoft Word. The user could open a chapter of the book for editing inside Word, edit and then save into the CMS. The CMS was keeping track of versions and approval after editing by a reader.

For Word, I developed a plug-in. I created functions for inserting images from the asset database, creating balloons with extra information, side text, and more in VBA.

I also created an eCommerce website where customers of the publisher could either order a standard book or assemble a book by selecting the chapters they want, choosing the theme of the book and entering the title. When the order gets paid through the TripleDeal payment provider, the production order would be prepared. For this I created a server side process that would assemble a PDF file built of the selected chapters, apply proper page numbering, define table of contents, and the cover page.

MIS for Digital Printing Companies

Based on an old application layer written in VB6, I created a new system. I developed this system in ASP.NET 2 with C# and the interfacing with the legacy system in VB6 and VBScript. I extended the SQL Server 2005 database structure with about 40 new tables and took care of the design and the stored procedures. I wrote the GUI using about 50% ASP.NET Web Forms and 50% in JavaScript by using ExtJS.

The functions I have created are:
• A CRM system for multi-national clients.
• Product configuration logic where one can set the production recipes.
• Cost-price calculation system. This business logic is written in C# and VB6.
• A sales-price calculation system that calculates based on price agreements.
• A planning system based on infinite capacity, priorities, and calculated production times.
• A work-in-progress registration based on time sheets where users can scan time via barcodes or enter through the GUI.
• An invoicing system.
• A purchase order system for purchasing paper and other materials or for outsourcing parts of orders for external production.
• Many business rules to be able to automate any aspect of the application.
• An interface for the external automation based on XML, HotFolder, and web services.

Content Management and eCommerce Framework

Here I developed a web application development framework based on Microsoft stack. This application framework was based on a dictionary where business objects are defined (customers, orders, etc) in database tables.

On top of this dictionary, I developed generic business objects. These generic business objects were capable of customizing their functionality based on definitions in the dictionary.

For building the web pages, I developed a web page template markup language. This language would make it possible to use placeholders to output values from business objects, to iterate through collections to build all kinds of lists in HTML, conditional execution, sub templates, and embedded script blocks. The system had the notion of components. I made it possible to package dictionary definitions, templates, and custom code into packages that would implement specific functionalities, e.g. login and registration, catalog browsing, and content navigation. The user would be able to build a website supporting advanced content management and eCommerce by importing a set of components and wiring them by using a template code and scripting via the web-based user interface.

eCommerce Web Shop Generator

After I founded Applify, I developed a webshop system. This used SQL Server as a database, had a system layer written in C++ exposed as ActiveX objects, a business logic layer written as a VB6 ActiveX object, and was running on a Windows server under IIS.

The system was made for small to medium sized webshop owners. It offered a wizard where a new user could subscribe for a webshop and fill out some forms where products, prices, looks, themes, and business rules were defined. Based on this the system, we could generate a fully functional webshop that was able to integrate with the Exact for Windows accounting software through the Sumatra SDK.

I implemented this software for different companies in the early period of Applify and also I implemented an OEM version for the Bart Internet Service Provider / VIA Networks in Rotterdam which sold few hundred subscriptions.

Object-oriented extensions for Uniface

Working for the Compuware Uniface subsidiary, I got the task of finding a way to extend the Uniface language with some object-oriented support.

The Uniface system was based on defining an extensive model of the application and having the Uniface system bring up functionality based on the model. By using the Uniface programming language, the standard functionality could be customized.

My task was to find ways in which the language could be extended with object-oriented constructs in a way that will feel like a natural extension to the Uniface language.

Network Management System and Agents for Antivirus

In this project, I was responsible for the technical design and development.The GUI was a Windows GUI application written in Visual C++ by using MFC. It communicated with agents which were installed on remote computers. The agents were Windows services also written in C++ with MFC. The communication protocol was TCP/IP or NetBIOS.

The functionalities of the management system were:
• Collection of alerts from the remote machines, logging and e-mail/sms alerts.
• Installation of virus database updates on the remote clients.
• Configuration of the anti-virus scanner.
• Initiating a remote scan.
• Bringing remote infected computers down in case of infection.

Porting Accounting Software from DOS to Windows

At Exact software, there was an extensive range of application software written in C on top of an in-house SDK consisting of an index-sequential file system, a localization system, GUI support system, data dictionary, and more.

The company was searching for ways in which to make the functionality of their software available in the Windows environment in such a way that the GUI would become available on Windows 3.1 and 95 and that the background processing like processing of general ledger entries would work as services on Windows NT.

My task was to experiment with the new Windows development tools and operating systems and develop proof-of-concept applications in order to find the best ways to map the legacy functionality for processing of general ledger entries and orders in a modern Windows environment. Like:
• Data dictionary system in C.
• Application generator in C.
• A Windows GUI toolbox in C++, both based on Win32 API and on some C++ frameworks for portable application development, and implemented different variants of order entry.
• A multithreaded Windows service written in object-oriented C++. In this system, I implemented the general ledger processing and sales order processing functionality.

Concurrent B-Tree Implementation

This was my university graduation assignment in the database department. I developed a concurrent implementation of the B-Tree data structure algorithm in object-oriented C++. The B-Tree was stored in data files that I accessed through direct access I/O functions.

The main challenge here was discovering how to implement the locking so that it would lock as little of the B-tree file as possible during inserts, updates, deletes, and searches. I implemented the locking by using the file system lock function where per-update operation at the most 3 simultaneous page-level locks were placed by the algorithm.

I developed mathematical formulas to predict the theoretical concurrency levels possible by the algorithm.

To prove the theoretical calculated outcomes, I tested the algorithm. At that time, I did not have available a true multithreaded environment where I could test it. I only had a MS DOS system available. Therefore I developed a simple language that supported virtual threads on MS DOS and that made it possible to perform simulations with different numbers of threads and different types of load. I measured these results and organized them in tables.

Compiler for the Scheme Language

This was a university research project meant for me to practice my skills in C++ development and compiler technology in the artificial intelligence department.

I created an optimizing compiler for the Scheme language (a dialect of Lisp) that compiled directly into assembly code for the 68000 processor.

The standard had a hand-written lexical analyzer and recursive descent parser. During parsing, the static analysis of the source code was done to make some optimizations possible. The system did some local optimizations, like for example replacing inferred values of variables. It also performed some more complex optimizations like transforming tail recursion, where a function invokes itself, into a flat loop.

In the end, I implemented some solutions to classic programming problems like tree search and sorting, but also some simple genetic algorithms.

Purchase invoice processing app

http://factuur-portal.nl
During my work at Applify I developed a portal for a Dutch startup (NexusVerus) that was meant for processing of electronic invoices submited by e-mail, file transfer or api's. The invoices could be submitted as PDF, scanned images or structured formats like XML/UBL. The system used OCR technology and pattern matching to detect content inside scanned documents. During the project I evaluated cloud services for image recognition like AWS Rekognition and Google Vision, eventually Google Vision was used.

Cleveland Cavaliers Webshop

http://www.cavaliersteamshop.com
For Cleveland Cavaliers I was tasked with making the webshop handle load in a better way and add functionalities. To achieve this, I migrated the webshop from a hosting on dedicated machines to AWS. The application was modified to use AWS EBS to allow for dynamic scaling. I used AWS Redis for caching and AWS SQL Server as database. In the process I also took care of most parts of the AWS setup.

Languages

HTML5, XSLT, XSD, Less, CSS3, T-SQL (Transact-SQL), Sass, JavaScript, C#, TypeScript, SQL, C#.NET, PHP, Clipper, Uniface, VBScript, GhostScript, PostScript, XQuery, C, dBASE, C++, Visual Basic for Applications (VBA), Visual Basic 6 (VB6), Visual Basic .NET (VB.NET), Visual Basic, Visual FoxPro, Janus, SCSS, Java, Scheme

Frameworks

.NET Core, OAuth 2, ASP.NET MVC 4, ASP.NET MVC 3, Bootstrap, ASP.NET Web API, ActiveX, NUnit, Angular, Bootstrap 2, Bootstrap 3+, ASP.NET, Windows Communication Framework (WCF), .NET, ASP.NET MVC, JavaScript MVC, Knockout (Knockout.js), AngularJS, Angular Material, Entity Framework Core, ASP.NET Core MVC, Ionic 2, Ionic, Ext JS, Express.js, NHibernate, ASP.NET Web Forms, Bootstrap 3, IdentityServer 4, Redux, .NET 4, Windows Presentation Foundation (WPF), ASP.NET Core, Express.io, NestJS, iOS SDK, Android SDK

Libraries/APIs

jQuery, jQuery UI, iTextSharp, AngularUI, Win32 API, Entity Framework, REST APIs, Node.js, NServiceBus, React, Financial Service API, Microsoft Foundation Class (MFC) Library, SignalR, Microsoft Foundation Classes (MFC), Web API, OpenAPI, Socket.IO, WebRTC, Google Maps SDK, Leaflet, Google Maps, Google Vision API, Amazon Rekognition

Tools

CC.NET, Git, xUnit, Autofac, Jira, Redmine, Subversion (SVN), Hangfire, TortoiseSVN, Microsoft Visual Studio, CorelDRAW, Browserify, WCF Test Client, Microsoft Excel, Sencha UI, Handsontable, Webpack, Gulp, Windows Azure SDK, Amazon EBS, MS Silverlight

Paradigms

Distributed Computing, Parallel Computing, Change Management, MVC Design, Management, Compiler Design, Design Patterns, REST, Unit Testing, Scrum, Generic Programming, Distributed Programming, Model View Controller (MVC), CQRS, Event Sourcing, Continuous Delivery (CD), Continuous Integration (CI), Service-oriented Architecture (SOA), Windows App Development

Platforms

NopCommerce, Windows Server 2003, Windows Server 2012, CentOS, MS-DOS, Windows Server 2008, Windows Server, Drupal, Magento 2, Magento API, Linux, Windows, PDF.js, Azure, Kubernetes, Amazon EC2, SharePoint, WordPress, DNN, Docker

Storage

MySQL/MariaDB, SQL Server 2014, SQL Server 2012, SQL Server Analysis Services (SSAS), Database Modeling, SQL Server 2016, Btrieve, Microsoft SQL Server, MongoDB, SSAS Tabular, OpenXML, SQL Server Reporting Services (SSRS), MySQL, PostgreSQL, MariaDB, JSON/XML Schemas, Amazon S3 (AWS S3), FileZilla FTP Server, Azure Cosmos DB

Industry Expertise

Project Management, Travel & Leisure

Other

PDF Design, Algorithms, Code Review, Content Management Systems (CMS), Ajax, SDKs, Google, ZIP, CSV File Processing, Parsers, Data Modeling, Graphing, Regular Expressions, Data Structures, Payment Gateways, Scrum Master, Integration Testing, Integration, Web Languages, Barcode Library, Technical Project Management, Projects, SFTP, TCP/IP, RPC, Multithreading, Enterprise Resource Planning (ERP), Graphical User Interface (GUI), Customer Relationship Management (CRM), PDF, EF6 Code First, i18n, Full-stack, Plugins, Distributed Systems, Windows Services, Data Engineering, CI/CD Pipelines, Financial Modeling, Financial Data, Telerik Web Controls, SOAP, OAuth, Risk Management, Heuristic & Exact Algorithms, User Interface (UI), GUI Development, FTP, Financial Engineering, Risk Analysis, MSMQ, Cloud Architecture, OpenAI, Identity Server, Machine Learning, HL7, Jitsi, SVG, ECharts, Cube.js, Nebular

1986 - 1990

Master's Degree in Electrical Engineering and Information Technology

Saints Cyril and Methodius University of Skopje - Skopje, Republic of Macedonia

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