Dirk Bergstrom
I am a professional computer geek and programmer, available for in-person gigs in Silicon Valley, the closer to Mountain View the better. I consider myself a software "craftsman" rather than an "engineer", in that I strive to produce polished, simple, minimalist, effective and carefully built code, rather than concentrating on explicitly technological solutions. I learned my trade on the job, by working with senior programmers and by reading and trying to emulate the code in successful open source projects.Python is my current language of choice and my primary focus is web applications; I'm fluent in Java, Javascript, SQL, Perl and shell. I have skills and experience with the entire development process from server configuration to end user support. If you need an application built, fixed or improved, I can probably do it.
In 2009/2010 I developed a password safe app for Palm's webOS platform. I put out roughly one release per month between September and February, and at its peak I had about 1500 users (I've since switched to an Android phone, so I'm thinking about porting the codebase to PhoneGap/Sencha Touch). Since the project is open source, you can see the quality of my work first hand: I use version control and bug tracking, and I interact well with users.
Computers are my third career; previously I was a corporate librarian, and before that a bench chemist. To get an overview of the whole story, read my resume.
I regularly attend the O'Reilly Open Source Convention, and I take notes.
I believe in...
- Short release cycles
Implement, communicate, improve, iterate. When the cycle is short users spend less time living with bugs and without features, while developers maintain familiarity with the code in question. - Direct communication with the end user.
It's much easier to build software that delights the user if you can talk to them. - Avoiding expedient solutions
The long-term effects of short-term solutions are debilitating to morale and productivity. "Right, now." versus "Right now!". - "Reality-based" prioritization & planning
Decisions based on data from metrics & instrumentation. - Source control, bug tracking, code reviews, coding standards and
comments.
"Best practices" don't guarantee the best product, but it's damned hard to build anything worthwhile if you skimp on them.
I would love to learn...
- PhoneGap,
SenchaTouch,
Titanium,
jQTouch, etc.
I think that a cross-platform mobile development environment is inevitable given the potential savings in development costs. Having seen what Palm accomplished with webOS, I belive that HTML5/Javascript is the logical choice for this. - Android
The glorious cross-platform world of the future isn't here yet, so I want to learn a native mobile toolkit. I'm uncomfortable with Apple's walled garden, and much as I like webOS, Android is the only other serious player. - node.js
It would be interesting to build a web app that used the same language on both the front and back end. I've done some asynchronous coding in Javascript, and I'd like to explore that further. - BDD
The concept of TDD never worked for me (in large part because I never had a detailed spec to work from), but the different slant of BDD seems like it could be a better fit. - "Cloud computing"
I've worked with a VMware ESX cluster, and it gave me a lot of ideas I'd like to explore. Plus it never hurts to be buzzword compliant. - Lisp, Haskell, Clojure, Erlang, etc.
Working within a radically different language paradigm would expand my brain.
I'm not interested in...
- PHP
The language, standard library and much of the userbase worship at the altar of expediency. - C / C++
Memory management and bit-bashing are exactly the sort of difficult, fussy and tedious work that computers were designed to save us from. - Financial, Medical, HR or other legally sensitive data
I find Sarbanes-Oxley, HIPAA and the looming threat of humorless government investigators stifling. - DRM
I'll let Cory Doctorow explain why. - A management position
I've been a manager (a fairly good one, I'm told) but I am more interested in hands-on work now. This will likely change later in my career.