Welcome to my home page. Currently, the aim of this site to to support my employment search. Click on resume to see my resume in printable form. I can be reached via email , or by calling 301 345-8479.
Current Projects:

GIAC - Greenbelt Internet Access Cooperative is an all-volunteer organization of people working together to provide internet access and education to the local community.

Learning LINUX has become a full time hobby for me. I have three LINUX boxen now, wire-connected via Ethernet on which I do all my home programming, etc. I'm currently working on adding a WAP to the system, with the long-term goal of forming a WAN throughout my local community, which has already been done in other cities.

Ed's Java Desktop is GUI Java desktop package. The goal is to provide a single Java package for desktop computers which contains most or all of the functionality usually needed by an end user. Example functions are database, file management, spreadsheet, word processing, browser, telnet client, chat client/server, and games. Stretch this concept and we're back to Java actually BEING an OS.

Ed's Compiled Java Library is a library of classes written in C+ which mimic various Java classes. The aim is to be able to write, test, and debug a non-GUI program in Java, and then convert the Java source code into C++ source code. The C++ code is then compiled to native binary.

Ed's Java to C++ Program converts Java source code to C++ source code. It does this by parsing a Java program and converting it into an XML-type of file, where the Java components (blocks, statements, keywords, etc) are identified and "tagged" via a tag library which describes a Java program. This file is then re-tagged via a tag library which describes a C++ program using corresponding tags. This second XML-like document is then assembled into a C++ program, which can be compiled into native code.


Often, I demonstrate initiative by developing creative and innovative ways to make a system perform above and beyond expectations. This section provides a few examples.

Years ago, in an IBM environment, I was the Systems Engineer responsible for quick fixes for NOAA system which included two runs, each broken down into several job steps, each of which took over 12 hours of wall-clock time to run. After the usual practices of reblocking IO, tuning syncsort parameters, and so on, I dug deeper into the COBOL code to find the biggest bottleneck. This turned out to be an ISAM lookup performed hundreds of thousands of times per day, which hit a particular disk file pretty heavily - once for the key, and once for the record. Since the COBOL compiler at that time limited array size to 65k, it was not possible to fit that ISAM table into a main memory array. However, runtime did NOT check for array overflow, so I abused a bug. Note that this is not a good practice, but under the circumstances, a job which took over 12 hours wallclock time a day, and which ran on an old IBM machine which was prone to crashes, it was justified. I allocatted TWO arrays, back-to-back, then read the ISAM file into the first array, allowing runtime to overflow the first array into the second array. No harm done - it was MY space, to use as I saw fit. Data lookup via the array method enabled both runs to complete in under 2 hours of wallclock time, with a tremendous savings in CPU and IO costs.

My most recent position was a Software Engineer at Sprint for 3.5 years (first as a contractor, then as in-house). I was assigned to cut a purchase order for some commercial Java software purported to be able to generate Excel spreadsheets from data we pulled from an Oracle database. I was unable to get a firm price from the sequences of salemen assigned to my account. I received a series of questions about our environment, such as number of cpu's per machine, number of users, number of machines, etc. Eventually, this project was yanked away from me. However, by the time Sprint management was able to get a price-quote, the prices had gone up above and beyond the allocated project budget, which meant more delays to gain additional funding, and a failure to meet the project deadline. I took it upon myself to find how Excel worksheets were designed, did a lot of searching and testing, and was able to write my own Java code which produced the desired output. I did this entirely on my own time, on my own computer. When I mentioned my success to my Manager, he asked me to turn it over to the project leader to see if it would work in Sprint's environment. It did indeed. Using my own initiative, I saved a project from failure, saved Sprint tens of thousands of dollars, and received an award from Sprint of a whole hundred bucks.