Tools Experience
Bob is often asked in interviews what it is he'd like to be
doing. Having done many interviews on both sides of the table,
Bob knows that the thrust of the question is most likely Here's
the tools we're using - interested?. Many companies use this
to attract and hold workers, and that's fine. But having used
so many different tools in his professional life, Bob is
convinced that a tool is just that - a tool, and no one
tool is so much better than another that it overcomes the
short-comings of the rest of the job.
However, there still needs to be a listing of the products,
languages, tools, and such that Bob has used in his professional
life:
- Operating Systems
- Linux (RedHat, Ubuntu) - The initial
attraction was the GNU compiler tools for some continued
work on his thesis simulation. It is the Number 1 server
platform in Bob's opinion.
- Windows (3.1/95/98/NT/XP) - since 1991 at his
own company, Port-to-Port. While fine for certain
audiences, this is not the platform a business should
run critical server/back-end processes on.
- Solaris - since 1987 in grad school. Most of the
administration work has been with 2.6 and 7. Lots of
development work, and certainly one of the top four platforms
in his opinion.
- NeXTSTEP/OPENSTEP/Mac OS X - since 1996 at First
Chicago NBD. much of it in the Development, but quite a bit
as an administrator/owner of two NeXT machines and several
Macs at home.
- Development Languages
- C/C++/Objective-C - these are the traditional
languages of the developer. Lots of experience in each.
While Obj-C seems to be confined to the Mac, it's nice to
know that the same C and C++ code on Linux works fine on
Mac OS X.
- Java - the tool of the dot com age.
Bob has worked a lot with JDK 1.1.8, 1.3.1, 1.4.2, 1.5.0,
and 1.6.0 due to their larger acceptance and general stability
of each of the major releases. While there are specific things
to be gained in each of the releases, the base objects can be
made to do a lot of the work, just maybe not as easily as the
new features in later versions.
- FORTRAN - the simulator in his thesis was
written in FORTRAN, and he still maintains it from
time to time. It's not meant to write GUI apps in, but what
it does, it still does extremely well.
- Pascal - wrote a circuit simulator in this back
as a Master's student at Purdue. Nice language, but not one
that he's found a need to keep with him.
- VB and VBScript - Port-to-Port based almost all
it's business on this language with a database back-end
and Bob has written more than his fair share of VB code.
- 16-bit ASM - did a lot of this as a student at
Purdue, but haven't transferred the knowledge to more
significant platforms due to the power and speed of C.
- Scripting Languages - while not necessarily
suited for large-scale deployments, languages like ASP,
PHP, csh, bash, perl, Python, etc. are all very useful and
have been used by Bob in more than one project to glue things
together.
- Tools (Source Control, Mail, etc.)
- Git - excellent source control for almost all
platforms. Bob runs one server with a
web
interface just for his home network. In addition, the
hosted GitHub service
is an excellent supplement to the base Git toolset.
- CVS - excellent source control for almost all
platforms. Bob runs one server with a
CVSweb
interface just for his home network.
- Subversion - the successor to CVS, it was the
standard at UBS O'Connor and Chicago Trading Company and
it's certainly fine for most applications. It's limitations
are architectural - server-based.
- Git - excellent distributed source control for
Unix platforms, including Mac OS X. Bob runs a
gitosis
server just for his home network.
- PVCS - the standard at First Chicago NBD, Bob
was the lead developer deployment contact in Captial
Markets. Not as nice as CVS and a lot more expensive.
- SourceSafe - defacto standard for Microsoft
Visual Studio development. No better than CVS, and available
on a lot less platforms and costs more.
- MQSeries - nice middle-ware from IBM, primarily
used by the Java client. It's a nice product that does
exactly what it's supposed to do, which is a real treat.
- Sun One Message Queue - nice Java-based middle-ware
from Sun, primarily used by the Java community, but opened up
by Sun recently to include the C++ API. It's a nice product
that just works.
- cc:Mail - as a network-wide admin of cc:Mail, Bob
learned that he'd rather not use this product again.
- Databases
- Microsoft SQL Server - primarily 6.5 and 7.0,
Bob has used these databases for many projects. There are
a lot of reasons not to do this, as Bob can certainly
explain.
- Sybase - this is a reasonable database, but
not significantly better than SQL Server or Oracle.
- PostgreSQL - the best database for sub-10 GB
databases. This is fast, secure, Open Source, and in about
every way better than SQL Server, Sybase and Oracle. When
the database gets too big, you do need to look to another
solution, but that's not very often.
- Oracle - not a bad database, but not cheap
either.
- H2 - very impressive 100% Java database that can
be both flat-file like MySQL, and in-memory. Very sleek if
you are doing a Java project.
There are certainly more technologies that Bob has been exposed
to, but these are the ones that have formed the cornerstones of
the projects he's been doing for the last couple decades, or so.
While we could list tools like Lotus Notes, DB2, Visual Age for Java,
and a host of others, Bob's level of expertise in those tools
is only as a casual user, and not as a serious developer.
Which bring us to a point. We have found that there's a danger
in focusing on specific tool experience. And it is often seen at
it's worst in the interviewing process. When it comes to most
resumes, most people load up on the things that they've only been
exposed to for a short time - just to make the resume look better.
While it's not immoral, not quite ethical, either. We have
chosen to list only those things Bob has intimate working
knowledge of. So his resume list is correspondingly shorter.
And that is the crux of the problem - others with much less
real experience will appear to be better qualified than
Bob.