CV - Maxim Menshikov

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 and MIPS architectures, recognized expertise in security research.
  • Proficiency in C, C++, C#, Assembler, VB.NET, Python. Knowledge of Java, Scala, JavaScript, TeX.
  • Well aware of toolchains comprising compilers, analyzers, debuggers and standard libraries.
  • 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
PhD student
Computer Science
2016-2018 Saint Petersburg State University
Master of Science
Computer Science / Fundamental Informatics and Information Technologies
GPA: 4.91
2012-2016 Saint Petersburg State University
Bachelor of Science
Fundamental Informatics and Information Technologies
GPA: 4.74

Work experience

2020-present Interpretica
Chief Executive Officer
Lead developer 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 Equid - a static analysis framework
  · Architected a complete static analysis framework from scratch.
· Researched methods and methodology.
· Implemented parsers for C/C++ 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 Equid - 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

2021 Review of Static Analyzer Service Models
2021 Systematization of abstractions for unified programming language and environment support in static code analyzers
2020 Static analyzer debugging and quality assurance approaches
2020 Midair: An Intermediate Representation for Multi-purpose Program Analysis
2020 Effective translation of directed acyclic graphs to intermediate representation
2019 Towards a Resident Static Analysis
2019 Equid – A Static Analysis Framework for Industrial Applications
2019 Windows Phone 7 full unlock architecture
2019 Static analysis of RuC programs
2019 An approach to storing program semantics in static program analysis
2018 Scalable semantic virtual machine framework for language-agnostic static analysis
2018 Design and testing of LXC-based virtualization system for resource-constrained MIPS devices
2017 Applying MapReduce to static analysis
2017 5W+ 1H Static Analysis Report Quality Measure
2016 Function context detection in the program source code

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

Awards/Certificates

2020-2021 Annual stipend for PhD students of priority directions of economical development
Russia
2019-2020 Annual stipend for PhD students of priority directions of economical development
Russia
2018 Databases course
Saint Petersburg State University
2018 Quantum Computing course
Saint Petersburg State University
2018 Winner of Petropolitan Science (Re)Search student competition in Computational Technologies
Saint Petersburg State University
2017 PC Architecture course
Saint Petersburg State University
2017 Winner of Petropolitan Science (Re)Search student competition in Computational Technologies
Saint Petersburg State University
2017 Cambridge Advanced English (CAE) C1
Cambridge English
2016-2018 Stipend for mathematicians-researchers for research excellence
BIOCAD
2011 Annual award on 4PDA forum in the nomination “Best Author (Windows Phone 7)”
4PDA
2009 Winner of Sony Ericsson competition on making X-Panels for Sony Ericsson XPERIA X1
Mobile-Review.com