Працював в 4 компаніях   21 рік

IT, Банки

Senior C++ developer

Virgin Records Limited T/A Audiomovers, London, UK

IT

3 роки 3 місяці

09.2021 - до теперішнього часу

Project Description:

Server-based audio tool for high-quality audio streaming. It consists of two parts: coordinator and stream server. The transmitter connects to the coordinator. The coordinator checks the registration and permissions via the DB and if everything is OK, redirects to the nearest / less loaded server. This division allows to prevent any hard blocking operations on the server. The server creates the session, puts it into the thread pool, and waits for the listeners. The listener connects to the coordinator,coordinator searches which server has the corresponding session, and redirects the listener to this server. The server adds listeners to the session and streams to the user the chosen track with the chosen delay. Because the thread pool parallelizes the sessions, not the listeners, it allows to minimize blocking operations between the threads. Сombinedwith the transfer of potentially heavy functionality to a separate process allows us to get a functionally simple and reliable server, minimally dependent on the environment.

Responsibilities:

- server-side development (c++ sockets based tcp server)

- audio plugin development (AAX, VST/VST3 for MacOS and Windows. Used to transmit and/or receive audio)

- Web development (php, java-script. time to time, not too deep)

Technologies: C++, sockets, STL, boost, SQL, Linux-Server, JUCE

Senior C++ developer

GlobalLogic Ukraine

IT

11 років 8 місяців

01.2010 - 09.2021

Project Description:

AVID Live Sound. HW mixer for live concerts. My part is any user-inputperipheral modules, both FW and SW support. Each module has some controls, managed by FPGA, or touchscreen with Qt-based GUI. They have a stable TCP connection with SW for the FW -> SW communication.And they listen to a UDP port for SW -> FW feedback. So, each module isa host for the TCP connection and a listener for the UDP broadcast. TCPchannel transfers the raw input data from the user to SW. SW can confirm or filter out them.If confirmed, it throws it via UDP broadcast, and each module with the same control updates its state. SW in general consists of several blocks. Each block is a separate process. The main block provides the basic functional and communication between audio I/O and sound processor. The rest are each engaged in their peripheral functionality. Communication is provided by shared memory with the hierarchy of the POD structures mapped on it, and the shared API to work with it. Every module can read this memory, but only the main module can write. A 'pipe' is used to write requests and change notifications. Each row of any structis atomic and any values of any two fields are valid relative to each other. This way allows to prevent any interprocess locks and the signal from a 'pipe' is full enough for synchronization.

Responsibilities:

- embedded Linux development on FW side

- embedded Windows development on SW side

Technologies: C++, Qt (QML), sockets, STL, boost

Middle C++ developer

TC, Kyiv, UA

IT

3 роки

01.2007 - 01.2010

Windows security systems.

Junior C++ Developer

Express, Donetsk, UA

Банки

3 роки

01.2004 - 01.2007

Internal bank SW

Ключова інформація

C++: STL, boost, multithread

Networking: sockets, TCP, UDP

Qt: Widgets, QML

SQL: MySQL, MariaDB, SQLite

SCM: git, AccuRev

Build: CMake, make

Agile: JIRA

Web: PHP, js, MediaAPI, WebRTC

Навчався в 1 закладі

ДонДІШІ (ДонНТУ)

програмне забезпечення

Донецьк, 2006

Володіє мовами

Англійська

середній

Олександр

Senior C++ developer

Київ

40 років

повна зайнятість, неповна зайнятість, проектна робота

Характер роботи: віддалена робота, в офісі/на місці

Оновлено 1 місяць тому