Erhan Okuyan, Developer in Ankara, Turkey
Erhan is available for hire
Hire Erhan

Erhan Okuyan

Verified Expert  in Engineering

Embedded Software Developer

Location
Ankara, Turkey
Toptal Member Since
June 28, 2022

Erhan is a software developer with over 15 years of expertise in various facets such as embedded programming, computer graphics, network programming, and video processing. As a developer, he has created software modules regarding different areas for several defense projects, including the famous ANKA drones. Erhan has an academic background with a PhD in computer engineering. His research encompassed high-performance computing, volume visualization, and computational physics.

Portfolio

Turkish Aerospace Industries
C, C++, C#, C#.NET, C#.NET WinForms, Python, OpenGL, OpenGL ES, INTEGRITY RTOS...
Turkish Aerospace Industries
C, C++, Python, C#, OpenGL, OpenMP, INTEGRITY RTOS, OpenCV, CMake, Win32 API...
Turkish Aerospace Industries
C, INTEGRITY RTOS, C#.NET, DevExpress, C++, OpenGL, VAPS, DO-178B/C...

Experience

Availability

Part-time

Preferred Environment

Windows, Linux, C, C++, C#, Python

The most amazing...

...role I've had is being one of the major developers of the famous battle-proven ANKA UAV systems.

Work Experience

Associate Avionic Software Development Engineer

2018 - PRESENT
Turkish Aerospace Industries
  • Provided maintenance support and developed required updates for deployed ANKA UAV (unmanned aerial vehicle) software systems.
  • Developed radio interface software for ANKA UAV radio relay system. Communication protocols based on Stanag 4586, 7023, and custom formats were partially reverse-engineered using Wireshark data dumps and designed as a Windows service with C++ and C#.
  • Contributed to the development of a video visualization application with extended capabilities for ANKA UAV systems.
  • Worked on image processing applications such as tracking and motion detection for EO/IR videos coming from the ANKA UAV.
  • Developed and trained a deep-learning model for symbology masking EO/IR payload videos in ANKA UAVs. Since the symbology overlayed onto the incoming video negatively affects many image processing algorithms, masking is a preprocessing step.
  • Built a data routing application with extended capabilities for ANKA UAV systems.
Technologies: C, C++, C#, C#.NET, C#.NET WinForms, Python, OpenGL, OpenGL ES, INTEGRITY RTOS, Real-time Operating System (RTOS), TensorFlow, OpenCV, CMake, Windows Services, Wireshark, Reverse Engineering, Graphical User Interface (GUI), Multithreading, Background Threading, Real-time Embedded Systems, Sockets, Back-end Development, Back-end, H264, Computer Graphics, Deep Learning, VAPS, Computer Vision, Computer Networking, TCP/IP, Transmission Control Protocol (TCP), UDP, Ethernet, Embedded C, Embedded Systems, Multiprocessing, Windows, Algorithms, DO-178B/C, FFmpeg, Object-oriented Programming (OOP), Embedded Development

Senior Avionic Software Development Engineer

2012 - 2018
Turkish Aerospace Industries
  • Provided maintenance support and developed required updates for deployed ANKA UAV (unmanned aerial vehicle) software systems.
  • Created a video visualization application with extended capabilities for ANKA UAV systems.
  • Built a data routing and recording application for ANKA UAV systems.
  • Made synthetic-aperture radar (SAR), a data visualization module that receives the SAR image data with Stanag-7023 standard to perform image processing and create the detailed image using C++ as a dynamic-link library (DLL).
  • Produced small utilities with Win32 API that automatize the data entry routines for companies existing business applications, reducing manual workload.
  • Implemented flight-plan collision detection analysis software module for ANKA UAV aircraft control software. The software analyzed the defined flight plans for possible ground collisions using DTED heightmap files.
  • Maintained the mission control module and the redundancy and hot-swapping modules of ANKA UAV flight control software.
  • Contributed to ANKA UAV ground control station's system management, data management, and test engineering software using C#, C++, and DevExpress libraries.
  • Worked on aircraft control software for Simsek (high-speed target drone) and Mosquito (unmanned helicopter). Developed HMI screens and related telemetry and telecommand handling modules using C#, OpenTK, and DevExpress.
  • Developed a flight simulation application for ANKA-UAV graphical simulations.
Technologies: C, C++, Python, C#, OpenGL, OpenMP, INTEGRITY RTOS, OpenCV, CMake, Win32 API, Windows Services, Wireshark, Graphical User Interface (GUI), Multithreading, Background Threading, Real-time Embedded Systems, Sockets, Back-end Development, Back-end, H264, Computer Graphics, VAPS, Computer Networking, TCP/IP, UDP, Transmission Control Protocol (TCP), Ethernet, Embedded C, Embedded Systems, Multiprocessing, Windows, Algorithms, DO-178B/C, FFmpeg, Object-oriented Programming (OOP), Embedded Development, C#.NET, C#.NET WinForms, 3D Visualization, DevExpress, Digital Terrain Elevation Data (DTED), Stanag 4586, Stanag-7023

Avionic Software Development Engineer

2007 - 2012
Turkish Aerospace Industries
  • Developed aircraft control software for ANKA UAV products' ground control station (GCS). This software was DO-178B certifiable and was created on Integrity RTOS (real-time operating system) with C language.
  • Created Human Machine Interface (HMI) screens of ANKA aircraft control software on Integrity RTOS using C and the VAPS tool.
  • Devised and developed RTOS Task Scheduling algorithm of ANKA UAV aircraft control software. (Okuyan et al. (2012). Earliest deadline first scheduling algorithm and its use in Anka UAV. 2012 IEEE/AIAA 31st Digital Avionics Systems Conference (DASC)).
  • Worked on real-time networking libraries of ANKA UAV aircraft control software, including custom software implementation of ethernet interface teaming and custom multicast registration routine for Integrity RTOS using C.
  • Implemented ANKA UAV aircraft control software's logging and instrumentation modules. Performed system-wide performance optimizations and consulted on module-wise optimizations.
  • Maintained the mission control module and the redundancy and hot-swapping modules of ANKA UAV flight control software.
  • Contributed to system management, data management, and test engineering software of ANKA UAV ground control station using C#, C++, and DevExpress libraries.
  • Worked on aircraft control software for Simsek (high-speed target drone) and Mosquito (unmanned helicopter). Developed HMI screens and related telemetry and telecommand handling modules using C#, OpenTK, and DevExpress.
Technologies: C, INTEGRITY RTOS, C#.NET, DevExpress, C++, OpenGL, VAPS, DO-178B/C, Stanag 4586, Stanag-7023, Windows Services, C#, Embedded C, Embedded Systems, Back-end, Back-end Development, Ethernet, 3D Visualization, Algorithms, Computer Networking, Computer Graphics, Wireshark, FFmpeg, Graphical User Interface (GUI), Multithreading, Windows, Object-oriented Programming (OOP), Embedded Development, C#.NET WinForms, TCP/IP, UDP, Human-machine Interface (HMI), Real-time Operating System (RTOS)

Visualization Application for ANKA UAV Family Ground Control Station (GCSVisualizer)

Developed a video visualization application for ANKA UAV GCS with extended capabilities, such as:
• Allowing multiple video streams from the UAV to be displayed in real-time.
• Supporting H264 encoded videos with/without MpegTS and Stanag-7023 encapsulations.
• Facilitating customizable video data and video output buffering for smooth and low latency video display.
• Overlaying telemetry data of the UAV onto the video with custom symbology (dials, indicators, etc.).
• Sustaining telemetry from multiple sources.
• Facilitating the replay of previously recorded video and telemetry data.
• Enabling video exports.
• Fostering image processing algorithms, such as tracking and motion detection.
• Promoting the inference of external deep learning models, such as naval vehicle classification or forest fire detection.
The application was integrated into payload control, system management, and stand-alone software and actively used as the flight and mission monitoring tool for the ANKA UAV family. I was the sole developer on this project.

Data Routing Application for ANKA UAV Family Ground Control Station (GCS)

Built a many-to-many network stream routing application for ANKA UAV GCSs with extended capabilities, including:
• Allowing network data distribution to receive data from many network sources via UDP or TCP, then route the data to numerous destinations via UDP, TCP or even export the contents into a file.
• Replacing a single worker process created for each data source by implementing a multi-process architecture and improving the performance and reliability.
• Facilitating unicast and multicast UDP connections and client and server TCP options.
• Supporting multiple Ethernet interfaces.
• Allowing for optionally stripping Stanag7023 headers before routing the data.
• Permitting numerous running methods, whether via a windows service, a background application, or a Windows application with a GUI.
Ground control stations and the networks within these stations used the tool. I developed the entire application.

EOFSim Flight Simulator

Operated as the sole developer to develop the graphical flight simulation application. EOFSim was designed to replace Flight Gear to visualize flight simulations for the ANKA UAV Family. It is an original implementation that does not use any high-level external libraries. EOFSim employed two graphics engines, one based on OpenGL and another on Direct3D. EOFSim has an object-oriented design. It used Digital Terrain Elevation Data (DTED) for terrain generation and uses AC models for airplane geometry. It utilized a dynamic view-dependent level-of-detail assignment mechanism and was multi-core optimized. EOFSim was made highly efficient, reaching 50+ fps on low-end computers using technologies such as C++, OpenGL 3.3, GLSL 3.3, Direct3D 9, and HLSL.

Dynamic View-Dependent Visualization of Unstructured Tetrahedral Meshes

Created a visualization tool for unstructured volume data. The tool was developed as a part of my PhD studies. We proposed a new data representation for volume data, that allowed selective volume refinement. Afterward, we proposed a view-dependent refinement algorithm that utilized the volume data representation. Depending on the dataset, we were able to reduce the number of tetrahedra to render down to one-tenth of the original number with very little to no quality loss using this approach, which significantly reduced the rendering times.

Direct Volume Rendering of Unstructured Tetrahedral Meshes using CUDA and OpenMP

Made a visualization tool for rendering unstructured volume data with GPU and multi-core CPUs. I developed this tool as a part of my PhD studies. We proposed parallelizing methods, a CPU-based Cell-Projection volume rendering algorithm for multi-core CPUs and the GPU. For multi-core parallelization, we managed to obtain almost linear speed-ups. For GPU parallelization, we managed to get practically interactable rendering times even with a low-end GPU achieving 20-30 times speed-ups.

MaterialVis: Material visualization tool using direct volume and surface rendering techniques.

Built a material visualization tool for solid-state physicists. The tool was created as part of my PhD studies. We collaborated with solid-state physics professors and developed this tool according to their needs. Using volume and surface rendering techniques, we visualized the structures and the defects of the solid materials.

BilKristal: Pattern Information Extraction from Crystal Structures

Established a tool for pattern information extraction and defect quantification from crystal structures to assist crystallographers. This tool was created as a part of my PhD studies. We collaborated with solid-state physics professors and developed this tool according to their needs. We analyzed the crystal structures for local and global symmetries in the presence of defects to extract crystal parameters. We also updated the tool and published two follow-up papers in the same journal.
2007 - 2014

PhD in Computer Engineering

Bilkent University - Ankara, Turkiye

2003 - 2006

Master's Degree in Computer Engineering

Bilkent University - Ankara, Turkey

1999 - 2003

Bachelor's Degree in Computer Engineering

Bilkent University - Ankara, Turkey

Libraries/APIs

OpenGL, OpenMP, Sockets, OpenCV, FFmpeg, Win32 API, MPI, TensorFlow, OpenGL ES

Tools

Visual Studio, Wireshark, MATLAB, Direct3D, CMake, C#.NET WinForms

Languages

C, C++, Embedded C, C#, C#.NET, Python, Java, SQL, GLSL, HLSL

Paradigms

Parallel Programming, Object-oriented Programming (OOP), GPGPU

Platforms

Windows, NVIDIA CUDA, Unix, Linux

Storage

Databases

Frameworks

.NET

Other

Computer Networking, Computer Graphics, TCP/IP, Computational Geometry, VAPS, DO-178B/C, Stanag 4586, Stanag-7023, MPEG-TS, UDP, Transmission Control Protocol (TCP), Digital Terrain Elevation Data (DTED), Algorithms, 3D Visualization, Research, Multi-core Programming, Graphical User Interface (GUI), Multithreading, Background Threading, Multiprocessing, Embedded Development, Computer Vision, Computational Physics, Neural Networks, DevExpress, Reverse Engineering, H264, Real-time Embedded Systems, Back-end Development, Embedded Systems, Back-end, Operating Systems, Graph Theory, Ethernet, Cryptography, Natural Language Processing (NLP), Windows Services, Wireless Networking, Shaders, Deep Learning, INTEGRITY RTOS, Real-time Operating System (RTOS), Human-machine Interface (HMI), Generative Pre-trained Transformers (GPT)

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