Gordan Sikic, Developer in Medulin, Croatia
Gordan is available for hire
Hire Gordan

Gordan Sikic

Verified Expert  in Engineering

C++ Software Engineer and Developer

Location
Medulin, Croatia
Toptal Member Since
November 5, 2018

With over two decades of experience, Gordan是一位资深的c++软件工程师,在数值分析方面有很强的背景,对虚拟现实充满热情, 3D graphics, and visual simulations. He is also experienced in mathematical modeling, CAD systems, and real-time systems.

Portfolio

Jungle Disk LLC
C++, XML, Git, XML Parsing, Windows, Object-oriented Programming (OOP)...
Uljanik Shipbuilding Computer Systems
Rhinoceros 3D, 3D CAD, 3D, Virtual Reality App Design, Virtual Reality (VR)...
Uljanik Shipbuilding Computer Systems
3D CAD, 3D, Solaris, Microsoft Visual Studio, XML, Unix, wxWidgets, XML-RPC...

Experience

Availability

Part-time

Preferred Environment

Git, Windows, Linux, MacOS, 3D, C++, CMake, Rhinoceros 3D, OpenGL, MATLAB

The most amazing...

...我已经设计并实现了米格-21飞机动态行为的数学模型,用于克罗地亚空军的飞行模拟器.

Work Experience

Senior Software Developer (C++/Windows)

2019 - 2022
Jungle Disk LLC
  • Improved and reorganized the CMake build system. I created a unified way of building all programs on all supported operating systems, Windows, MacOS, and Linux, building installers, and automatic build of third-party libraries.
  • 通过转换和使用移动str结构,使代码现代化,并将现代c++功能引入系统. 其思想是尽量减少重新设计的类之外的源更改,并改进内部类设计.
  • Introduced various design patterns, such as the producer-consumer, adapter, and visitor. 目标是降低内部绑定和源库各个部分之间的相互依赖关系.
  • Performed a general reorganization of a complete codebase. 重组后的代码库更清晰,为将来的更改做好了充分的准备,并且更易于维护.
  • 对程序的未来设计进行了调查,以引入用于XML处理和远程过程调用的自动代码生成. 这包括使用现代中间件库(如gRPC和SSD代码生成器)进行XML解析.
Technologies: C++, XML, Git, XML Parsing, Windows, Object-oriented Programming (OOP), Windows API, C, CMake, Multi-platform Development, SQLite, Wix Installer, MSBuild, Asynchronous Programming, Concurrency, Libcurl, Microsoft Visual Studio, OpenSSL, Amazon S3 (AWS S3), Google Cloud Storage, Windows File Systems, XML-RPC, Semantic Versioning, Data Encryption, wxWidgets, Boost

Head of Development

2013 - 2019
Uljanik Shipbuilding Computer Systems
  • Developed virtual reality extensions for the ShipExplorer suite, which enabled a complete immersion into the ship. It was made using Oculus Rift and OpenGL 4.X was used in order to improve the user experience, such as shadows and water reflections.
  • Built Stereo 3D extensions for the ShipExplorer suite. 这是一个与操作系统无关的系统,旨在提升使用立体声3D输出设备的用户体验. It was made using OpenGL.
  • 在不损失图像质量的情况下实现了速度增强,整艘船从10-15 FPS提升到150-250 FPS. 这允许展示和检查整个船没有任何退化的用户体验.
  • 创建了一个客户端/服务器系统,在不同计算机上运行的许多ShipExplorer进程之间共享数据和完成程序状态, reassuring that all have access to the same data. It was made using Apache Thrift libraries for RPC and C++.
  • 构建了一个系统,从运行在另一台计算机上的远程进程控制ShipExplorer. It is a callback-based system that also allowed an external process to respond to user input. It was implemented using Apache Thrift, C++, and Python.
  • Developed a modular build system based on CMake and utilizing SVN. 这允许许多相互不连接的存储库充当一个虚拟存储库,而不需要SVN的外部功能, resulting in a greatly simplified build system.
  • 在ShipExplorer可视化子系统中添加动态行为,使用c++实现实时微分方程求解. Each view parameter was presented as a SISO system, and an output of the system was used for the actual drawing.
  • 研究了在Uljanik造船厂使用JavaScript将3D船舶模型包含到业务web应用程序中的可能性, WebGL, and Three.js.
Technologies: Rhinoceros 3D, 3D CAD, 3D, Virtual Reality App Design, Virtual Reality (VR), Solaris, Microsoft Visual Studio, XML, Three.js, Unix, wxWidgets, XSD, Rhino, C++11, Linux, JavaScript, WebGL, Apache Thrift, Oculus Rift, MATLAB, Boost, CMake, OpenGL, Python, C++

CAD Subsystems Designer

2005 - 2013
Uljanik Shipbuilding Computer Systems
  • 构建了一个基于antlr的替代系统,用于解析和解释CADDS-5专用语言,该语言有助于几何形状的参数化创建.
  • 开发了一个基于corba的客户机/服务器系统,用于计算异构网络环境中的远程隐线移除,该环境允许快速地为大量客户机提供服务. The calculations which had taken tens of hours were now completed in a few minutes.
  • Introduced a streaming C++ interface into a CADDS-5 console, instead of keeping the original Fortran-like interface.
  • 创建了一个钩子系统,允许扩展和更改内部cad -5命令的行为.
  • Introduced STL (Standard Template Library) into C++ programming for CADDS-5, using STLport.
  • Introduced a CMake build system into the CADDS-5 development environment, resulting in a drastically simplified complete build cycle.
  • Designed and created the first version of ShiplExplorer, a software suite for the visualization, examination, and augmentation of ship structures; it ran on Windows Linux and Solaris. It was made from scratch using C++, OpenGL, and Boost C++ libraries.
Technologies: 3D CAD, 3D, Solaris, Microsoft Visual Studio, XML, Unix, wxWidgets, XML-RPC, XSD, Linux, Standard Template Library (STL), ANTLR 2, CORBA, MATLAB, Boost, CMake, OpenGL, C++

Software Engineer (Contract)

2004 - 2004
Uljanik Shipbuilding Computer Systems
  • Created a system for the automatic nesting of shell plates, running on Linux and Solaris.
  • Built a library for the 2D manipulation and examination of geometric shapes.
Technologies: wxWidgets, C++

Software Engineer (Contract)

2003 - 2004
Teleconsult
  • 创建了一个可视化和操作库,能够作为基于web的客户端/服务器系统的一部分处理巨大的地形区域. It was used for the initial decisions for GSM mast placement.
  • Implemented a real-time visibility check; taking into account the type of terrain, terrain heights, and terrain draping.
  • 计算作为地形位置函数的全方位可视性和阴影区域, height of the mast, terrain type, and terrain draping.
  • 开发了一个绘图速度管理系统,使用地理映射方法来优化用户体验.
  • 建立一个多线程内存管理系统,以保持内存占用尽可能低,并确保所有相关的地形瓷砖加载和可见.
Technologies: 3D, Microsoft Visual Studio, GIS, GRASS GIS, Visual Basic, OpenGL, C++

Software Engineer

2001 - 2004
IT-Base
  • Improved the mathematical correctness of a program's back-end. All of the calculations were moved into a specialized, handmade library.
  • 通过编写各种评估测试来优化图形速度,然后相应地更改绘图功能. All of the dynamic texture manipulations were moved out of GDI and executed manually.
  • Redesigned a visualization subsystem of the program. Numerous changes were made in order to replace the GDI visualization back-end with OpenGL.
  • 通过创建通用IO库重新设计了导入/导出子系统,其中所有不同的格式都表示为一系列回调, resulting in greatly simplified code.
Technologies: Microsoft Visual Studio, GDI(+), OpenGL, C++

Software and Simulation Engineer

1995 - 2000
Institute for Defence Studies
  • Designed and implemented various algorithms for antitank missile guidance. The initial design and testing were done with MATLAB with the Control Toolbox and implemented, in real time, with C++.
  • Created a visual interactive real-time tank shooting simulation, using a mathematical model of the Fagot missile. 自动驾驶仪的内回路基于“逆动力学”算法,外回路设计为半自动系统,只需要手动照亮目标. 结果是一个非常健壮的系统能够处理菲格特动力学的高度非线性本质,最终, increasing the safety of the man firing the missile.
  • Developed a mathematical dynamics model for the MiG-21 aircraft. 它被组织为一组非线性微分方程,并在三个层面上进行了检查:纵向和横向模式的动态行为的重建, 再现其飞机性能(最大高度或操作包线), and recreated the behavior mentioned in pilot manuals for the real aircraft.
  • 利用米格-21飞机的数学模型,设计并实现了一个完整的实时视觉飞行仿真. Using the previously designed mathematical model, I made a complete distributed real-time interactive visual simulation, based on RTLinux extensions. 核心程序作为具有最高优先级的RT进程运行,而原始Linux内核以最低优先级处理. The mathematical model was re-implemented as a set of kernel modules, while the rest of the simulation ran in the "userland" space.
Technologies: 3D, Linux, MATLAB, OpenGL, C++

Real-time Dynamic Behavior Template Library

这个头文件代表了一个“仅头文件”的库,它为特定类型的变量定义了动态行为.

The dynamics are defined as single-input and single-output (SISO) system of the second order, using state space representation. The DC gain is 1.0, meaning that in a steady state, the variable will have the same value as the input.

Dynamic calculations are done in real time, using an Euler integration method, independent of the actual computing speed, provided that the CPU is fast enough (one of the key requirements of RT systems).

A dynamic variable behavior might be used, e.g., 平滑鼠标的移动,并在使用OpenGL的程序中创建更吸引人的用户体验.
1995 - 2000

Master's Degree in Multidisciplinary Technical Sciences

University of Zagreb - Zagreb, Croatia

1983 - 1990

Bachelor's Degree in Aerospace Engineering

University of Belgrade - Belgrade, Serbia

Libraries/APIs

wxWidgets, OpenGL, Standard Template Library (STL), GDI(+), Rhino, WebGL, Three.js, Windows API, Libcurl, OpenSSL

Tools

MATLAB, Qt Creator, CMake, Microsoft Visual Studio, Git, Subversion (SVN), GRASS GIS, Rhinoceros 3D, ANTLR 2, GIS, Wix Installer, MSBuild

Languages

C++11, C++, Python, JavaScript, Visual Basic, XSD, XML, C

Platforms

Solaris, Windows, Linux, Unix, Oculus Rift, MacOS

Storage

XML-RPC, XML Parsing, SQLite, Amazon S3 (AWS S3), Google Cloud Storage, Windows File Systems

Frameworks

Boost, Apache Thrift

Paradigms

Object-oriented Programming (OOP), Multi-platform Development, Asynchronous Programming

Other

Virtual Reality App Design, Virtual Reality (VR), 3D CAD, 3D, CORBA, Concurrency, Semantic Versioning, Data Encryption, Programming

Collaboration That Works

How to Work with Toptal

在数小时内,而不是数周或数月,我们的网络将为您直接匹配全球行业专家.

1

Share your needs

Discuss your requirements and refine your scope in a call with a Toptal domain expert.
2

Choose your talent

在24小时内获得专业匹配人才的简短列表,以进行审查,面试和选择.
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