Objective
Computer Programmer / Software Engineer / Developer. Marseille, France.
Specialization: C/C++ & Python
Experience: more than 25 years of software development
Since 2013, I have been working as a software developer based in Marseille, France (CET), and hold French citizenship.
Since 2023, I have operated as an independent consultant through my registered French EURL (single-member LLC), providing software development and consulting
services to clients across various industries:
https://annuaire-entreprises.data.gouv.fr/entreprise/dementyev-eurl-949580476
I have extensive experience collaborating with international clients and teams across multiple time zones and offer flexible scheduling to ensure seamless global collaboration.
Proficient Linux user since 2000, with a specialization in Gentoo since 2004.
Personal Details / Contact information
Full name: Maxim Petrovich Dementyev (also spelled Dementiev)
Phone: +33 6 67 77 40 61 (mobile)
E-mail: dememax@hotmail.com
Telegram: @dememax Skype: mdementiev
Education: 1992 - 1997 - Moscow State University of Civil Engineering (https://mgsu.ru/), Automated Control Systems Department, Systems Engineering degree
Languages: Russian (native), English, French.
Profiles:
| GitHub dememax | FreeDesktop GitLab dememax |
SourceForge maximdementiev
Summary of Qualifications
Programming Languages: C/C++, Python, Bash, Java, SQL, JavaScript, Basic, Pascal
Operating Systems: Linux (Gentoo, OpenWRT, Debian, ...), FreeBSD, SunOS, MS Windows, Symbian
Build automation and package management: make, CMake, GNU Autotools, Meson, Cerbero, Buildroot, Portage, dpkg / apt
Tools: C/C++ compilers, tools and IDEs (GNU, Microsoft, Sun, IBM, Borland, ...), debugging/profiling (GDB, Valgrind, Purify), Office suites (OpenOffice, MS Office including MS Project, ..), unix shell (grep, find, ...), documentation generators (Doxygen, Sphinx, ...)
Version control systems: Subversion, GIT, CVS, ...
DBMS: SQLite, PostgreSQL, MySQL, ...
APIs, Libraries, SDKs: STL, ANSI C/POSIX API, libpcap, CppUnit, GStreamer, FUSE, SWIG, CGI/FastCGI, ZooKeeper, MS Win32 API, WTL, GTK
Standards, White papers: ANSI/ISO C++, POSIX (threads, sockets, ...), 802.11 (Wi-Fi) / Radiotap, RFCs (network protocols, formants, ..), W3C (HTML, CSS, XML, ...), Java Lang Spec, ANSI SQL, UML
Technologies, Methodologies: object-oriented design/programming, design patterns (GoF, ...), design and implementation of distributed multi-tier and multi-threaded client/server projects, event-driven programming, non-blocking synchronization, Web/internet, testing (load and performance, stress testing, quality assurance)
Electronic exchanges: Order-book, orders, quotes, securities, derivatives, API (FIX, OM-Click, Eurex, SWX, Fidessa EMMA, ...)
Recent Experience
May 2025 - October 2026
Company: NexVision (https://nexvision.fr/), Marseille, France
Position title: Senior Software Engineer, Independent Consultant through Dementyev EURL (Full-time, On-site)
Projects, products: Proreus — embedded real-time detection system (visible and thermal-infrared cameras, NVIDIA Jetson Orin modules) that helps a vessel's crew avoid collisions with large marine mammals and other obstacles. Related product: eMAS, the NexVision onboard cetacean-detection system.
Role: Principal developer and release maintainer of the system's operator dashboard (Proreus GUI), from prototype to production. Owned the GUI architecture, C++ back end, browser dashboard, sensor-stack simulator, automated testing, technical documentation and release engineering.
Key Responsibilities & Achievements:
- Developed the C++23 service for a Jetson Orin-based Yocto Linux platform, shipped as RPM in 57 tagged releases; implemented Jetson hardware JPEG and cross-platform encoding with GStreamer and fixed defects in the in-house C++ HTTP/WebSocket library.
- Delivered a real-time operator console that turns a 20 Hz fused sensor stream over MQTT into an actionable tactical picture (live camera views, detection and track overlays, a metric radar, crop replay, immediate degraded-sensor feedback), built on quaternion attitude and camera reprojection with lens-distortion correction.
- Carried out the migration from a C++ WebSocket relay to direct MQTT-over-WebSocket delivery in the browser, removing the service's relay layer, ring buffer and custom framing protocol; replaced the C++ test simulator with a deterministic, seeded Python simulator of the whole perception stack, and grew the test base to 1,616 tests per release (cross-browser, stress, sanitizers, Valgrind).
- Resolved a field latency issue under heavy scenes: built load-test suites in one week and rewrote snapshot processing (O(n²) → O(1) track lookup), cutting worst-case settling time from 402 s to 22 s.
- Adapted the repository for AI-agent development (Claude Code, Codex): an explicit agent contract (strict TDD with separate RED/GREEN commits, checks against vacuous tests), coding standards, architecture decision records, deterministic test hooks, and two open-source linters I authored (check_rst, check_formatting).
Tools, languages and SDKs: C++23, Python (pytest, paho-mqtt, Playwright), GCC, Meson, GStreamer, Yocto, NVIDIA Jetson Orin, MQTT (Mosquitto), JavaScript (VanJS, HTML5 Canvas), ASan/UBSan/Valgrind, clang-tidy, ruff, mypy, Sphinx/reStructuredText, Git, GitLab, Claude Code and Codex
March 2023 - September 2024
Company: Fluendo (https://www.fluendo.com/), Barcelona, Spain
Position title: Lead software Engineer (Full-time, Remotely)
Projects, products: Fluendo Codec Pack, GStreamer, Cerbero
Role: Development and support for GStreamer components and Cerbero in a distributed team across Europe in a fully remote environment using GitHub, Slack, Jira, Google services, etc.
Key Responsibilities & Achievements:
- Developed, performed code reviews, refactored, supported, tested, and delivered Fluendo GStreamer plugins.
- Regularly contributed to open-source projects, including GStreamer and Cerbero.
- Facilitated effective communication and knowledge transfer by actively engaging in discussions with developers, providing operational support, and creating comprehensive documentation for developed components.
- Implemented a multi-level verbosity logging system that delivers detailed, step-by-step insights, significantly enhancing troubleshooting and resolution of registration and initialization failures in complex environments.
- Contributed to the company's codec package by developing and documenting an H.265 encoder component for the NVIDIA API, which became the reference design for the new codec development process.
- I participated in the transition from legacy CI (Jenkins) to an integrated GitHub Actions workflow.
Tools, languages and SDKs: C/C++, Python, GStreamer, Cerbero, Meson, Docker, GitHub Actions, Slack, Jira
March 2020 - January 2023
Company: Kalyzée (https://www.kalyzee.com/), Marseille, France
Position title: Embedded software developer (Full-time, Hybrid)
Projects, products: Kast Revolt - The camera with VOD and Live functionality and remote control
Role: Development and support for camera software.
Key Responsibilities & Achievements:
- Development, testing and delivery of camera software updates.
- Improved camera reliability by addressing critical memory leaks and optimizing firmware, resulting in continuous, stable operation, eliminating the previous requirement for reboots every 2-3 days.
- Implemented a clear versioning scheme for releases, embedding comprehensive version information within the camera's metadata for improved traceability.
- Remotely analyzed and upgraded client camera firmware via VPN.
- Optimized OpenGL code to improve FPS and recording/streaming quality for HD local recordings and RTMP live streams to platforms like YouTube.
- Developed a reliable reproduction method to identify critical, non-obvious hardware defects, preventing potential client-side failures and providing conclusive evidence to the manufacturer.
Tools, languages and SDKs: C/C++, Java, Python, AOSP & Android NDK, GStreamer, Cerbero, Docker, EGL / OpenGL ES
February 2018 - March 2020
Company: SuperSonic Imagine (https://www.supersonicimagine.fr/), Aix-en-Provence, France
Position title: Software Developer (Full-time, Hybrid)
Projects, products: Software update system based on Debian. Components of medical ultrasound software.
Role: Developer of components for medical ultrasound software.
Key Responsibilities & Achievements:
- Maintenance of software update system.
- Designing and implementing components for medical ultrasound software.
- Enhanced the user experience for system updates by introducing a configurable notification layer that integrates with native desktop notifications.
- Improved the system’s startup and initialization process by a factor of two by consolidating complex inter-process communications — previously involving a large C++ application, Python scripts, shell scripts, and other processes — into a self-contained C++ procedure within the main application. This optimization eliminated code duplication through a structured class hierarchy, enforced robust error handling via return status checks with logging, and involved close collaboration with hardware engineers to validate hardware initialization, resulting in a smaller footprint, fewer context switches, and significant performance gains.
- Created a Python wrapper using SWIG tool to automate operations with the ultrasound system.
- Automated generation of comprehensive documentation for the internal state machine using Sphinx tool, including graphs, categories, cross-references, and summaries.
Tools, languages and SDKs: C/C++, Python, SWIG, PHP, Linux, apt/dpkg, GNU Toolhcain (GCC, Make, Autotools, GDB), Gitlab, Jira
September 2014 - January 2018
Company: NexVision (https://nexvision.fr/), Marseille, France
Position title: Software Developer (Full-time, On-site)
Projects, products: Cabin video monitoring system for Airbus A380.
Role: Developer of components for the embedded camera.
Responsibilities: Maintenance of linux driver set for TI DM365 Front End. Designing and implementing GStreamer components.
Tools, languages and SDKs: C/C++, Linux, GStreamer, LIVE555, Buildroot, GNU Toolhcain (GCC, Make, Autotools, GDB), U-Boot, Redmine, Git, Gerrit
August 2013 - September 2014
Company: Wyplay (https://www.wyplay.com/), Allauch, France
Position title: Software Developer (Full-time, On-site)
Projects, products: IPTV for Belgacom TV STB. Middleware for IPTV under Broadcom BMIPS5000 architecture.
Role: Developer of middleware components for IPTV.
Responsibilities: Implementing new functionality. Fixing bugs. Testing.
Tools, languages and SDKs: C/C++, Python, Linux, Gentoo Portage, GNU Toolhcain (GCC, Make, Autotools, GDB), Redmine, CppUnit, Mercurial
Prior Experience
From 1988 to 2013, I developed extensive experience in software development across various industries and technologies. My journey began with early programming in school, progressing through roles at companies such as Norma-Nefto, Atlant-Inform, and R-Style Software Lab. I further honed my skills at organizations like Inforser, RTComm.RU, and E.Soft, working on diverse projects including content management systems, database applications, and web development.
In the 2000s, I took on more senior roles, notably at Deutsche Bank and Renaissance Capital, where I developed middleware for electronic exchanges and connectivity components in an international environment with teams around the world. My last position before 2014 was at Ashmanov&Partners, where I worked as a Senior Developer on web filtering and content classification projects.
Throughout this period, I consistently expanded my expertise in C/C++, Python, Java, and various database technologies, while adapting to evolving development environments and tools across Windows, Linux, and Unix systems.
June 2010 - July 2013
Company: Ashmanov&Partners (https://www.ashmanov.com/), Moscow, Russia
Position title: Senior Developer.
Projects, products: Web filter. Content classification components. Keywords. URL and IP categorization. Schedule components. Integration into rule-based language. Converting HTML and Shockwave Flash to plain-text.
Role: Developer of components for the Web filter.
Responsibilities: Designing and implementing components and wrappers, writing code and unit-tests, documentation. Profiling and testing.
Tools, languages and SDKs: C/C++, Python, Linux, FreeBSD, GNU Toolhcain (GCC, Make, Autotools, GDB), Trac, CppUnit, SVN, CVS, "Semantic mirror"
August 2008 - May 2010
Company: Mail.Ru (http://mail.ru/), Moscow, Russia
Position title: Software Developer.
Projects, products: Distributed File System (meta-server, naming servers, client library, consolidation and snapshot mechanisms), Mail Storage, API to mail storage (client and server network libraries).
Role: Developer of components for the distributed storage, supporter of mail storage and its API.
Responsibilities: Concept development. Implementing code and unit-tests. Testing.
Tools, languages and SDKs: C/C++, Linux, FreeBSD, GNU Toolhcain (GCC, Make, Autotools, GDB), CMake, CppUnit, FUSE, FastCGI, Zookeeper, SVN, CVS
April 2008 - August 2008
Company: Renaissance Capital (http://www.rencap.com/), Moscow, Russia
Position title: Senior Developer.
Projects, products: FIX and Market Connectivity (MICEX, RTS, LSE, FIX, Reuters, UL Bridge).
Role: Responsible for development of connectivity components (markets, clients, feeds) with the usage of different protocols.
Responsibilities: Compose and update the project documentation. Planning, negotiation and keeping record of the project. Elaboration and presentation of proposals. Participate in working meetings.
Tools, languages and SDKs: MS Visual Studio, CMake, C/C++, Java, Tibco RV, UL Bridge
December 2005 - April 2008
Company: Deutsche Bank (http://www.db.com/), Moscow, Russia
Position title: Investment Banking IT-specialist, Associate.
Projects, products: Middleware software which abstracts access to electronic exchanges (SWX, Eurex, SIBE, OM-Click, FIX) and feeds (Reuters), Trade feeds
Role: Developer of existing code base and components, support, developer of modules to new exchanges
Responsibilities: Implementing code, bug fixing, designing new components, support, consulting
Tools, languages and SDKs: C/C++, Java, GCC, SUN Studio, Linux, Solaris, CVS, SourceForge, CppUnit, Doxygen, FIX, XML, ORC
June 2003 - November 2005
Company: Intersoft Lab (http://www.iso.ru/), Moscow, Russia, Contour Components Ltd (http://www.contourcomponents.com/), Moscow, Russia
Position title: Programmer.
Projects, products: VCL components, Python Forms Designer, XML Dataset, OLAP Cube (VCL, ActiveX)
Role: Developer of existing code base and components, support
Responsibilities: Implementing code, bug fixing, designing new components, python wrappers of C/C++ code by SWIG
Tools, languages and SDKs: Borland C/C++ compiler, VCL, Python, Bison, Expat, SWIG, PVCS, CppUnit, Scintilla
January 2001 - May 2003
Company: E.Soft (http://www.e-soft.ru/), Moscow, Russia
Position title: System Programmer, Consultant, Project Leader.
Projects, products: Content management system, Inforser price-list (2nd version), Postman, Resolver, etc.
Role: Consultant on non-standard problems decisions, designer and developer of different kinds of projects
Responsibilities: Learning and testing of new technologies, consulting (languages, tools, technologies), finding decisions on non-standard problems, writing requirements specifications, composing project plans, designing user interfaces, designing database schemes, implementing code in JavaScript, Java, C/C++ and SQL languages
Tools, languages and SDKs: C/C++ compilers (GCC, MSVC), Java 1.1-1.2, JavaScript, HTML, DBMS (MySQL, MS SQL Server), Unix environment (Linux, FreeBSD, SunOS), shell (bash), Internet protocols (HTTP, FTP, SMTP, ...), MS Win32 API, WTL, Posix (threads, sockets, ...)
April 2000 - January 2001
Company: RTComm.RU (http://www.rtcomm.ru/), Moscow, Russia
Position title: Senior Programmer, Project Leader
Projects, products: Spider, Service Monitor, Preliminary billing, RTF generator, SMS sender
Role: Designer and Developer, Consulting, Support
Responsibilities: Designing and implementing projects, consulting on system programming, support (bug fixing, features adding)
Tools, languages and SDKs: C/C++, Java, Unix shell, DBMS, Web-protocols, Windows, Linux, SunOS
January 2000 - April 2000
Company: DGroup (http://www.dgroup.ru/), Moscow, Russia
Position title: Java Programmer, Consultant
Projects: WWW site Krasota-on-line (http://podbor.krasota.ru/)
Role: designing and implementing java applets, consulting
Responsibilities: design applets and HTML-pages, JavaScript-Applets programming, applets and data structures implementation, consulting
Tools, languages and SDKs: JDK 1.1, Web Browsers, Apache, MySQL, HTML, JavaScript
October 1999 - January 2000
Company: Ulter-West (http://www.uw.ru/), Moscow, Russia
Position title: Programmer
Projects: Ulter-Shop, WWW-site, Postman
Role: developing internet shop Ulter-Shop, support WWW site, consulting
Responsibilities: compose pages in HTML, implement Java GUI components, implement server-side components, consulting
Tools, languages and SDKs: JDK 1.1, JDK 1.2, Inprise JBuilder 3.0, JavaMail 1.1.2 (MIME), XML, DOM, JavaServlets, Apache, PostgreSQL
September 1999 - March 2000
Company: Inforser (http://www.inforser.ru/), Moscow, Russia
Position title: Developer, Consultant
Projects: Inforser's price-list
Role: designing and developing price-list keeping and entering system, consulting
Responsibilities: designing forms and reports, designing database scheme, implementing code, supporting, interoperability (with MySQL and FreeBSD)
Tools, languages and SDKs: MS Access 97, MS Visual Basic, Office components and tools, MySQL, MySQL ODBC driver, telnet
August 1997 - May 1999
Company: R-Style Software Lab (http://www.softlab.ru/), Moscow, Russia
Position title: Programmer, then Senior Programmer, Project Leader
Projects: Document storage, Classifiers.
Role: leading and developing client-server Win32 database applications, using Microsoft RPC and COM, for accounts and office clerks
Responsibilities: design application concepts, designing application database scheme, designing RPC server interfaces, designing client GUI, creating technical documentation and specifications, creating and developing server-side components and libraries
Tools, languages and SDKs: Borland C++ v 5.01, Microsoft RPC, COM, OLE, Win32 API, Visual RSL, RDB Btrieve v.6.15 - Pervasive SQL 7.0, ER-Win 2.5-2.6, MS Office 97 (including Project 98), Visual Source Safe 4/5/6.0, PVCS Tracker 4.0-5.0
May 1996 - May 1997
Company: Atlant-Inform (http://www.atlant-inform.ru/), Moscow, Russia
Position title: Programmer
Projects: IDE Ace, then IDE Ace under Windows
Role: developing IDE Ace
Responsibilities: implementing code, fixing and testing
Tools, languages and SDKs: Borland Turbo Pascal for MS DOS, Delphi, SQL, IDE Ace, Watcom C++, Microsoft Win32 API
1993 - April 1996
Organization: Norma-Nefto, Moscow, Russia
Position title: Programmer
Role: Designing and developing desktop databases
Responsibilities: implementing code, support databases
Tools, languages and SDKs: Assembler x86, BIOS and DOS API, MS MASM 5.0, FoxPro 2.0-2.6 for DOS, MS FoxPro 3.0 for Windows
1988 - 1992
Organization: School, Moscow, Russia
Tools, languages and SDKs: Assembler PDP-11, Basic, Pascal
Hobbies and Interests
Family, Foreign Languages (I speak Russian, English and French), Cultures, Films, Ballroom dance, Humour (Mikhail Zhvanetsky, Not Only... But Also, Les Inconnus, ...), My LiveJournal Blog, Wikipedia (reading, correcting) and SourceForge.