Welcome to my resume page. This page is for perspective employers, recruiters, and curious bystanders. Within this page you will find all of the most important details about why you should want to hire the most awesome Software Engineer this side of the Mississippi… me!
First, off, you probably want to take a look at my resume. It’s chock full of technology keywords that drive the HR/Recruiter types mad with glee. I update this resume about once a quarter (every three months) or so. You can choose one of three delightful formats that works best for your particular corporate needs…
But more important than a resume is getting to know me and really understanding why you should hire me. So here goes…
THE THREE SENTENCE SUMMARY
I am a thirty seven (37) plus year veteran of software engineering who specializes in full stack development from database to the interface, but with a strong focus in JavaScript/Typescript. On a daily basis I take a given idea or feature from brainstorming to design to development to deployment using the most appropriate technology for the need. Give me a crazy, half-baked idea and I’ll have a design for you in a day, a rough mockup for you in a week, and a full system built in a month.
MORE ABOUT ME
I love to program. I have been writing code since I was twelve years old and getting paid for it since I was fifteen. A day in which I do not write code is a bad day for me. This means I have over thirty seven (37) years of real world programming experience under my belt which I bring to bear on my every day work. Additionally, I am crazy passionate about the technology I work with and actively strive to keep myself informed about the latest trends, changes, and next big thing in my field. I participate in local and national communities like Github, JSConf, Meetup, Reddit, and Twitter reading all the latest articles and happily offering advice and commentary to anyone whom wants to listen.
WHAT DO I KNOW
JavaScript: I have been using JavaScript on an almost daily basis since 2005 and while I am no Brendan Eich or Douglass Crockford, I am highly familiar with the ins and outs of this amazingly powerful language. I am extremely comfortable in NodeJS, TypeScript, JavaScript, CSS, HTML, a d all the bells and whistles that accompany those technologies. I have used libraries like Ember, Angular, Express, Pino, etc. But even more importantly, I have extensively written my own versions of these libraries, from web frameworks (talk to me about Web Components please!) to Web Servers, to Logging and Configuration, to CLI tooling. This passion to delve deep into the inner workings of these systems means I am extremely versed in how like systems work and thus quite good at picking up a new library and understanding it’s syntax and structure, it’s strengths and weakness, and when it’s good to use or bad to use.
Java: Before my JavaScript days I spent about 10 years writing Java Swing applications to provide amazing User Experiences. You might scoff at the idea of a Java Swing application being an amazing User Experience, but then you probably have never seen one of mine. As with any framework, Swing can be very powerful when built by someone who understands the intricacies of the framework. Interestingly enough, a lot of those intricacies translate into web programming and JavaScript.
Other: I have worked with all sorts of technologies over my years in the field. Everything from Assembly to Ant, Pascal to PHP, and SQL to Shell Scripting. I have implemented high-performance, high volume data processing systems; eCommerce solutions and tooling, medium (200+) client networks from scratch; designed complex build and deployment systems; and assembled my own hardware for decades. I have an intuitive understanding of how computers work and am entirely capable of designing and developing whole systems from hardware to data storage to user interaction.
If you want to see the big bullet list, go checkout my Resume. (PDF | TXT | DOC)
MY PROGRAMMING PHILOSOPHY
I believe in well designed and structured code that focuses on inheritance, avoids coupling, and encapsulates behavior as much as possible. This means that I like to write clean objects which contain exactly what they need to get their job done and that do not rely heavily on external interactions. This makes for very testable, very organized, and very readable code. Whenever possible code should be well formatted, readable in its own right, and highly defensive. I hate pyramid code and fully understand the various means of dealing with it.
MY LEADERSHIP PHILOSOPHY
Over the course of my career I have lead many teams in many roles, from Director of Engineering, to Team Lead, to the Executive Director of a non-profit. I have learned over the years that trust and respect is built by rolling up the sleeves with your team and getting the job done together. I build teams that are friendly, communicative, respectful, and trusting.
MY DESIGN PHILOSOPHY
While I am no artist, I am capable of doing most User Interface and User Experience design. In these designs I strive to emphasize consistent, understandable, and intelligent systems that maximize user flow and customization. I am extremely detail oriented and believe that a pixel perfect implementation is always worth the effort. My design ideals focus on helpful but not intrusive, clean but not minimal, informative but not ugly. The best User Experiences stem from tools that give you exactly what you need without being over bearing.
MY PROCESS PHILOSOPHY
In the last thirty seven (37) years in this industry I have seen just about every software process management technique you can imagine. I have participated in large waterfall projects. I have done the scrum (and I am, in fact, a Certified Scrum Master). Ultimately, I have learned that the best processes are the ones that largely get out of your way and let you focus on the things you need to get done. I believe that the best teams have natural, organic communication in which participants share openly of their own volition instead of having forced discussions. To me, a good team is everything.
WHAT I AM LOOKING FOR
Here’s a list of my ideal job features… It’s a dream list, not a requirements list, so please don’t self censor your position just because it doesn’t meet all of these. Also, these are in no particular order of importance.
Scale: I have built everything from small one-off CLI tools to massive mutli-tenancy cloud based redundant systems. I am very capable of envision not just your project, but the entire product suite, how they fit together and play off on another, and how their code can be cleanly intertwined, and structured to enforce consistency and collaboration. My extensive background, my longevity, and my passion means that I am capable of working at the largest scale and scope your company needs.
Coding: I love to code, so any employer that wants to hire me should know this right up front. I am going to write code on a daily basis whether it be for your company or in my own spare time. The cool thing for any company that does hire me is that I am very prolific, especially when I get into my flow state. Let me write the code and I’ll amaze you every time.
Creativity: I draw strength and energy from creative outlets, whether they be in my work or in my personal life. A project that maximizes my creativity and allows me the opportunity to express myself in my work is going to reap the largest reward of my experience. I am equally comfortable creating visually (as long as you don’t expect great art), textually, conceptually, or architecturally.
Learning: I am very passionate about my work and keeping my skills in top form. To that end I spend a lot of time staying current and attempting to learn everything I can. I am constantly on the internet learning a new language, a new library, or the life and times of Charles Dickens. Anything I can do to increase my understanding of technology and the world around me, I’m there.
Challenge: I want to be mentally challenged on a daily basis to produce something extraordinary and I want to be invested in whatever that is. To do so, I like to be part of the process from the very beginning, not just an engineer on the outside of the architecture looking in. I am not the kind of engineer that you drop a one hundred page requirements document on and expect results. I don’t think anything good comes from disassociating the developer from the design.
Meaning: The more I believe in the product I am working on, the more faith I have that I am building something for which there is a genuine need, the more invested I am in what I am writing. This naturally leads to me being more passionate about what I’m doing which in turn makes me more productive. So, given Transitivity of Implication, invested is directly equal to productivity. Bonus points for letting me build things that will save lives, end suffering, enable world peace, or any other good karma producing activity.
Comfort: I believe that a person’s work environment is critical to their ability to do the best job possible and that for each person those environmental needs are different. The ideal job for me is one that recognizes this fact and provides the greatest possible flexibility for all employees. These environmental factors include things like remote work, casual dress, flexible work hours, comfy chairs, indirect lighting, etc. Bonus points if I can bring my dog to work. I don’t have a dog, but a company that allows that is my type of place.
Remote Work: With regards to Comfort from above, I am very interested in roles where I can perform remotely. I am actively seeking a 100% remote role, but I’m not adverse to traveling to your home office once in a while for some solid face time. I am an active user of tools like Slack, Instant Messaging and IRC, and have no objection to Google Hangouts or Zoom. I have worked on distributed teams for many years and am comfortable working under the conditions that remote work involves.
Mentoring: One of my great joys is teaching other people how to do things. Whether it be why they should be using === instead of ==, or what exactly is cool about function currying, or how to run a Horizontal Stack Offense in Ultimate Frisbee, you will always find me ready and willing to instruct. I prefer the collaborative approach to instruction over explanation or demonstration.
Technology: I love technology and have been tinkering with it since I was a wee little kid. I rebuild my own home computer systems and laptops on a regular (almost yearly) basis, making sure I have the hottest and most powerful tech around. I like big RAM, amazing resolution, and blazing fast speed. Given my preference I would prefer to buy and bring my own computer with me when hired because I can all but guarantee that it’s going to be better than the Mac with which you wanted to saddle me.
MY EMPLOYMENT LIMITATIONS
While I don’t want to limit myself as to whether or not I would be interested in working for your company, there are some things I am not willing to compromise on and these are listed here below.
Location: I live in Columbia, MD and am unable to relocate. Also, I am actively NOT interested in commuting to Washington DC or Arlington, VA on a daily basis. I am, however, very willing to work remotely with occasional trips into the office. This has the advantage of providing me with the Comfort and Technology I seek without any overhead to the employer.
Bad Technology: I have no interest in working with the following technologies… SAS, COBOL, Fortran, iLog Rules, C, or Flash/ActionScript. Yes, I know I list these on my Resume, but that doesn’t mean I want to work with them again.
Experience: I have 37+ years of experience in this field. I am not a junior developer, or even a mid-level or senior developer, and I am not looking for employment in those roles.
Web Design: As I have said before, I am not an Artist and thus I am not technically a Web Designer. I can do a decent job at it, but if you are looking for ultra flashy then I’m not your guy.
Suits: If you’re a button up collar and tie type of company I’m just not interested. While I do not object to dressing up on occasion to meet customers or go to the opera, I do not want to do it on a daily basis. My ability to write code is not made better when I wear a tie.
SAMPLES OF MY WORK
There are few places online you can checkout some of my code…
arei.net – This website is built on top of WordPress. However, the WordPress layout was rewritten by me in PHP to better suit my needs. Likewise, the style/CSS was completely designed and rewritten by me (including the logo work).
A Story of Glen – I designed and built a little animation framework and an animated story to show it off. All code is mine in luding the animation framework itself and with the exception of PrototypeJS and the Meyer CSS Reset. Feel free to pull it open in your favorite web developer tools.
The Game of Life – It has been about 15 years since I last tried coding the Game of Life and I thought I’d do a refresher. I was particularly interested to see how this might be implemented within the Web space and how performant I could make it. So, here it is. The source code is also available over on Github.
Github – (arei and also @awesomeeng) I am the original author and maintainer of many libraries/tools like ZephJS, AwesomeLog, the node-untappd library, and the npmbox utility. You can find these on my Github account. Additionally I like to park little snippets of various ideas I’m playing with, whether or not I am intending to release them, on Github. So please, feel free to browser on over and take a peek at some of my code. Keep in mind it can be pretty unfinished over there.
LinkedIn – No, I didn’t write this site, but I thought you might like to hit up my LinkedIn account and see some of the great comments my customers and coworkers have written about me.
Twitter – I am constantly on Twitter. Checkout some of the things I’m tweeting and retweeting. This is a great way to get to know me, but keep in mind that it’s a personal account and can occasionally get a little silly.
GETTING IN TOUCH
So now that you’ve read all about how awesome I am and how cool it would be to work with me, what’s the best way to get in touch? Why email of course. Simply drop me an email at jobs . at . arei . dot . net and introduce yourself. Show me that you’ve read this page and that I’m someone you’d like to work with and I’ll respond back, usually quite quickly.
And just in case you missed it, go checkout my Resume. (PDF | TXT | DOC).