Skip to main content

Programming

I have been programming since the age of 8, starting with teaching myself the C language. Since then, I have learned many other languages, and have used them in numerous projects. I primarily use Linux systems for my day-to-day work if possible, however I have developed on Windows and OSX as well. I am an open source developer and contributor.

I don't pigeon-hole myself into being a "$LANG Developer" or "$FRAMEWORK Developer", I consider myself a software developer and computer scientist, and I am able to pick up new languages and frameworks very quickly (including being able to understand them enough to efficiently debug). That being said, I have used frequently and am fluent with:

  • C/C++ (C11, C++17 and much of C++20)
  • Rust
  • C# (.NET 4.5, WPF)
  • Haskell
  • JavaScript (and TypeScript)
  • PHP/HTML/CSS
  • Python
  • Java
  • SQL
  • Shell scripting
  • Makefile scripting
  • IA32 and AVR Assembly
  • Objective-C

I have also had varying amounts of experience with:

  • Perl
  • Lua
  • MATLAB/Octave
  • Lisp/Scheme (Racket and R5RS, primarily)
  • Bison and Flex
  • Smalltalk (mainly Squeak)
  • SML
  • Zig

I am familiar with the following software/frameworks:

  • Git and Subversion version control
  • GNU make
  • CMake
  • GNU m4
  • GNU bison/yacc and flex/lex
  • Apache HTTP Server
  • Nginx
  • Wireshark
  • JIRA issue and project tracking, and other Atlassian products
  • GitLab CI/CD
  • JFrog Artifactory
  • GNURadio
  • GDB/LLDB
  • Linux perf
  • React (and React Native)
  • Vue
  • Angular 2

And finally, I have experience targetting (both natively and through cross-compilation) the following platforms:

  • GNU/Linux
  • Windows 2000 - Windows 10
  • Android
  • Arduino
  • Atmel Microprocessors
  • Mac (OSX)
  • iPad
  • ARMv7 (Freescale) and ARM64
  • Plan9