Hüseyin Erkan Acun, Developer in Ankara, Turkey
Hüseyin is available for hire
Hire Hüseyin

Hüseyin Erkan Acun

Verified Expert  in Engineering

Deep Learning Developer

Location
Ankara, Turkey
Toptal Member Since
May 11, 2018

For the past seven years, Hüseyin has worked as a full-stack developer and embedded programmer—designing and implementing projects running from embedded to large-scale servers, developing various products (image processing, machine learning algorithms, web interfaces, etc.), and building systems from scratch. Hüseyin works closely with clients to provide spot-on solutions. He has a particular passion for designing and developing with C++.

Portfolio

Spencer Health Solutions Inc
GPUImage, Qt, WebRTC, Embedded Linux, Kernel, HTTP, CRUD, C, C++, Linux...
Mantis Health, Inc.
C++, C, Linux, Java, Qt, OpenCV, OpenGL, Ubuntu, Touchscreens, Medical Devices...
Xtralth, Inc.
Model View ViewModel (MVVM), C++, Qt

Experience

Availability

Full-time

Preferred Environment

Linux, Qt, C++

The most amazing...

...project I've developed is an IP camera mock; it responds to a request as a camera does and provides video streams. It can be controlled via an HTPP address.

Work Experience

Senior Embedded Linux WebRTC Application Engineer

2023 - PRESENT
Spencer Health Solutions Inc
  • Updated the Chromium source code to integrate a hardware encoder and decoder for a WebRTC-based video chat application.
  • Ran multiple C++ applications to utilize hardware codecs on the device to test performance and analyze its behavior.
  • Ran the system with updated Chromium and fixed bugs related to the mismatch between the hardware encoder and Chromium.
Technologies: GPUImage, Qt, WebRTC, Embedded Linux, Kernel, HTTP, CRUD, C, C++, Linux, Machine Learning

Senior C Developer

2022 - 2022
Mantis Health, Inc.
  • Fixed the existing system's concurrency implementation to reduce latency on the video feed and updated the display to reduce visual artifacts.
  • Implemented a module to update video feed focus points to provide the 3D sense outgoing video feed.
  • Implemented a networking protocol to connect to the system and configure its behavior.
Technologies: C++, C, Linux, Java, Qt, OpenCV, OpenGL, Ubuntu, Touchscreens, Medical Devices, Video Manipulation

Software Engineer

2019 - 2020
Xtralth, Inc.
  • Developed the user interface of a system using C++ and Qt. We used MVVM as design paradigm.
Technologies: Model View ViewModel (MVVM), C++, Qt

Senior Software Engineer

2019 - 2019
Infodif
  • Developed image processing algorithms to detect accidents, intrusions, and other events that occur on bridges and highways.
Technologies: Deep Learning, NVIDIA CUDA, OpenCV, FFmpeg, C++

Senior Software Engineer

2018 - 2019
ISSD
  • Developed an image-processing application running on a CCTV camera itself using C++. This CCTV camera contains arm processor and DSP chips running under embedded Linux.
  • Used the OpenCV and toolchain provided by the CCTV camera manufacturer and ran image processing algorithms in CCTV camera and integrated the system in the camera.
  • Developed a proof-of-concept application using Intel Movidius VPUs.
  • Ran our trained deep learning models on Movidius chips. Movidius can run complex models using very low cpu usage. The VPUs are optimized to run neural network models and the CPU are only required for utilizing VPUs.
Technologies: Embedded Linux, TensorFlow, Intel, OpenCV, FFmpeg, Qt, GStreamer, Standard Template Library (STL), Boost, C++

Senior Software Engineer

2017 - 2018
Simsoft
  • Built a distributed application for ASELSAN, a Turkish state-owned military company. The application contains signal processing at a very high volume of data in real-time.
  • Developed a video-stream application over RTSP. The application contains a distribution of screens using real-time as well as different video resources—the project was developed using C++, DirectShow, FFmpeg, GStreamer, and OpenCV.
Technologies: ActiveMQ, OSGi, Hibernate, Microsoft SQL Server, Java

Senior Software Enginner

2015 - 2017
ISSD
  • Developed an image-processing algorithm for event detection in tunnels. The algorithm connects a tunnel camera and provides detection results like car counts and various alarms (pedestrians, dropped packages, and intruders). The process also supports processed and unprocessed images as an MJPEG stream.
  • Built a server application SPECTO to configure and run multiple image-processing detectors and integrate them with the central server. The server creates, deletes, and configures different types of detector processes and informs the central server about events.
  • Created an IP-camera mocking application to integrate the network video recorders; this application can be added to an NVR as a camera and provide RTSP streams from different detecting processes. Its source can be configured through an HTTP request and NVR sees the process as a single camera.
  • Created an application, called Bluesis, to gather Bluetooth discoveries of filed devices and use that data to calculate travel time and density between points. The system used Mac addresses sent from devices and find matches between configured points and use them in calculations. The system saves calculations in its own format and also integrates different host with different data formats.
  • Developed user interfaces of Bluesis to configure parameters and monitor field devices and system statuses.
  • Built a lightweight HTTP server in C++ with automated controller registration and routing. Also developed the WebSocket server for the HTTP server. The server connects other processes in the environment with DBus for configuration and monitoring. It also subscribes signals of other process and sends them via WebSocket.
  • Developed a junction controller system Centris which controls traffic lights on junctions. Centris is an embedded device with an arm CPU, and it can connect to and gather information from different types of sensors and junction controllers. Centris can be configured to run different algorithms like the green wave and dynamic. It can also be configured and monitored from the central server. It can provide information about junction status to the server. It has its own HTTP server and user interface.
  • Contributed to the design and development of complicated road systems (involving embedded processors and cameras) that do the following tasks: plate recognition, car counting, and calculates density.
Technologies: RTSP, Microsoft SQL Server, DBus, Web API 2, ASP.NET MVC 5, IIS, Windows Communication Foundation (WCF), C#, JavaScript, HTML, SQLite, LIVE555, GStreamer, ZeroMQ, MATLAB, Linux, Boost, OpenCV, C++, Qt

Junior Software Engineer

2014 - 2015
Cybersoft
  • Designed and developed a project for bank client companies to use in their billing and payment system; provided a solution for accountants so that they could only have limited access to the client company's bank account without interfering with their work.
Technologies: HTML, JavaScript, Spring, Hibernate, Microsoft SQL Server, Java

Software Engineer

2013 - 2014
Usta Bilgi Sistemler A.Ş.
  • Developed an email service to inform subscribers about their current statuses.
  • Built a stock-and-purchases system.
  • Created judicial management modules to track subscribers' legal statuses.
  • Developed a mobile application to assign tasks to field workers and gather results.
  • Built an OCR application to read sensor statuses and send them to the server.
Technologies: OpenCV, Linux, C++, JavaScript, HTML, Razor, IIS, Microsoft SQL Server, C#

AYBS+ | Multi-threaded and Multi-processing System

ROLE: Software Engineer | Full-stack Developer

PROJECT DETAILS: Here, I worked with a team of software engineers in an EIS project called AYBS+ which is a multi-threaded and multi-processing system.

WORK DONE:
• Designed and developed a couple of modules in the system.
• Finished the construction of an email engine to inform system users and clients.
• Full-stack developed stock and purchases, judicial management modules, and more.
• Designed and implemented user interfaces, the server's back-end, and a database design.

TECHNOLOGIES: C#, .NET 4.5 Framework, SQL Server 2012 (used as DBMS)

Cybersoft | Financial Billing and Payments System

ROLE: Junior Software Engineer | Full-stack Developer

PROJECT DETAILS: Cybersoft mainly works on projects where banks and financial companies use them as their main form of software. In general, companies do not want their accountants to have unfettered access their bank accounts so we provided a solution where accountants have limited-but-useful access to a client's bank account. This project is not hosted by bank servers. It is an external system and can connect with multiple accounts in different banks.

WORK DONE:
• Designed and developed a project for bank client companies to use in their billing and payments system.

TECHNOLOGIES: Java 8, SQL Server (used as DBMS), Hibernate, Spring, ActiveMQ

Specto | Tunnel Event-detection System

ROLE: Senior Software Engineer

PROJECT DETAILS: Specto is an event-detection system that is installed in tunnels. It consists of cameras being placed on operators to detect and intervene in any tunnel incidents. The cameras cover the entire tunnel and it supplies real-time video stream from cameras to the system. Incidents like a pedestrian walking in the tunnel or dropping object or debris are detected by Specto and operators are informed about the incident. Specto has a main server to configure image processor servers and processes. The system is a multi-machine, multi-process, and multi-threaded system.

WORK DONE:
• Was responsible for the design and development of processor machines and image processor processes.
• Helped to design the user interfaces, database, and use cases for Specto.
• Contributed to the image-processing algorithm design. The system is written in C++ and OpenCV used for image processing.
• Led the design and developed every aspect of Specto.

Project that Mimics CCTV Cameras

ROLE: Senior Software Engineer

PROJECT DETAILS: I developed a project to mimic CCTV cameras. It acts as a camera and implements ONVIF camera web services that can restream real-time videos from cameras or saved videos. The process also can be configured via HTTP commands. It is used to restream camera videos where incidents are detected. I used Wowza, Live555 and Gstreamer to restream camera feeds. It is also used in the framework to build image process algorithms.

Bluesis | Calculate Travel Time and Density Between Road Points

ROLE: Senior Software Engineer

PROJECT DETAILS: Bluesis calculates travel time and density between points on roads and also can integrate different types of services to notify users about the changes.

Bluesis is made up of three main parts.
1. Embedded devices are placed on roads or junctions. These devices collect Mac addresses of Bluetooth devices around and send it to the central server. The embedded device software is written in C++.
2.& 3. The server has two parts. For configuration, IIS hosts the web project and a calculation engine. A calculation engine calculates travel time and the density of configured vectors using Mac addresses which are sent by embedded devices. The server system is written in C#, .NET 4.5 was used as the framework, and SQL Server used as DBMS.

WORK DONE:
• Was responsible for the development and design of this project.
• Led a team of three engineers.

Centris | Embedded Device to Manipulate Junction Control Systems

ROLE: Senior Software Engineer

PROJECT DETAILS: Centris project is an embedded device placed on junctions to manipulate junction control systems. These systems are responsible for changing lights on junctions and with Centris, we can optimize green-light durations for junctions.

How do we accomplish this? Centris devices are connected to a central server to inform operators about the junction status. Centris devices can be fed with different kind of sensors about junction like loop counters or density and car counter Viero cameras which ISSD produces. With that information and configuration sent by a central server which can be automated or user-defined; Centris controls JMS to optimize green-light time. This also involved are various kinds of optimization algorithms.

WORK DONE:
• Led a team of two engineers in the Centris project.

TECHNOLOGIES: C++, SQLite (used as DBMS in devices)

Small, Lightweight HTTP Server

ROLE: Senior Software Engineer

PROJECT DETAILS: I developed a small, lightweight HTTP server written in C++ which is used in embedded devices and other projects. The HTTP server supports an MVC pattern, automated controller registration, and automated request routing. For computer vision systems, WebRTC support added to stream processes and raw streams. It was designed to make integrations with other systems via HTTP easier.

ASELSAN | Defense Industry Firm Work

ROLE: Senior Software Engineer

PROJECT DETAILS: I worked on this project which was outsourced to ASELSAN, a Turkish corporation that produces tactical military radios and defense electronic systems for the Turkish Armed Forces.

ASELSAN | Defense Industry Firm Work

ROLE: Senior Software Engineer

PROJECT DETAILS: I developed a video-streaming server using FFMpeg and GStreamer. The server can capture and serve live screenshots as well as other video sources like DirectShow.

WORK DONE:
• Designed and developed the project.

TECHNOLOGIES: C++, STL, FFMpeg, DirectShow, GStreamer, OpenCV

CCTV Camera Embedded Video Processing

ROLE: Senior Software Engineer

PROJECT DETAILS: CCTV Camera contains CPUs and DSP chips running under embedded Linux. The project required running real-time computer vision applications on the chips inside the cameras. The CCTV manufacturer provided necessary tools for integrating algorithms within the camera ecosystem. Using these tools, I ran the CV algorithms inside the CCTV camera.

WORK DONE:
• Designed and developed the project.

TECHNOLOGIES: C++, STL, OpenCV, Embedded Linux, Arm Toolchain

Real-time Video Processing Using Intel Movidius VPU

ROLE: Senior Software Engineer

PROJECT DETAILS: Deep neural networks are time-consuming to execute on embedded devices. Movidius VPUs are highly optimized for execution on these types of networks. I ran trained a DNN using Intel Movidius chips with very low CPU usage.

WORK DONE:
• Designed and developed the project.

TECHNOLOGIES: C++, STL, FFMpeg, OpenCV, Intel Model Optimizer, Intel Inference Engine, TensorFlow, Linux

Languages

C++, C#, Java, SQL, Python, C#.NET, JavaScript, HTML, C

Frameworks

.NET 4, Qt, .NET, Hibernate, Spring, Razor, ASP.NET MVC 5, OSGi, Boost, GStreamer, LIVE555

Libraries/APIs

Standard Template Library (STL), REST APIs, OpenCV, Web API 2, FFmpeg, ZeroMQ, TensorFlow, WebRTC, GPUImage, OpenGL

Tools

Microsoft Visual Studio, Qt Creator, DBus, CMake, Qmake, Wowza, MATLAB, ActiveMQ, GNU Toolchain

Paradigms

Parallel Programming, Concurrent Programming, Model View ViewModel (MVVM), CRUD

Platforms

Linux, Windows, Intel, Embedded Linux, NVIDIA CUDA, Kernel, Ubuntu

Other

Deep Learning, Video Encoding, H264, IIS, Windows Communication Foundation (WCF), RTSP, Image Processing, Windows App Design, HTTP, Machine Learning, Touchscreens, Medical Devices, Video Manipulation

Storage

SQL Server 2012, Microsoft SQL Server, SQLite

2005 - 2013

Bachelor's Degree in Computer Engineering

METU | Middle East Technical University - Ankara, Turkey

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