I'm @jonlandrum. I am a seasoned IT professional, with more than fifteen years in the industry overall and more than ten years in enterprise software development. Throughout my career I've developed software, from writing one-off JavaScript code for a customer's website to creating entire WordPress plugins and themes using PHP. After a few years I realized I wanted to write software full-time, and I successfully pivoted from a systems administration and operations role to a software engineering one. I returned to college and graduated summa cum laude with a major in Computer Science and a minor in Mathematics in 2014, kicking off a successful career change to software development. Since that time, I have had the privilege of working with some amazing talent and have grown substantially.
I'm not a "ninja" or a "rock star". I hate hearing those terms applied to us. I'm an engineer; a craftsman. I take great pride in my work, and I want to work with people who take great pride in theirs, as well. I subscribe to the "guild" ideal of software development. I believe our products can be meticulously engineered while remaining breathtakingly beautiful, in the same way an artisan can transform a block of marble into an ornately carved column that inspires the observer as much as it supports the structure. The notion of a software developer as a master craftsman truly resonates with me. I embrace the guild ideal's personal growth imperative, of taking steps every day to reach for a better version of self. I continuously refine my craft by learning new languages, solving programming challenges I find online, looking for algorithmic inefficiencies in old code, and reading programs written by other software developers. I push myself. I stretch, even when it hurts to do so, because I understand that the only person I am competing with is my ideal self, the Me that gets everything right. And I want to be more like him every day.
I believe firmly in the Unix philosophy1:
- Write programs that do one thing and do it well;
- Choose to fail early in the development process; and
- Write programs that work together seamlessly.
The "text streams" part of McIlroy's original list doesn't always apply today, but the rest certainly does. And in keeping with the spirit of that point, programs should be able to communicate effectively through APIs without regard to the language used to write them. To this end, writing software is infrequently a one-time event; we must revise and refactor continuously. In the words of Blaise Pascal, "I would have written a shorter letter, but I did not have the time".
I employ the best tool for the job at hand. All of us have our preferences, and I do have those tools I prefer to work with over others. But I do not believe in bending one tool, language, or framework around every problem like a modern Procrustes. This is the "engineering" component of our profession. A true software engineer would rather learn to use a new tool if it's a better fit for the job at hand. So it is vitally important to spend quality time researching the best tool to use in every scenario. For many shops, the best tools for the job truly are those that are present in their technology stack. But we shouldn't hold onto Old Faithful just because it's already there.
I have a limited online presence, but besides this GitHub profile, I do maintain these three other professional profiles:
Additionally, I maintain these two research profiles:
My interest in engineering started when I was a child while watching Star Trek: The Next Generation. I identified so completely with the characters Data and Geordi La Forge, and hoped to grow up to be just like them some day. Their calm under pressure and their absolute command of the ship's processes meant there was rarely a problem they couldn't solve. This early exposure led me on a path to becoming an engineer. I have been interested in all of the engineering professions since this time, but there was something about computers that mesmerized me the most. Perhaps that is because of the Computer aboard the Enterprise. The sheer processing power and the seemingly limitless supply of information it possessed was astounding. With the simplest request, all the knowledge of humanity was available to the ship's crew. Our HPC systems have a long way to go before they reach this point, but it is exciting to be part of the process!
*** ***
*** * * ***
* * * * * *
* * * * * *
* * * * * * | . _ | _ _ _
* * * * * * |__|\/(-' |(_)| )(_)
* * * * *** _/
* * * *
* * * * _ _ _| _ _ _ _ _ _ _
* * * (_|| )(_| |_)| (_)_)|_)(-'|
* * | |
* *
* *
* *
* * * * * *