Introduction

I am a self-taught programmer and Linux administrator with a B.Sc. in
Mathematics. I started programming around age 13 (~1992) with BASIC,
and have taught myself multiple languages such as: C, C#,
Objective-C, JavaScript, Python and
Java. My current favorite language is JavaScript. I enjoy the
flexibility of the prototypal inheritance and first class functions.

Outside of JavaScript, my most recently heavily used languge is Java.
Dealing with an Oracle database is much easier in Java than other similar
languages, and the programs I write at work require such. I do like the
strong typing of Java, though. It’s nice to have the guarantee that data
will conform to a predefined structure. Still, I tend to have more fun with
a weakly typed language like JavaScript.

I started getting into Linux when I was 17 or 18. I believe I started
with SuSE 5.2, but the first distribution I really spent significant time
with was Debian 2.1 (Slink). By the time Debian 3.0 (Woody) was released,
I was using Linux full-time as my desktop operating system. Nowadays, I
manage many Red Hat Enterprise Linux servers, for which I build barebones
kickstart profiles and package RPMs as necessary. Once deployed, I manage
my servers with Ansible.

Ideal Position

While my most developed skill set is in the Linux administration domain,
my ideal position would be on a small(ish) team doing interesting web
development. I would love to work with a designer, or two, implementing
their ideas in a Node.js environment. If possible, I'd like for the
position to include regular, or mostly, telecommute days.

I think it would also be fun to work on phone applications.
Specifically, iOS applications. I’d love to get back into Objective-C or
pick up the Swift language.

However, I understand that ideals are few and far between. So I'm not
holding out for this exact position. I am open to a variety of other
positions.

Open Source Projects

Listed here are a few highlights of open source projects I have created,
or contributed to, in my free time:

I created this project because I need to run a CAS environment, but
I find the reference implementation cumbersome. The goal with this
project is to make it as easy to use and extend as possible, while
adhering to the protocol specification.

Crypto Util is library that wraps the native JDK
cryptography functions making them easier to use. It provides
easy to use classes and methods for common scenarios. It also
provides a simple interface for using uncommon algorightms.

Pino is a logging library for Node.js. It was developed
to be a very fast logger so that applications can spend less time
on logging and more time on their actual work.

I was made a maintainer of the project in September of 2016. I came
to Pino because I was annoyed with other loggers in the ecosystem
and was researching whether or not I should write my own. Luckily,
Pino had the exact feature set I was looking for. I liked Pino so
much that I submitted fixes to filed issues, and submitted my own
improvements. These actions are how I earned maintainership.

PL/JSON is a set of Oracle PL types and packages that
provide JSON support to the Oracle PL language.

I was made a maintainer of this project in November of 2014. I
spearheaded moving the project from SourceForge to GitHub, in an
effort to make it more attractive to new contributors, and
reorganized the structure of the project's source files.

Prior to becoming a maintainer, I had contributed patches to
implement JSONP support. I had also monitored the SourceForge
forums and helped others learn the library.

Tomcat RPM is a project that simplifies building a
Tomcat package for
Red Hat Enterprise Linux, and similar distributions.

This is my own fork of work previously started by another
individual. I greatly overhauled the build script to perform the
build within an environment totally maintained by the build
script. I also added in building the Tomcat Native library and
bundling it into the RPM. Finally, I added JSVC to the generated
RPM.

The result of my work on the project means that generating a custom
Tomcat package with all the bells and whistles is as simple as
running: