I am a freelance computer programmer living in Portland, Oregon.
I taught myself to program BASIC between the ages of 6 and 12, back when the Commodore 64 was the coolest computer in town.
In junior high school I graduated to Pascal, and then in high school to C. In 1994 (Freshman year in college) I discovered Linux and the Free Software Foundation, and decided my calling was to be part of the open source movement. Unfortunately, my dreams were quashed a year later when I sustained a repetitive stress injury that sidetracked me off of computer programming and onto physics.
In 1998, physics diploma in my recently-recovered hands, I started working for Alesis Studio Electronics, where I was the principal programmer behind a new line of loudspeakers that eventually became the ProLinear DSP series. Most of my programming for Alesis was in Matlab and PIC assembly. I left in early 2000, during the financial turmoil that led to Alesis's 2001 bankruptcy filing.
From 2000 to 2008 I worked for Audio Precision, working on software for their System Two Cascade, ATS-2, and APx series of audio analyzers. I was the principal architect behind the APx's embedded core (written in C++). I also worked extensively on the APx's PC software, which was written in C#. It was at Audio Precision that I was introduced to Jetbrains' Resharper product, and developed a taste for refactoring tools.
From 2008 to 2009 I worked as a toolsmith for WorldQuant, LLC, a quantitative financial company. Most of my work at WorldQuant was in Python and C++. Because I was a toolsmith, I was in a unique position to learn about and explore a large number of computer and programming technologies. I wrote a DSL to aid in the analysis of large quantities of stock data. I learned how to coordinate data analysis on a large computer cluster. I learned how to use web technologies such as Javascript and SVG for data visualization.
After my tenure at WorldQuant, I spent the next several months in a sort of sabbatical, living off savings. For a few months I collaborated with an old friend on a start-up venture.
As I reflected on my career, I was struck by how much my productivity in each of my jobs had been boosted or hindered by the quality of tools that were available to me. My most productive years had been at Audio Precision when I had access to Resharper and Microsoft's C# development tools. My least productive years had been at Alesis, where all I'd had was a simple editor. At WorldQuant, I was able to build up my productivity by building tools for each specific job, but writing general-purpose programming tools to do refactoring and static analysis had been beyond the scope of my job.
In addition, I thought about the number of programming languages I had used in my career so far (BASIC, Pascal, C, C++, C#, Haskell, Ruby, Python, Matlab), and the number of programming environments (Commodore 64, Mac Classic, Linux, BeOS, Windows, Mac OS X). Although I considered myself professionally skilled in each of these technologies, there were simply too many of them for me to commit every last detail to memory--I always found myself searching through documentation, and where the documentation was strong (as it was on Mac Classic) or well-integrated with the coding environment (as it was in C#), my productivity skyrocketed. When the documentation was difficult to search or difficult to access, my productivity suffered.
This was the inspiration for the Nurfer project. I want to take my experiences of fantastic productivity (which were either tied to C# and Microsoft development tools, or tied to domain-specific tools of my own creation), and make them available to programmers working with other languages, operating systems, and editors.
I will continue working on Nurfer for as long as my finances permit. If you are interested in hearing more about my work, or if you are interested in contributing time and effort, drop me an e-mail at pberry@nurfer.org. If you want to contribute financially, visit the donation link at nurfer.org.
Thanks for reading. I hope that my efforts can help make you a more efficient and satisfied programmer.