Працював в 4 компаніях 20 років 11 місяців
IT, Банки
Senior C++ developer
Virgin Records Limited T/A Audiomovers, London, UK
IT
3 роки 2 місяці
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
Київ
Активно шукає роботу
повна зайнятість, неповна зайнятість, проектна робота
Характер роботи: віддалена робота, в офісі/на місці
Оновлено 2 тижні тому