I'm currently a senior software engineer at SonicWALL, a network security company and manufacturer of firewalls. In recent years I've done contracting, and have worked as an engineer and manager at a few startups, some of which were very successful, e.g., NetManage. Prior to this I worked at Oracle and Sun Microsystems. Long ago I worked for NASA/Jet Propulation Laboratory and the University of California at Santa Cruz, Long Marine Laboratory. My first real job was with Caine, Farber & Gordon, Inc. working on porting the PDL processor to various mainframe computers.
Some of the products I'm most proud of:
Watch this space for a resume.
This section contains tools I've developed which I find useful.
This application is for POP users who want to read their mail from any Windows machine with an internet connection, a browser, and a command prompt. Works on Window 98, NT, and 2000. Currently, the application can only receive mail.
Executable download about 70K.
This is a windows service that runs applications daily at specified times. I wrote it out of frustration of using the "at" command and the "Task Scheduler" to run scripts and executables. The configuration file is a simple script and the script can be changed and reinitialized at run time (by setting a registry variable). Task input and output files can be specified. Currently, the service only works for tasks that occur every day at a particular time.
Zipped executable and Word documentation download about 39K.
This bibliography is organized into topics I find useful in my current work.
| Stroustrup, Bjarne. The C++ Programming Language, 2nd Edition. Addison-Wesley, 1991. | For better or worse, this is my go-to book for C++. |
| Fowler, Martin. Refactoring: Improving the Design of Existing Code. Addison-Wesley, 2000. | Refactoring is the process of performing transformations on existing source code to improve its design and maintainability. The transformations inhabit the realm between local optimization and wholesale rearchitecture. There is a significant object-oriented and patterns influence. If programming is like writing, refactoring is like editing with the "Elements of Style" at the level of paragraphs and chapters rather than sentences. |
| Gamma, et al. Design Patterns: Elements for Reusable Object-Oriented Software. Addison-Wesley, 1995. | This is the seminal work on design patterns. I believe this idea is the most significant development in the art of programming since object-oriented programming. |
| Flanagan, David. JavaScript: The Definitive Guide, 3rd Edition. O'Reilly & Associates, 1998. | My JavaScript reference. |
| Musciano, Chuck and Kennedy, Bill. HTML: The Definitive Guide, 3rd Edition. O'Reilly & Associates, 1998. | My HTML reference. |
| W3C. HyperText Markup Language Home Page. Retrieved from http://www.w3.org/MarkUp/ . | The official reference. |
| Flanagan, David. Java Examples in a Nutshell: A Tutorial Companion to Java in a Nutshell, 2nd Edition. O'Reilly & Associates, 2000. | Used the network server examples. |
| Harold, Elliotte. Java Network Programming. O'Reilly & Associates, 2000. | Found useful client and server examples here. |
| Oaks, Scott and Wong, Henry. Java Threads, 2nd Edition. O'Reilly & Associates, 1999. | Good introduction to threads. |
| McLaughlin, Brett. Java and XML. O'Reilly & Associates, 2000. | Learned about Java XML support from this book. |
| Sun Microsystems. Java 2 SDK, Standard Edition Documentation Version 1.2.2. Retrieved from http://java.sun.com/products/jdk/1.2/docs/index.html . | When writing Java code, one window always points here. |
| IETF. The Internet Engineering Task Force. Retrieved from http://www.ietf.org | The place to find RFCs and current Internet Drafts. |
| Davis, Carlton. IPSec Securing VPNs. Osborne/McGraw-Hill, 2001. | This has the best explanation of ISAKMP I have found. |
| Doraswamy, Naganand and Harkins, Dan. IPSec: The New Security Standard for the Internet, Intranets, and Virtual Private Networks. Prentiss-Hall, 1999. | A good explanation of IPSec. |
| Badaracco, Joseph. Defining Moments: When Managers Must Choose between Right and Right. Harvard Business School Press, 1997. | Some good thoughts on management ethics which brings together an interesting collection of philosophers. |
| Brooks, Frederick. The Mythical Man-Month. Addison-Wesley, 1995. | A classic yet surprisingly topical work originally from the time of EBCDIC before, there was Unix, personal computers, Windows, or the internet. |
| DeMarco, Tom and Lister, Timothy. Peopleware: Productive Projects and Teams, 2nd Edition. Dorset House Publishing, 1999. | A software developer's utopian view of how they should be managed. |
| Oram, Andrew and Talbott, Steve. Managing Projects with make. O'Reilly & Associates, 1993. | Essential make reference. |
| Mulligan, John. Solaris: Essential Reference. New Riders Publishing, 1999. | When I worked at Sun I used SunOS. Now I have a Blade running Solaris. This is my Solaris reference. |
|
Stevens, Richard.
TCP/IP Illustrated, Vol 1-3.
Addison-Wesley, 1994.
Stevens, Richard. Unix Network Programming, Vol 1, 2nd Edition. Prentiss Hall, 1998. | Richard Stevens is my go-to guy when it comes to Unix programming. I also used his networking books to figure out how to do network programming on Windows when Winsock was new. |
| Hill, Tim. Windows NT Shell Scripting. Macmillan Technical Publishing, 1998. | Some books stand out because they actually explain arcane subjects that somehow get taken for granted. This is the best (and only) book I have found that explains Windows scripting. |
| Kruglinski, David. Inside Visual C++. Microsoft Press, 1996. | This book (and it's previous editions) is how I learned to use MFC, and thereby avoided having to read Petzold. |