a personal technology profile
My resume documents many of the technologies I have worked with professionally, but provides just a few personal aspects. This page sheds some light on the more personal side of my passion with technology with a touch on the professional side.
In my twenty plus years as a software developer, I have used and have been (and still am) willing to work with a wide variety of technologies. My home network, mentioned on my resume, is an example of this. I have Windows, Mac, and Linux systems. The Linux systems I have are primarily used for servers, though I have used and am open to using them as desktop systems. I do not use desktop Linux as much now simply because I have a better Unix-based desktop in my Mac OS X laptops. I use both my OS X and Windows laptops on a daily basis depending on what I am working on at the moment. This message was composed on the Mac, though it could just as easily have been on the Windows laptop. I am very comfortable with and enjoy using both systems.
As my home hardware illustrates, I am willing to invest in my personal development. Part of this is just to have useful tools to get things done. A larger part is that I enjoy learning about different things and invest to further the goal of learning. This applies both to the hardware already mentioned as well as to software. For many years, I have had a personal MSDN Universal subscription. Sometimes, after a major release, I let it lapse for a year or two before buying it again. I am currently using VS 2005, SQL Server 2005, etc. and now need to upgrade to the 2008 versions. At around $2000, this is a very expensive investment, but one worth making. In addition to my MSDN investment, I am also an Apple Developer Connection member, their version of the MSDN. That is a $500/year investment, but includes a hardware discount. I applied my last hardware discount toward my 17 inch Intel MacBook Pro (currently running OS X 10.5 Leopard). Though not covered by a hardware discount, I upgraded my Windows laptop to a 17 inch Dell Inspiron 9400 at about the same time. Having up to date tools makes learning more enjoyable.
As for professional work, I have worked with a wide variety of technologies there also. This was probably used to the greatest benefit while I was working in consulting. While at Geneer, I was able to very quickly ramp up on what ever was needed to help out with client projects. As a result, many different technologies were used. Though no project at Geneer was purely .Net, I was able to use my personal MSDN subscription to push for some C# usage on the DowAgro project. This has been typical of many projects since then. In the past, I had to really push to utilize my personal MSDN to get C# used in any way on projects. I was often able to use it, but only on tangential aspects of the projects. Now that .Net is more accepted by businesses, this is not as difficult to do. While at Riverside Publishing, I created a GUI deployment tool to handle promoting the configuration data stored in the Oracle database across the development environments from dev to QA to production. Background threads were used to export a structured set of data from a bunch of tables and to import them into another database while maintaining the relationships across changing identity column values. The FTD project had a C# portion that I was able to get my hands into, though the majority of that project that I worked on was C++. The Baxter Credit Union (BCU) project was my first full-time purely .Net position.
My personal web site is another testimony to my abilities. Due primarily to hosting costs when I created it, it was created using open-source technologies. It is currently hosted at pair.com on a BSD/Apache2 server. The current implementation uses PHP5 and is based on the Kohana PHP framework. It uses MySQL as a database backend and the pages are rendered in XHTML and CSS. The Random PHP page uses an AJAX call to call the server to get the generated value to display. I also have and use some graphical tools such as Adobe Photoshop, Lightroom, and Illustrator. Like software development, photography is another creative activity I enjoy doing. When needed, I can also created graphics from scratch. My BSoft Productions site illustrates a logo I created.
I also have an ability to communicate that is not fully tapped into. Long ago, I published an article in Dr. Dobb’s Journal about C++ templates. As occasionally happens, I found an itch and scratched it. I did this again recently on the Kohana PHP framework forum (http://forum.kohanaphp.com/). There had been comments from new users about not knowing how to work within the Model/View/Controller architecture. So, to ease their burden, I started an ‘MVC discussion’ thread that documented how I thought MVC should work. To quote one person, my explanation was the clearest they had yet seen. Feel free to look at the site for other comments. While I do have this ability and am certainly willing to use it professionally, I still prefer coding as my primary development activity.
As for what I would like to work on next, it could be any number of things. I am currently working towards my .Net certification. The specific exams are listed on my resume. Being able to work with the .Net technologies full-time would certainly quicken my exam preparations. As I did it for fun on my personal web site, working with PHP professionally would certainly be acceptable. Perl is another language I enjoy working with and doing a little more with it would be okay. It usually gets used where ever I work anyway. Doing more C++ is an option, though I would prefer if it were cross-platform, possibly using the Qt toolkit. I enjoy working with many things and do not require a focus on a single technology. My being able to enjoy almost any assignment has truly benefitted my employers.
This description should demonstrate that many things are possible. However, I have found this generalist background to be both a blessing and a curse.
The curse part of this varietal background comes when a company desires a specialist in a single technology or a very focused set of technologies. In the minds of some recruiters, not having many years of just that specific technology sometimes puts me at a disadvantage price wise to more junior developers who have done only that technology. Of course, this does trade off a narrow technological focus for other, very beneficial abilities I have that are not often considered.
The benefit of a varietal background is that it is nice to be able to pitch in where ever needed and be immediately effective. My background with a wide variety of technologies and domains makes me extremely competent at solving problems. However, it must be pointed out that this ability very strongly relies on the intuition developed over many years and is not a documented methodology. One manager I spoke with expected this type of problem solving ability to be a documented process. Intuition does not fit that mold well. Being able to think outside of the box is an ability I have, though it is not often appreciated during the hiring process. Like intuition, this and other attributes of a personality do not document well, though they are very useful to companies able to take advantage of them. My personal goal is to apply the appropriate technology to solve the problem at hand in the most efficient way possible, both from a technology perspective and from a business perspective.
These paragraphs should summarize my background and interests as they relate to software development. It should also demonstrate that, to me, software development is not just a job. It is something I really enjoy and also do for fun and relaxation. My contribution to the IPCop open-source firewall project is another example of this. I wanted some related functionality. So, I created it and gave it away.
As for my personality, I am a very easy-going person who works well with others. I am amiable to listening to all ideas and am not set on my way being the only way to do something. The Perl mantra is often true, there is more than one way to do it. (Here is how Perl does sit.) One of the companies I worked for, Geneer, gave a Myers-Briggs personality test to its employees. My results showed me to be a very strong INTP. This web site has more information on this personality type: http://www.intp.org/
Hopefully, this will provide a bit of information about me.