|
| Charles Curley - Software Engineer, Writer | << | < | > | >> + Larger Font | - Smaller Font |
Charles Curley |
Charles Curley
charlescurley at charlescurley dot com
I require positions that are 100 &percent; telecommute with only occasional visits to the office. If you understand that, put the phrase "100 &percent; telecommute" in the subject of your email.
I have spent 29 years in Internet applications, real time, data acquisition, embedded processors, and process control software, technical writing, and software tools for such applications. I have management experience as a software technical lead and in the film industry. I have excellent communications skills, including teaching, public speaking and writing, ranging from general and corporate to utter nerdspeak. My varied background and interests support my very flexible work style.
| 12/07 to present | End Point Corporation as a Software Engineer. Responsibilities involve maintaining, extending and documenting the OpenAFS distributed network file system, including client, server and kernel code. Work is done in C with test programs written in C, Perl and shell script. Work is done on remote and local servers using SSH. |
| 10/99 to 11/07 | Self-employed/contract as a software engineer, writer, and instructor. Recent and current clients include frucall.com (formerly Millenigence), Lenderhost.com, FairCom, etrafficers.com and Cygnus Solutions (now part of Red Hat). |
| 1/02 to 5/03 | Northwest College, Powell, Wyoming, developed and taught three classes: Linux for Network Administrators, Computer Hardware Maintenance, and Technical Documentation. For Central Wyoming College, Riverton, Wyoming, I developed and taught an Introduction to Linux course. |
| 8/97 to 10/99 | Contract as a software engineer/technical writer for Microsoft. |
| 6/94 to 8/97 | Self-employed/contract as a software engineer, writer, and instructor. Clients include Hewlett Packard, Weyerhaeuser, Alpha Technologies, IBID Corp. and Allied Telesyn. |
| 2/94 to 5/94 | Instructor: Introductory C Programming (part time) and Computer Repair (full time contract). Northern Wyoming Community College (NWCCD), Gillette, WY, now Sheridan College. |
| 8/91 to 9/94 | Software engineer. Various firms. Contract work. |
| 10/89 to 3/91 | Software development engineer. Colorado Memory Systems, Loveland, CO (now a division of Hewlett Packard). |
| 6/87 to 6/89 | Software engineer. Maxtor, San Jose, CA. |
| 7/81 to 10/82 | Scientist Engineer. Rockwell International Electronic Devices Division, Newport Beach, CA |
| 1980 | Software engineer. Jet Propulsion Laboratory, Pasadena, CA. Some of my work there contributed to the Galileo spacecraft. |
BA, Philosophy, University of Connecticut.
Co-designed and implemented the guts of an advertiser portal for frucall.com. This enabled the company to seek audio advertisers for their unique product. The work was done in Java 5, Struts, and Javascript.
Designed and wrote a customer portal for Millenigence. Simple and to the point, the portal allows registered customers to interact with sales and customer support departments. The work was done in PHP, MySQL and JavaScript served on Apache on Linux.
Member and former webmaster, Wyoming Writers, Inc.
Designed and implemented a completely new Fannie Mae 1003 mortgage application intake form. Typical web based 1003 intake forms have a fixed count of fields such as assets, liabilities, or checking accounts. They are nothing but ports of the paper 1003 to the Web. This means that if an applicant has more, say, automobiles than the form allows, she can't list them all. The form I implemented allows the applicant and broker to enter as many items in a given category as needed, up to the available space in the MySQL database backing up the system. This lending industry innovation will give Lenderhost.com a competitive edge in seeking client mortgage brokers. The work was done in PHP, MySQL and JavaScript served on Apache.
Maintained, improved and debugged a web based mortgage management system for Lenderhost.com. The users are mortgage brokers and their borrowers. The facilities include a complete Fannie Mae 1003 mortgage application intake form and broker and processor tools for managing the applications from initial contact to approval. I implemented a facility to export mortgage applications in Fannie Mae format for import by other mortgage brokerage management programs such as Caylx Point. Most code was implemented in PHP and Perl with a MySQL database.
Wrote and maintained several internal World Wide Web Pages for the HP PCI Program which made PCI bus resources available to other engineers within HP. This included a number of interactive facilities such as a guest book. This facility made documents available instantly across the company, with regular users on three continents.
Perl CGI scripting for mortgage and real estate web products, for etrafficers.com. One project involved taking a loan application form from a web page user and translating that into a Fannie Mae Form 1003, allowing Etrafficers' client banks to import the application into industry standard applications such as BYTE Enterprises' TQS.
I set up and operated NCSA httpd and Microsoft Internet Information Server (IIS) web servers as part of my work for HP. This function included ensuring security for sensitive information such as OEM proprietary data.
Wrote and maintained other web pages inside HP. One was an archive for a proprietary HP list server.
While at Hewlett Packard, I designed and implemented three databases on Microsoft SQL Server 6.5 on Windows NT 4.0. All three were designed to be made available to their users over HP's intranet, and so had World Wide Web front ends. This allowed the use of sophisticated stored queries and information hiding techniques that would not be practical in a standard SQL query environment. Using the Web removed the necessity of having remote database clients on engineers' computers.
I put this resume on the Web. To make an earlier version maintainable, I used the same source file for both the frames and frame-challenged versions. This required careful planning and use of CGI. The design allowed for access by text-only browsers up to the latest browsers. I maintain this resume using Emacs, using the html helper mode from Nelson Minar, and GNU Ispell. I use Pieter Hintjen's HTML preprocessor, HTMLPP, written in Perl, to maintain this and other web pages.
Helped design, write and document several applications designed to run on a variety of IP telephones for Millenigence. The work was done with Java, PHP and MySQL running on Linux. The biggest challenge is that IP telephones simply aren't designed for this sort of application. Yet.
Scanned in via OCR software several science fiction novels. I then used Emacs' regular expression search and replace, and some of Linux' other text manipulation tools, to search out and clean up the inevitable OCR errors. I was able to put my own writing skills to work by copy editing as I went along (consistent capitalization, use of terminology, etc.). This saved the client having to pay someone to retype the entire MSs, but still delivered clean copy, ready for her to begin her re-write.
Modified a gas furnace controller program written in STMicroelectronics ST6 assembler to comply with the UL 1998 standard for microcontroller reliability. I then examined the source to ensure compliance and helped prepare the documentation necessary to submit to agency approval. UL 1998 compliance is essential for home furnace products to be sold in the US or Canada, so this was a crucial step in bringing the product to market. Invensys expected to make over 100,000 pieces a year for at least three years.
Numerous small sample programs and snippets in C and C++ to illustrate memory management and file I/O function calls of Microsoft Windows 2000, for Microsoft Software Development Kit (SDK) documentation. Example code is essential to allow SDK users to "learn by example". It must be clear, concise, well written and well commented.
I implemented status monitoring network software for BroadBand Power Supplies (BPS) on custom 68HC11 hardware, at Alpha Technologies. My design refinements reduced code space and network traffic overhead. I wrote the code in a very portable manner to allow other engineers to adapt it to their portions of BPS. World-wide customers for the product include telcos and cable TV providers. The network allowed Alpha to make a quantum leap in the status monitoring data available from their power supplies. The work was done in C.
I participated in the coding of a processor controlled Inverter Power Module. This module provided a Uninterruptable Power Supply function. The code ran the inverter, battery charger and other functions. This project was well ahead of other BPS projects in development. The work was done in C on the 68HC11 (Alpha).
I designed and wrote code for network controllers (Maxtor), SCSI hard drive test equipment (Maxtor), a hard drive test language (Maxtor), a source code management system (Strand Lighting) and database systems (myself and others).
I have written BIOS level code for VGA video cards (Information Handling Systems) and custom hardware (Strand Lighting, Maxtor), including video, floppy and hard drive, Arcnet, keyboard and other drivers (Rockwell, Strand Lighting, Maxtor, others).
Maintained and improved Colorado Memory Systems' tape backup software for MS-DOS and Unix (AIX, etc.). Work was done in Microsoft C and native Unix C compilers. Among other things, I wrote code to handle hard links when backing up on Unix and restoring on both Unix and MS-DOS/Windows.
I designed, implemented and documented a complete Forth development environment. Strand Lighting used this to design and code one of the most ambitious theatrical dimmer control projects ever undertaken. Together, we implemented an OOP environment years before any OOP cross compilers for the target hardware were available.
Subsequently, I wrote an optimizing Forth native code compiler for 680x0 (myself). I expected the compiler to produce faster code than a traditional inline threaded Forth implementation. I was surprised to see that it also produced smaller code as well. I then published two articles on the compiler. This is the last of three compilers I've written for 680x0.
I specified and wrote the software and programmer and user documentation for a development system operating system. This helped Rockwell International sell 6502 family processors into shops that had been using Intel and Zilog processors.
Technical documentation such as user manuals, programmer manuals, etc. for Millenigence.
Marketing material, such as white papers, for Millenigence.
|
"Finding Your Way with GpsDrive", another "eyebrow" article for Linux Journal #132, April, 2005.
"Transaction Processing", Dr. Dobbs Journal, March, 2004, using sample code written for FairCom's c-tree Plus product.
"Emacs: the Free Software IDE", Linux Journal #98, June 2002. This article prompted Linux Journal to give Emacs their Editors' Choice in the Development Tool category. "For those unaccustomed to the Free Software world, it's hard to believe it's free -- and it's been there all along."
Wrote the entire first edition (2002) of the Thermopolis/Hot Springs Tourism Directory, except for one article, for The Wyoming Advertiser. This is an advertiser-funded tourist guide featuring local attractions like our world class dinosaur museum and dig site and tourist infrastructure like motels and campgrounds. I did the entire project in a month, while also teaching classes. One of my innovations was a page of URLs of local businesses and agencies, which helps travelers to plan their trips. This tourist guide helped The Wyoming Advertiser to compete with the local newspaper.
Solitaire: A Consumer Comparison, published on April 1st.
Wrote the Linux Documentation Project's Linux Complete Backup and Recovery HOWTO. I also keep a local copy.
"Prime Time Linux, Part I", Datamation, March 5, 2001, and Part II, March 6, 2001.
|
"Bare Metal Recovery", a "how-to" article on disaster recovery. It was the "eyebrow" article of Linux Journal for November 2000 and the basis for a HOWTO on the subject.
Review of four backup products, another "eyebrow" article for Linux Journal for October, 2000.
Linux Journal book reviews, including UNIX Backup & Recovery, Oracle Database Administration and A Practical Guide to SNMPv3 and Network Management.
Article comparing Cygnus' eCos embedded operating system with various embedded versions of Linux, Linux Journal for October, 1999.
Contributed the Windows NT/95/98 chapter to Sams Teach Yourself Emacs in 24 Hours (ISBN: 0-672-31594-7), and Windows-specific commentary throughout the book. This is the first book on Emacs which deals with the NT Emacs port of GNU Emacs.
Product review of Arkeia backup software, Linux Journal, April 1999. The vendor liked the review enough to quote it in its entirety on their web site.
I documented Microsoft SDK low level operating system function calls for Windows 2000. While contracting to Microsoft, I was responsible for extending and maintaining the documentation on file system and file I/O, memory mapping, virtual memory and other areas. I also wrote new material for the SDK, covering reparse points, volume mount points, Addressing Windows Extensions (AWE), Very Large Memory (VLM) (now defunct due to Compaq's withdrawal of support for Windows 2000), and other features new to Windows 2000. I added many new code fragments to the SDK, and updated many of those in my area of responsibility. The work was done on Windows NT 4.0 and Windows 2000 using MS Word, NT Emacs, MS Visual C++ and the Windows SDK.
I co-wrote a Microsoft Certified Professional Test Preparation Series book about TCP/IP on Windows NT 3.5/3.51. (IBID Corp.)
I wrote technical documentation about PCI on HP workstations for internal and external hardware and software developers.
While implementing code for a custom network (Alpha), I identified and documented issues that end users would encounter. I then provided work-arounds, including sample code.
I wrote user manuals for a family of SNMP agent management software which runs on three Unix workstations and Windows (Allied Telesyn).
I have had numerous articles in Forth Dimensions, a technical journal for the Forth programming environment.
I have worked remotely for more than 15 years total. I find that I get more work done when I work at home. Satisfied customers include Microsoft, Strand Lighting, Linux Journal, and Ibid.
Worked for the HP PCI program, which coordinated PCI implementation across HP platforms. The program made PCI resources available to HP engineers to speed PCI development and testing. Duties included coordinating classes for engineers, testing PCI cards and drivers on various HP workstations, preparing documentation related to PCI and writing code to simplify the testing.
I coordinated implementation of a network (Alpha), and handled resolution of design issues.
While at Colorado Memory Systems, I defined company policy on OEM sales and software engineering changes for OEM sales. This allowed the company to prepare OEM proposals very quickly. I prepared product compatibility requirements for MS-DOS 5.0 and implemented the necessary changes. This enabled the product to stay competitive. I also headed a team that designed and coded algorithms to correctly handle linked files and directories under Unix. This allow the product to become more competitive.
I identified problems with Maxtor's in-house network and host computers. This allowed better design of the next generation factory floor network. I worked on the design and coding of the hardware to TCP and UDP layers. I also began definition of a next generation hard disk drive testing/burn-in environment.
I taught three classes, Linux, Network Documentation, and Computer Hardware Maintenance, at Northwest College, Powell, Wyoming. I also taught an Introduction to Linux course for Central Wyoming College. I have also taught OpenOffice.org in college classes and for private clients.
I have taught C, advanced C, software project management tools, and Forth programming (Alpha, NWCCD, Rockwell, Forth Interest Group, Maxtor).
I instituted, designed and taught the hardware/software portion of a Computer Repair Technician Certificate program (NWCCD).
I have done technical writing, including user, programmer and other documentation for software (Microsoft, Alpha, Allied Telesyn, Colorado Memory Systems, HP, Maxtor, Rockwell, others).
My engineering support includes invention of several software debugging techniques (Colorado Memory Systems, Rockwell).
I am a member of:
| References available after a job interview. | No clearance work |
|
| << | <
| > | >>
| Welcome
| Software
| Communications
| Classes
| Resume
| Sample Code
| Thomas Jefferson: Patron Saint of the Internet
| Yum Repository Notes
| NFS and Firewalls on Fedora Core
| Netiquette
| NT Emacs Installation
| My .emacs File
| Notes on OpenSSH
| Bare Metal Recovery
| Fn
| Rms
| Dump
| Register
| Atexit
| Graphics Tree Walker
| which.nvidia
| buildiso
| wallpaper2
| gps
| Fedora Gpsdrive RPMs
| Single Source Frames
| Notes
| A Bug Notification
| Helpful Little Paperclip
| Linux on Lenovo R51
| Wyoming Travel
|