The Personal website of Paul J Abernathy

Solve hard problems.  Make the world a better place through quality software.


Professionally, I focus on software development and am expanding that to include data science (sorry for the buzzword).

Non professionally, I have been known to offer pickup truck lending services free of charge.

Software development

Computers are increasingly indispensable in business, healthcare, etc., and I am one of those who (sort of) know how to tell them what to do.  I like to write code and I think I am fairly decent at it, even though there is always more to learn.  My strongest language is Java, but I can also use R and SQL.  I have also used HTML, XML, C++ and JavaScript in the past.

When writing code, my approach can vary based on the setting.  Sometimes it it best to write "quick and dirty" code to see if something works.  But usually my approach is much more methodical - truly understand the problem that you are trying to solve, think of an algorithm, sketch it out on paper if needed (I tend to like the ones that require some pencil and paper), and then start coding.

As I am writing code, I (mostly) adhere to the Test Driven Development approach.  Writing good unit tests takes time and is annoying in the short run, but it helps improve code quality and I suspect that in the long run it makes coding faster by reducing the time you spend debugging.

Of course, I also tend to follow the standard object oriented principles of cohesive classes, less coupling, functions that do one thing, etc.  This makes code easier to modify, easier to reuse, easier to test, and usually easier to understand.

My favorite book for software development is Code Complete 2nd Edition by Steve McConnell.  The Pragmatic Programmer and Design Patterns are on by bookshelf as well, of course.

I have certifications in Java and SQL from Oracle, if certifications mean anything to you.

My github profile has only a small sampling of code I have written, but at least it may give you some indication of my coding style.

Data Science

I know, "Big Data" is becoming one of those mind numbing buzzwords, and "Data Science" is a little of a buzzword as well.  I might as well talk about leveraging an industry leading cloud computing platform to delivery big data solutions using an SAAS model that will drive synergistic relationship with our clients, or something like that.  But beyond all the hype, use of massive data sets will likely change society in ways similar to the way the internet has changed it, both in good ways and some less good ways.
There have been a number of times that I thought I should have been a scientist.  But I do like computer programming so it is OK.  I like science, and I like learning things.  So when I started tinkering with data a couple of years ago, first with a web analytics project for work, and found that you can use computer programming to learn things...that was interesting.

I do not know as much about data science as I do about programming, and am still not an expert in Hadoop, Pig and MongoDB.  But I have done a couple of small projects for work involving data, have done a project or two, and have been taking classes on to learn about data and statistics.  I am currently working through the Coursera Data Science Specialization on Coursera.

So while I do not (yet) claim to have a grasp of Hadoop, Map/Reduce, Pig, Hive, Python, or whatever other big data product is named after an animal, I can say I have enough understanding of Java, R, SQL and basic statistics to get started, as well as an ability to learn and a willingness to ask questions.
My github page has links to R code for Coursera assignments, hobbyist R code, Java code I have been working on to help with data analysis and basic stats, and a Naive Bayes Classifier written in Java.