Mike’s Place

Résumé

This is not your typical résumé. First things first: this page is the only source for this document. Remember that a résumé is a document and that documents are subject to copyright. There is no PDF version of this résumé. Just this one right here, at https://mike.trausch.us/resume/.

This page is just the tip of the iceberg—a broad overview. There are (or rather, will be; this page is still a work-in-progress) links throughout to additional details, portfolios, examples, and references. By the time you’re finished reading through this, you should know pretty well whether or not I can do the work you need done.

Overview

Systems and application programmer capable of designing, coding, analyzing, and modifying both linear and asynchronous systems. Fluent in low-level concepts such as interrupt handing on “bare metal” systems, highly fluent in POSIX® (in particular Linux® and FreeBSD®), versatile with most POSIX®/UNIX® systems both in terms of usage and programming. Capable of interacting with both documented and undocumented binary file formats, such as for data recovery or migration purposes.

Statistics

This is a set of statistics about myself, as pertains to work.

General

Metric Value
10-key data entry 25 keys/sec
Touch typing 100 WPM with 99.5% accuracy

Programming Languages

These languages are in alphabetic order.

Language Experience
Assembly
6502
Can read with reference
Can write with reference
Assembly
x86, x86-64
Can read with reference
Can write when necessary
Assembly
ARM
Can read with reference
Can write when necessary
BASIC (Dartmouth) More than 25 years
BASIC (GW/QB/PDS/VB1) More than 25 years
BASIC (VB3/4/5/6) More than 15 years
BASIC (VB.NET) More than 5 years
C More than 25 years
K&R, C89, C99, C11, and C19 and GNU extensions
C++ More than 15 years
C++11, C++14 and GNU extensions
C# More than 10 years
.NET 2/3/4
GNU bash More than 20 years
Versions 2–5
Go Less than one year
HTML More than 20 years
3.2/4/5
Java Approximately 5 years
1.6/​1.7/​1.8
JavaScript More than 20 years
Pre-standard through ECMAScript 6
Lua More than 10 years
Lua 5.2 and earlier
Pascal More than 5 years
Borland
Object Pascal More than 10 years
FPC, Lazarus
PHP More than 15 years
Versions 4–7
POSIX sh More than 20 years
POSIX-1 2001
Python 2 Approximately 20 years
(Since initial release)
Python 3 More than 10 years
(Since initial release)
Rust Less than one year
SQL More than 20 years
Several dialects incl. MySQL/PostgreSQL/SQLite
XHTML Approximately 5 years
1.0/1.1 (Strict and Transitional)

Concepts & Environments

Again, in alphabetic order.

Name Description Experience
2D Graphics Writing 2D raster and vector graphics code. More than 10 years
3D Graphics Writing 3D vector graphics code (shaders, etc.) Virtually none
3D Modeling Creating and manipulating 3D models in e.g., Blender Less than 6 months
Artificial Intelligence The study and employment of machine learning. Less than 6 months
Asynchronous Programming Writing code that is reentrant and event-driven. More than 20 years
Audio Writing code to capture, play, process, and/or synthesize audio. More than 5 years
Bare-metal Writing code intended to execute without, or as, the operating system. More than 20 years
BSD Sockets Writing network code which uses the BSD sockets API (and modern extensions). Includes UNIX, IPv4, and IPv6 as well as TCP and UDP. More than 20 years
Business Objects Records and record processing, including batch More than 15 years
Cryptocurrency Bitcoin, Etherum, Monero, etc. More than 10 years
Database (Flat) Including CSV, DBF More than 25 years
Database (KVP) Including dbm More than 25 years
Database (RDBMS) Including SQL More than 20 years
Domain Specific Languages Code implementing interpreters or compilers for a language suited for a single purpose. More than 10 years
DSP Writing code which takes a digital signal as input, analyzes it, and returns some result (such as “here are the frequencies present”). Less than 6 months
Finite State Machines Machines which have fixed inputs, transitions, and outputs. More than 15 years
High-availability Writing code intended to function in the face of multiple failures More than 10 years
High-security Writing code intended for high-security environments, where compromise would lead to unacceptable property or life loss More than 10 years
Legacy UNIX® Legacy tools (lpr, join, cut, etc.) More than 25 years
MS-DOS® Writing code intended to execute under MS-DOS® and compatible operating systems, both in real and protected modes. Includes writing device drivers. More than 20 years
Neural Networks Systems of artificial “neurons” which are trained to respond to particular types of input Less than one year
POSIX®/UNIX® Writing code intended to run on POSIX®-compliant operating systems, including UNIX® systems. Includes non-certified workalike systems, including Linux® and FreeBSD®. More than 20 years
Windows NT® Writing code intended to execute under Windows NT® and compatible (and later. Approximately 2 years

Frameworks, Libraries, & Systems

Once more, in alphabetic order.

Name Description Experience
bzip2 Compression I/O library More than 10 years
Cairo 2D vector graphics library (on-screen and PDF) More than 10 years
clang C and C++ compilers, part of the LLVM project More than 5 years
FreeDOS A free-software clone of MS-DOS Since release
GCC GNU compiler suite (includes C, C++, and more) More than 25 years
GLib An object-oriented portability framework for C programs. More than 20 years
libalsa Linux® native sound API (and what a pain!) More than 20 years
libc Standard C library (DJGPP, glibc, MUSL, MSVCRT, and newlib) More than 20 years
libinput Low-level input device handling library for Linux® More than 5 years
Linux Since before Linux 2.0 More than 25 years
OpenSSL SSL/TLS I/O library More than 10 years
OpenWatcom 16-/32-bit DOS, OS/2, and Microsoft Windows compiler More than 5 years
PulseAudio Sound server and API Since release
QB64 Modern QuickBASIC-compatible compiler (with extensions) More than 10 years
ReactOS Open-source replacement for Microsoft Windows More than 10 years
Samba 2 & 3 NT4 domain client/server for POSIX® systems Since release
Samba 4 Active Directory implementation for POSIX® systems Since release
systemd Modern system management suite Since release
WINE Executes MS-DOS and 16-/32-/64-bit Windows programs More than 20 years
zlib Compression I/O library More than 20 years

Protocols

This is a list of protocols with which I am familiar enough to reason about. As a point of note, I can generally learn any new protocol in as long as it takes to read the RFC document(s) which define it, plus a little time to study or experiment with it (depending on whether it is a new or existing protocol).

Name Description
CGI Common Gateway Interface, a protocol for interfacing between Web servers and the standard I/O of a program which provides a service.
DHCP Dynamic Host Configuration Protocol (both v4 and v6).
DNS The Domain Name System protocol, which currently powers name resolution for most of the Internet.
FTP File Transfer Protocol. An older method for moving data around the Internet; superceded by more modern methods.
IP Both IPv4 and IPv6, including routing protocols and multicast.
HTTP Hypertext Transfer Protocol, used for most of the traffic carried by the Web.
IMAPv4 An access protocol for electronic mail.
IRC Internet Relay Chat, an older protocol used for communications on the Internet.
MIDI Protocol used for the automated control of instruments, including synthesizers.
NNTP The protocol powering Usenet (“netnews”).
POP3 The Post Office Protocol (v3). A formerly popular method for accessing electronic mail messages, largely replaced by IMAPv4 and Web mail access.
SCGI A more modern replacement for CGI, using netstring. Limited to a single request per connection.
SIP A protocol most commonly used for VoIP call control functions, although it has other uses as well.
SMTP The protocol used to relay an electronic mail message to its destination.
SSH2 Secure session protocol providing a multiplexed connection to a host system, allows for the management of remote processes and terminals as well as remote filesystem operations.
TCP The protocol which provides a virtual digital bidirectional communications channel for most network applications.
Telnet An older protocol for remote terminal sessions over the network. Generally superceded by SSH.
TLS Transport Layer Security (also incorrectly known as SSL). Provides encryption and authentication services.

File Formats

To be completely honest, I know more file formats than I can list here, and I have likely forgotten even more than I know right now. File formats are rather easy for me to grasp and work with, even when they try to do clever things like use variable-length integer encodings (the Bitcoin blockchain and compatibles) or have broken or missing indexes.

This also makes data recovery easier for me, as I can easily work around what’s missing once I understand the context around it.