About Me#
I’ve always had a strong interest in computers since my early years when Tron and War Games were popular movies. I had a Tandy, an Apple II+, and Atari 800 when I was younger but didn’t really start picking it up as a skill until a couple years after Linux first hit the scene and the early Pentium class systems started getting popular. That’s when I downloaded Slackware on 8 floppies and installed it as a dual boot on my mom’s PC. Taught myself a bunch just using the Internet and the local library. Eventually I decided that I wouldn’t get in with anyone without a degree so I went and got one. Graduated with highest honors and all that. I’ve been doing this ever since, primarily as an employee but more recently again as a freelance developer with some ambitions for building something more serious.
I also play guitar, do martial arts (but mostly just internal/yoga stuff lately), and like to camp–see the stars before they’re all gone. Mostly I just really like computers though–just really cool toys I like to do all kinds of stuff with.
Skill Highlights#
- back-end
- engineering and design
- C++
- Python
- regulated industries
I’m strongest in back-end development using technologies like C++ to talk directly to the hardware in order to make it do something specific. I can also develop interfaces that are functional and hopefully intuitive. Graphical design though is a different skill and one I don’t really have much of.
I have strong engineering skills that I’m able to apply both to new designs and to the maintenence of old designs and/or systems without clear architecture. I’m a proponent of patern oriented design, agile methodologies, and automated testing/deployment. These things have helped me deliver high quality results that meet expectations and needs consistently.
I have very strong skills in the C++ language and have been using it the longest. I started out with C++03 and lived through the standardization of C++11 and up. Most of my more recent work has been in the C++14/17 era standards but I have also familiarized myself with more recent standards and made use of C++20 coroutines and concepts. I’ve used most of the commonly used tools for C++ development on Linux and Windows as well as several not common ones.
Python is my next strongest language, especially when it comes to using it to communicate with, bind with, or extend a native program or library written in C++. I learned coroutines first in Python and then translated that knowledge to C++ using the ASIO library. With Python I’m also able to add Jupyter and pytest to my arsenal of tools that can be used in C++ projects for documentation and testing. I prefer a strongly typed language for more architected components but Python makes a really great prototyping and scriping platform that can greatly simplify things so they’re more reachable to a more general audience.
Finally, I have several years of experience working in regulated industries. I can work from both extremes of the continuum: quick prototyping and just getting it done; hardened processes with change management, hazard analysis, and vetting of SOUP. Some of the software I’ve helped write has been through certification processes to receive things like a CE mark.
Secondary Skills#
- Linux scripting and automation.
- Emebedded development
As a Linux user and developer I also have to know other tools such as Bash or Docker. Working with automated build and integration servers of various kinds has required me to acquire some skills associated with system management and DevOps–previous experience in network/system administration has also aided me here. I can make use of orchestration and IaC setups to build simple systems for small deployments and/or build and test.
Curiosity and projects of my own have led me to pick up some skills working with bare metal embedded programming. I’ve worked with the standard SOC setups like Raspberry Pi with Linux and also ARM and AVR microcontrollers like NRF52 and Atmega328 using unhosted C++ and published C platform libraries (with and without arduino support and tools).
Skill Development#
I’m constantly trying to develop my skills further. I’m currently in the process of research and development that is requiring me to develop skills in:
- rust development on android
- immutable system building and configuration
- intrusion detection and security
- identity protection