My public projects portfolio

A few projects that I completed as part of my academic work, in my spare time or as a part of job interview processes.

Linux kernel module for assessment

The task was to prepare a new character device kernel module that satisfied a list of requirements. There were a few complications embedded into the assignment, such as putting the character file into /proc instead of /dev/, and ensuring that concurrent accesses work properly.

I approached the task with tests-first strategy.

https://github.com/grigory-rechistov/linux-kernel-module-for-assesment

Tool to plot churn-complexity

An adaptation of Michael Feathers’ ideas from this article.

It is built on parsers for a few languages based on Tree-Sitter.

https://github.com/grigory-rechistov/cyclomatic

Simple system interpreter implemented using different interpretation techniques

A group of interpreters for the same stack-based language that I built for illustrations of my article about different interpretation techniques. It includes even a simple just-in-time compiler variant.

https://github.com/grigory-rechistov/interpreters-comparison

CPUID tool

There exists a myriad of tools to dump values of cpuid. x86 architecture’s CPUID layout is being constantly expanded as new features are being added to it. So, none of those public tools stay up-to-date for long enough.

This tool was developed together with Evgeny Yulyugin. It covers Intel 64, Intel Itanium and ARM central processor architectures. It still works fine on x86, but I have no means to test it on Itanium or on ARM these days.

https://github.com/grigory-rechistov/ggg-cpuid

Limited network packet parser

Done as a job interview assessment. It is incomplete with regards to TCP/IP specification, but it was enough to cover the provided input Wireshark traffic dump. In retrospective, I over-engineered this tool to use too many C++ stuff.

https://github.com/grigory-rechistov/pcapparser

Tool to prevent Windows process from working

Do you have a process that you do not want to see messing with your Windows system? You can kill it but it gets constantly resurrected by some other system service? Instead of killing it, why not attach a debugger to it and thus stall it until reboot? https://atakua.org/w/stall-debugger.html

https://github.com/grigory-rechistov/stallattach

JOSM plugin for snapping polygon boundaries to each other

This is a plugin written in Java to load into JOSM GIS-editor for Openstreetmap. It creates a new menu option to unify boundaries of two polygons representing two areas of land, for example, a forest and a lake, by snapping nodes of one to segments of another.

https://github.com/grigory-rechistov/snapnewnodes

A better time utility for Windows that takes into account children times

I wanted to have a Unix’ time utility on Windows, but the existing ones, in particular, Cygwin’s time, only tracked time of a parent process and ignored times of children processes. So I found a way to write my own.

https://github.com/grigory-rechistov/chronos

Linux module to measure latency of VM entry-exit

This is a kernel that programs VMCS on Intel x86 CPUs, enters and exits VMX non-root mode several times and reports latency of the operations. It was used to measure and compare virtualization overhead across multiple generations of Intel CPUs.

It is based on work of vishmohan. Note that in its current state, the module does quite poor job with resource management and it could not be cleanly unloaded without a reboot.

https://github.com/grigory-rechistov/vmlatency

Xed branch with better disassembler syntax

X86 Decoder-Encoder (Xed) is the reference x86 assembler, disassembler and decoder. Its big disadvantage is that syntax of its CLI tools, in particular its assembler, is baroque/obscure. It is incompatible with anything else, including Xed’s own disassembler.

This branch is an attempt to add Bison-based parser frontend for more convenient Intel-style assembler syntax.

https://github.com/grigory-rechistov/xed/tree/asm-syntax-2

Simics-based simulation of CHIP16 computer

This has been a multi-year collaborative development/educational project for MIPT students. We developed a full-platform software simulator for CHIP16 architecture. It was based on Wind River/Intel Simics framework.

https://github.com/grigory-rechistov/ilab-simics

Book on simulation, labs and slides

These are sources for my publications for the aforementioned educational project: simulation handbook, software engineering labs and slides for lectures on the topic.

These documents are in Russian.

https://github.com/grigory-rechistov/simbook

https://github.com/grigory-rechistov/simlab

https://github.com/grigory-rechistov/sim-lectures


Written by Grigory Rechistov in Uncategorized on 04.05.2026. Tags: portfolio, github,


Copyright © 2026 Grigory Rechistov