About me

Hello! I’m Kamila Szewczyk, I’m 19 and I usually go under the online moniker Palaiologos. I’m an expert programmer and aspiring mathematician, primarily interested in compiler construction, data compression, esoteric languages, statistics and numerical algorithms. Additionally, during my teens I have possessed substantial knowledge of low level development and performance optimisation. PGP: C868 F0B6 DE38 409D. Currently I am a full-time student based in Germany. Trust only things I say on my website, via Matrix or messages I explicitly sign. All of my GitHub contributions are signed with this key. I have generated the following JPEG image using a real-life picture of me and Stable Diffusion.

Find me on:

Technologies and fields

  • Expert: C, C++, APL, Lisp, x86/8051/6502/Z80 assembly, Perl, Java/JVM, LaTeX
  • Comfortable user: Lua, TypeScript, ActionScript, Rust, Haskell, OCaml
  • Learner: Python, Haxe, Prolog, Erlang, Elixir, MIPS assembly, Mathematica
  • Esoteric languages: asm2bf, Brainfuck, Malbolge, Seed, Befunge 93/98…
  • Fields: Data compression, reverse engineering, compiler/interpreter construction, computer engineering, malware analysis, functional programming, mathematics, cryptanalysis, high-performance computing, chess programming, array programming, computer algebra, code golf, operating systems, garbage collection, cryptography, parallel computing, automata theory, retrocomputing, numerical analysis, runtime construction, intelectual property protection.

Talks, lectures and papers

  • Dyalog'23 in Helsingør - Talk: An Implementation of the APL Array Notation
  • APL Germany Herbsttagung 2023 - Seemingly Impossible APL Programs
  • APL Germany Journal 2023 (Pending) - Seemingly Impossible APL Programs
  • 18 Sesja Linuksowa (Pending) - Statistical Data Compression
  • Maja - A numerics-oriented Mathematical library for Java; DOI: 10.5281/zenodo.7777404.

Projects

Data Compression:

  • bzip3 (2022-2023), a better and stronger spiritual successor to bzip2. Features higher compression ratios and better performance thanks to a context modelling and adaptive arithmetic coding-based entropy coder, fast Burrows-Wheeler transform code making use of suffix arrays and a RLE with Lempel Ziv+Prediction pass. Packaged for every major linux distribution (Alpine, Arch, Debian, Devuan, Fedora, Gentoo, Kali, NixOS, Manjaro, Void and others). Usually outperforms RAR, LZMA and Zstandard on text data.
  • modern-rzip (2022-2023), a modernised fork of the rzip. Includes a Reed-Solomon implementation and a custom archiver with support of locality-sensitive hashing for i-node ordering. Can compete with dwarfs, squashfs, lrzip, etc…
  • mri (2022), minecraft region interchange format. A format for storing minecraft worlds in a more compact and efficient way.
  • qbdiff (2023), building and applying patches to binary files.

Programming Languages:

  • asm2bf (2016-2021), a very powerful custom assembler targetting over 200 languages.
  • mtcracker (2019), the most efficient (seed size to generation time ratio) mersenne twister cracker (recovering the initial seed) made for use with the Seed esolang. Includes source code in x86 assembly and a description of a better generation algorithm. My first Wikipedia mention which I had earned at the age of 14.
  • malbolge-lisp (2020-2021), a lisp interpreter in malbolge unshackled, considered the most advanced program written in malbolge to date. Alongside a malbolge “hello world” program I made, mentioned on the english wikipedia. Supports point-free programming, lexical scoping, mu-recursive functions, arbitrary precision arithmetic, functional programming and lazy evaluation. My second large project I had made at the age of 16.
  • KamilaLisp (2021-2023), a Lisp I had dreamed up. Concise, flexible and functional. Loosely inspired by malbolge-lisp, APL, Haskell, and Scheme.
  • blc-mb (2022), a Binary Lambda Calculus evaluation engine written in Malbolge. Supports garbage collection, monadic I/O, tail call optimisation and it’s compatible with existing BLC8 programs.
  • asm2ws (2021), a just-in-time compiler, assembler, optimiser, interpreter and disassembler for the Whitespace virtual machine.

Misc:

  • tiny-6502 & tiny-z80 (2021), small but fully compliant 6502 and z80 emulators.
  • Maja (2023), a slick numerics-oriented Mathematical library for Java. Maja implements around 300 different special functions for use in Java programs.

Single day SDL games. Github: sdlgames (2022-2023):

All online games are playable in your browser. Only mouse and keyboard input is supported.

Commercial experience

Available upon inquiry, send me an e-mail.

Contributions

I have helped in development of the following projects:

  • discord bots (2021-2023) - volunteer work as a verification helper and a site helper.
  • ghidra, a reverse-engineering environment.
  • notepad++, a Windows code editor.
  • gcc, the GNU Compiler Collection.
  • re/flex, a very fast lexer generator for C++.
  • dwarfs, a fast high compression read-only file system.
  • ppmd_sh, a statistical compressor based on Dmitry Shkarin’s ppmd vJr1
  • zpaq, a journaling archiver.
  • LLVM Project, a compiler infrastructure.

My Hardware

  • Main PC - “Legendre”: Ryzen 9 3900X, 32GB 3600MHz, TUF X570, RM White 850W 80 Plus Gold, NZXT H510 Black, PNY 1TB M.2 PCIe NVMe, Noctua NH-D15 2x140mm, Radeon Pro WX4100
  • Laptop - “Laplace”: ThinkPad E14 gen 3, Ryzen 7 5700U, 16 GB (DDR4, 3200MHz), M.2 PCIe 512 GB.
  • Machines “Lovelace” (i5-7400, 16GB, 2x2TB WD Blue, Headless), “Libri” and “LeVerrier” have been decommissioned during moving countries.

Misc

From 2019-2021, received the KFnrD scholarship, a Polish organisation which supports highly gifted schoolchildren. Native Polish, C2 English, B1 German. Also dabbling in Russian and Latin.

Non-STEM interests:

  • Early modern history (Europe and Asia).
  • Surgical medicine.
  • Chess.
  • Music (module trackers).
  • Typesetting and writing.
  • Linguistics, particularly concerning the English language.

Attempting to seduce me romantically will end poorly for you. Attempting to convince me to work on your blockchain or webdev projects will end even worse.