C++, Node, algorithms, and PhD physicist programmer & architect
I have 20 years of C++ and PHP experience, and a PhD in computational physics. I do my work in a clarified & detail-oriented, communicative, methodical way. I work from my home office in Brattleboro, VT. I like to spend time designing and programming good code, and as little time as possible doing other things that take away from time I could spend actually architecting and writing code.
Previous to obtaining my PhD from Northeastern University in 2008, I had three years' worth of "in-the-office" full-time professional programming experience in C++. In the years since, I've been engaged in more-than-full-time freelance contract programming work out of my home office in Brattleboro, where I like to work with interesting people on interesting projects (though almost anybody nice, and almost any project, can fit into those categories).
I love algorithms and detailed back-end work in C++ most of all, but I am also an expert Javascipt and PHP programmer (as well as other technologies).
See my complete resume in the "Portfolio" section, below.
My ideal project combines mathematics and computer programming in detailed back-end server or algorithmic work, programmed in C++ or Node.
I excel at reading technical documents and understanding the details of the documents - in particular involving advanced scientific and mathematical articles and books. I often am able to fully grasp the mathematical details, including in a wide array of fields. This is part of the reason I work as a contract programmer rather than living the 9-to-5 lifestyle in academia or in the office.
Likewise, commensurate with the above, I've worked very extensively with databases, most often MySQL, but also SQLite, as well as some Oracle, and MS SQL.
I love C++ most of all because the language is powerful enough to allow a programmer to understand & work with the most intimate details of the operation of the machine.
A little about me: I'm an outstanding communicator. I prefer to work from my home office because I've found that office environments inhibit competency, rather than promote it.
One of the reasons that I've developed so many programming skills is that when I'm assigned a task, given the option between doing it a way that I've done it before, or researching and understanding a new technology that might be better (in however small a way), I almost always choose the latter. Therefore, I spend about as much time as other programmers do taking time struggling with the project at hand - but my struggle involves learning new things all the time, rather than struggling with a mess of bugs, getting stuck working around a mess as quickly as possible by contributing to the mess rather than fixing it.
A profile description allows room for some elaboration about this. In programming, employers generally don't like to pay developers to learn new things. They'd rather pay for a developer who already has the skills. However, a programmer who isn't constantly learning doesn't have skills, because even a lifetime of learning skills isn't enough.
I imagine that if a programmer understood all technologies perfectly, the time required for a project would only be the time spent typing out the few thousand lines of necessary code. All the time spent not typing at the keyboard is time spent learning.
As a reminder, you can my detailed resume in the 'portfolio' section, below.
Please feel free to contact me at any time.