CV - Maxim Menshikov
Why Maxim for static analysis
A researcher who ships analyzers, not just papers about them.
Static analysis is the thread through my whole career: a PhD track at Saint Petersburg State University, fifteen peer-reviewed papers on analyzer design, intermediate representations, service models and analyzer quality assurance, and four registered software packages including the Equid analyzer and its virtual machine.
The unusual part is that the research turned into production tooling. I built a custom static analyzer for commercial router firmware at OKTET Labs, then founded Interpretica around Visao, a multi-language analysis framework with its own Analysis Server Protocol, IDE integration and a testing ensemble that checks the analyzer itself.
All static analysis projectsWhy Maxim for cybersecurity
Attacker's instincts, engineer's discipline.
I started on the offensive side as a security analyst at viaForensics and spent years before that pulling apart locked-down mobile platforms. That is where the instinct comes from: I know how software actually breaks, not only how the checklist says it should be protected.
On the defensive side I have shipped the security stack of commercial routers end to end: IPsec and OpenVPN, a certificate store, cryptography support, malware detection, seccomp for a legacy kernel and a secure build system for a VPN client. Interpretica combines that with static analysis to find vulnerabilities before release rather than after.
All cybersecurity projectsWhy Maxim for reverse engineering
Undocumented platforms are a specialty, not an obstacle.
More than fifty catalogued projects are reverse engineering work, most of them on platforms with no public documentation at all: Windows Mobile, Windows Phone 7, Sony Ericsson feature phones. Full Unlock, the native Windows Phone 7 API, OSBuilder8, Dynamics ROM and two-way in-call recording on the XPERIA X1 all started from a hex dump and ended as tools used by thousands of people.
The community noticed: best author on the 4PDA forum in 2011 and a winner of the Sony Ericsson X-Panels competition in 2009. Today the same skill goes into binaries, protocols and firmware that clients cannot get sources for.
All reverse engineering projectsWhy Maxim for embedded & os
Comfortable from the bootloader to the management cloud.
I have brought up a MediaTek platform from scratch, implemented DMA in its NAND driver, ported the DWC2 USB driver, refactored a USB host controller driver and fixed Wi-Fi drivers on shipping routers. The same products got OverlayFS, a package manager and container support on MIPS, which I first proved feasible in a dedicated study.
The result is software running on hundreds of thousands of devices, and a habit of understanding the whole system: kernel, userland, build system and the cloud that manages the fleet.
All embedded & os projectsWhy Maxim for testing
Deterministic, multi-device testing for software that is hard to test.
Much of my testing work is for systems that ordinary frameworks cannot reach: a test suite for a reversible C/C++/Java debugger, a Bluetooth emulator and a wristband test suite for wearable firmware, a testing ensemble that validates a static analyzer against known defects, and bflat-ts, the suite behind a C# ahead-of-time compiler used in zero-knowledge proving.
Years inside OKTET Labs, whose Test Environment drives network hardware across many agents at once, shaped how I build this: reproducible runs, configuration tracking with rollback, and results that are evidence rather than a green badge.
All testing projectsWhy Maxim for compilers & dev tools
Compilers, build systems and IDE tooling that reach real hardware.
Recent work is the bflat compiler for zkVM together with .NET builds for riscv32 and riscv64 and the libziskos runtime library, which put C# on RISC-V targets that never had it. Earlier I improved the RuC language, wrote Cast to generate Microchip Studio projects from CMake, and built type-grammar and Builtinizer as analyzer front-end tooling.
Developer experience is part of it: Equid IDE integration, native toolchain detection and build tracing for Visao, and the Evolucao tooling at Interpretica all exist so that analysis fits into the way engineers already work.
All compilers & dev tools projectsWhy Maxim for networking
Router firmware, VPNs and the infrastructure around them.
Thirty-plus projects touch networking, most of them inside commercial router firmware: Wi-Fi driver fixes and a mesh investigation, IPsec and OpenVPN, a custom DynDNS client, backend optimisation of the web interface, and a management cloud with an ACS API for whole fleets of devices.
Beyond routers I built Easy STUN, a WireGuard CLI and corporate infrastructure for two companies, and I work daily with OKTET Labs, whose core business is testing network hardware and drivers.
All networking projects| Website: | https://menshikov.org |
| GitHub: | https://github.com/maximmenshikov |
| Twitter: | https://twitter.com/_ultrashot |
I am a white-hat hacker with strong scientific background, fluent in the complete stack from user applications down to assembly.
Hard skills
- Writing software and drivers for Windows, Linux, Mac, Windows Mobile, Windows Phone.
- Deep knowledge of x86, ARM, RISC-V 64, MIPS architectures, recognized expertise in security and software analysis research.
- Proficiency in Rust, C, C++, C#, Assembler, Python. Knowledge of Java, Scala, JavaScript, TeX.
- Well aware of toolchains comprising compilers, analyzers, debuggers and standard libraries, and even developed some.
- Industrial knowledge of networking, containerization and Linux-based environments.
- Familiarity with DevOps and infrastructure building.
Soft skills
- I can communicate with everyone, including customers, partners and end-users. Proficient in English and Russian.
- Strong leadership and planning skills. Various teams successfully finished projects in time under my leadership.
- Self-confident. I don’t lose my mind in critical situations and keep developing a solution even when nobody believes it will work.
- Self-motivated. Working towards a solution without any need for micromanagement.
Education
| 2018-2022 | Saint Petersburg State University Reseacher, teacher (PhD student) Computer Science GPA: 5.0/5.0 |
| 2016-2018 | Saint Petersburg State University Master of Science Computer Science / Fundamental Informatics and Information Technologies GPA: 4.91/5.0 |
| 2012-2016 | Saint Petersburg State University Bachelor of Science Fundamental Informatics and Information Technologies GPA: 4.74/5.0 |
Work experience
| 2020-present | Interpretica Chief Executive Officer |
| Technical Lead | libziskos for bflat |
| · Implemented ziskos implementation for C# | |
| bflat compiler for zkVM | |
| · Significantly improved pre-existing bflat compiler to support riscv64/zkVMs. | |
| .NET builds for riscv64 (zkVM) | |
| · Made special builds for riscv64/zkVMs. | |
| .NET builds for riscv32 (zkVM) | |
| · Made special builds for riscv32/zkVMs. | |
| ARM64 builds for the VPN client | |
| · Ported the VPN client to ARM64 architecture. | |
| Software Engineer | Secure build system for the VPN client |
| · I implemented a secure build system for the VPN client. | |
| Lead developer | Easy STUN |
| · Created an easy-to-use STUN daemon for Linux. | |
| ACS API RS | |
| · Created ACS API for Rust | |
| Technical Lead | Custom router management cloud |
| · Fully implemented a custom cloud service for managing network routers. | |
| Custom router software development | |
| · Fully implemented a custom router firmware based on OpenWRT. | |
| Lead developer | Custom OpenWRT-based platform |
| · Created a customized OpenWRT-based ROM. | |
| Cloud Management UI for routers | |
| · Created a full-featured cloud management UI for routers | |
| Delta | |
| · Created from scratch | |
| Arvore | |
| · Created from scratch | |
| Go parser for Visao | |
| · Created from scratch | |
| Isabelle | |
| · Created from scratch | |
| Evolucao / Web | |
| · Created the frontend for the Evolucao project. · Designed & coded all the needed pages |
|
| Evolucao | |
| · Created the server for orchestration of static analysis nodes. | |
| Build trace | |
| · Investigated ways to perform tracing of builds. · Implemented build tracing. |
|
| Native toolchain detection | |
| · Investigated ways to perform toolchain detection for various compilers, operating systems and CPUs. · Implemented the detection. · Integrated it to the static analyzer. |
|
| Analysis Server Protocol | |
| · Architected and implemented JSONRPC-based client/server model for interoperating with static analysis. | |
| Administrator | Corporate infrastructure for my company |
| · Set up the complete hardware infrastructure. · Set up DHCP, DNS, Wireguard, NGINX with proxying, Gitea, LDAP, virtual machines, file servers, Jenkins and many more. |
|
| Lead developer | Visao - a static analysis framework |
| · Architected a complete static analysis framework from scratch. · Researched methods and methodology. · Implemented parsers for C/C++/Go languages. · Created own Midair virtual machine and its language. · Developed solving and diagnostics engines. |
|
| 2020-present | Softcom Principal Software Engineer, Team Leader |
| Team leader | Equid IDE integration |
| · Led a team integrating the static analyzer to the Eclipse IDE. | |
| Software architect, Principal software engineer, Team leader | Minimal Message Broker |
| · Architected and coded the core of the message broker. · Helped team integrate it to Wristband Test Suite |
|
| Wristband software | |
| · Architected a software package for the wristband. · Coded a significant part of a package. · Ported many modules from previous generation device. |
|
| Wristband Test Suite | |
| · Architected a test suite for wristband software verification based on Robot Framework. · Coordinated the development of the device-side and host-side modules. |
|
| Software architect, Principal software engineer | Bluetooth emulator |
| · Architected and implemented a tool to benchmark consumer electronics device performance, battery consumption. | |
| Administrator | Corporate infrastructure |
| · Set up the complete hardware infrastructure. · Set up DHCP, DNS, VPN, NGINX with proxying, GitLab, Nexus, virtual machines, file servers, Jenkins and many more. |
|
| Contributor | Improvements in RuC language |
| · Contributed significant refactoring of compiler engine. · Designed contract system. · Added static analysis support. |
|
| 2014-present | OKTET Labs Senior Software Engineer, Team Leader |
| Senior Software Engineer | MediaTek platform bringup |
| · Brought up a new Mediatek platform to a hardware project. · Ported uBoot, kernel; fixed corresponding targets. |
|
| MediaTek NAND driver DMA implementation | |
| · Implemented DMA support in a custom MediaTek NAND driver. | |
| MediaTek SoC driver improvements | |
| · Fixed and reimplemented numerous issues in ratelimit, QoS drivers. · Implemented rate limit, QoS support in router software |
|
| WiFi Mesh investigation | |
| · Found numerous issues in WDS implementation. · Fixed the issues, deployed WiFi Mesh solution. |
|
| Lead Developer, Team Leader | Test Suite for C/C++/Java reversible debugger |
| · Led a team making a test suite for a C/C++/Java reversible debugger. · Architected and coded the biggest part of a test suite. |
|
| Security Analyst | Malware detection |
| · Detected malware in a global project. · Reverse-engineered malware and found attack vectors. · Prepared a solution neutralizing the malware. · Deployed a solution to thousands of devices. |
|
| Senior Software Engineer | SNULL LAN client emulation driver |
| · Prepared a complete driver for emulating LAN clients. | |
| Cryptography support for router software | |
| · Reworked cryptography support. · Fixed entropy sources. · Implemented and debugged hardware cryptography support drivers. |
|
| SECCOMP for legacy kernel | |
| · Backported SECCOMP to older kernel. | |
| Package Manager for router software | |
| · Developed a package manager tightly integrated with the internal management system. | |
| OpenVPN solution for router software | |
| · Added support for these tunnels with partial hardware traffic/cryptography acceleration. | |
| Containerization support for router software | |
| · Implemented a container-based virtualization system for the Internet-Of-Things devices. | |
| OverlayFS support for router software | |
| · Prepared overlayed file system for industrial routers and handled security implications. | |
| Docker MIPS feasibility research | |
| · Investigated feasibility of integrating Docker to MIPS-based system. · Preliminarly ported Docker to MIPS. |
|
| WiFi driver fixes | |
| · Fixed multiple issues in Atheros, Intel (Metalink) and MediaTek WiFi drivers. · Architected and implemented calibration mechanism for these drivers. |
|
| Initial setup wizard interface for router software | |
| · Architected and implemented a new initial setup wizard. | |
| DWC2 USB driver port | |
| · Ported DWC2 driver to a new platform, significantly improving stability and performance. | |
| Custom static analyzer for router software | |
| · Found a place where static analysis could be useful. · Implemented a static analyzer to fix the issue. |
|
| Software Engineer | Refactoring of USB Host Controller Driver |
| · Found and resolved critical issues in USB Host Controller Driver. · Saved multi-million contract by allowing to finish certification. |
|
| IPSec solution for router software | |
| · Added support for these tunnels with partial hardware traffic/cryptography acceleration. | |
| Certificate Store for router software | |
| · Implemented an OpenSSL-based solution for storing, updating and verifying certificates and private keys. · Deployed to hundreds of thousands devices worldwide. |
|
| Web interface backend optimization | |
| · Improved web interface performance by 7 times. | |
| Custom DynDNS client | |
| · Architected and implemented a custom DynDNS client. | |
| 2013-2014 | viaForensics Security Analyst |
| Security Analyst | PolicyVisualizer |
| · Architected and implemented a tool to visualize security policies. · Found several issues in Windows Phone 8 security policies. |
|
| ncsdusb | |
| · Found several issues in Nokia USB implementation. · Prepared a Proof-of-Concept exploting the issue. |
Enthusiastic projects
| 2018-2021 | Analysis Server Protocol |
| 2019 | Visao - a static analysis framework |
| 2014-2016 | Codename Race |
| 2012-2014 | OSBuilder8 |
| 2011-2012 | XAPDeployer |
| 2012 | WPBackup |
| 2011-2013 | Dynamics (WP7) |
| 2011-2012 | Opera Mobile 10 for Windows Phone 7 port |
| 2011 | Opera Mini for Windows Phone 7 port |
| 2010-2011 | Relocation of Z-modules |
| 2010-2013 | Full Unlock |
| 2011 | ImgfsFromDump for OSBuilder |
| 2011-2013 | Native Windows Phone 7 API |
| 2010-2011 | uTask |
| 2010 | Sony Ericsson XPERIA X1 two-way in-call recording |
| 2009-2011 | Dynamics ROM |
| 2009 | WalkmanDisplay |
| 2008 | CoverArt in Standby |
Scientific publications
Patents
| Feb 15, 2021 | Virtual machine for static analysis RU 2021612228 Registered software package |
| Feb 12, 2021 | Equid - a static analyzer for program code RU 2021612141 Registered software package |
| Feb 12, 2021 | Multi-layer program analysis module RU 2021612145 Registered software package |
| Feb 9, 2021 | libasp - a library for client-server communication with static analysis servers RU 2021611950 Registered software package |