James Sumners

A software engineer with a background in Linux server administration.

§ Curriculum Vitae: html, pdf, rtf, docx, md


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 like the flexibility of the prototypal inheritance and first class functions.

In my free time I enjoy working on Open Source Software. I am a major contributor to several signifiant OSS projects in the Node.js community. I derive pleasure out of building things that people want to use.

Outside of software development, my various hobbies include bicycling, music production, and video games.

Ideal Position

I am currently working at my dream job. I am a backend engineer, focusing on Node.js, working with project managers, designers, and frontend engineers to build products that solve problems.

Open Source Projects

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

JSCAS [github] ~ [JavaScript]

JSCAS is an implementation of Apereo's Central Authentication Service (CAS) written in JavaScript.

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 [github] ~ [Java 8]

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 [github] ~ [JavaScript]

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 [github] ~ [PL/SQL]

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.

Thymeleaf Layout Interceptor [github] ~ [Java 7]

Thymeleaf Layout Interceptor is a Spring request interceptor that facilitates using a Thymeleaf template as a layout definition.

Tomcat RPM [github] ~ [Bash] [RPM Spec]

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:

$ ./build.sh

WinLN [github] ~ [C#]

WinLN is Windows tool I wrote to manage symbolic links. It makes creating symbolic links in Windows very easy, and it retains a record of each symbolic link created with the tool.

This tool is written in C# .NET using the Windows Forms library.