> Home

> Work
  Projects
  Links
  About Me
  About This Site
  Donate
  Site Map

> Résumé
  Procedures
  Rates

> Skills
  Experience
  Education

Skills

I like to think that I'm good at communicating. You can judge for yourself whether I'm good at writing, and at organizing and presenting information, but you'll have to take my word for it that I'm good at speaking and listening. I particularly like it when I can identify and remove a source of confusion—to me that seems like a kind of debugging.

As for computer-related skills, here are the important points.

Operating SystemsMost of my work has been on Windows, but I'm familiar with several varieties of Unix, including Linux. I've written code for MacOS, but that was a long time ago.
LanguagesI've done a lot of work in Java and C++ and a fair amount in C#. I'm good at writing true object-oriented code. I'm more or less familiar with lots of other languages, ranging from the interesting (Scheme, PostScript) to the practical (Visual Basic, Fortran).
NetworkingI've done many things with sockets, both TCP and UDP. I like to know about network protocols, and am familiar with HTTP, DNS, SMTP, POP3, and FTP.
WebI know HTML, and a bit about servlets. I'm not so interested in JavaScript; to me it looks like a nightmare of non-interoperability. I know a little bit about various issues related to hosting, mainly as a result of running this site.
DatabasesI'm no DBA, but I can design, create, and use tables and indices. I know SQL and the ODBC API well, and have used Oracle, SQL Server, Sybase, Informix, and Access.

My favorite skill requires a bit more explanation.

The true power of databases, I think, is not widely appreciated. Most people, and most businesses, store in databases only those things that are clearly recognizable as data, things like customer and order records. However, any kind of information that has structure can be put into a database … and should be, in order to remove redundancy and make the information easier to manipulate.

Once information has been put into a database, it can be gotten out again, in whatever form is needed. If you have a bunch of objects with fields, put the names and properties of the fields into a database, and you can produce not only code that defines the objects (in the language or languages of your choosing), but also SQL that creates appropriate tables, or documentation in text or HTML.

I am good at recognizing when information can be put into a database, and at thinking of interesting and useful ways to get it out again.