Post Job Free
Sign in

Manager Software

Location:
Houston, TX, 77058
Posted:
March 09, 2010

Contact this candidate

Resume:

William N. Halchin

***** ***** **** ****

#***

Houston, TX 77058

281-***-****

abnuu5@r.postjobfree.com

EXPERTISE

C, C++(including C++ templates), Visual C++, STL, design patterns, OOD via UML, VB(Visual Basic), POSIX API, Win32 API, Windows NT System Service, UNIX (AIX, UnixWare, Solaris, HP-UX,

Linux), Windows, RTOS’s (LynxOS, QNX, ThreadX), 2000/2003, Unix/Linux & Windows 2000 device

drivers, multithreaded applications (pthreads, Win32 API threads), debuggers (Crash, gdb, dbx, kdb,

WinDBG), internationalization, TCP/IP socket programming, servers, Multicast IP, MFC, XML (XML

DOM API), IPMI, ISA and PCI buses, Haskell.

RESUME SYNOPSIS

1) Device drivers:

- Wang Labs => LynxOS ( a real-time POSIX-compliant OS for an embedded product)

- Intecom => LynxOS

- Harris Computer => System V4 (basically Unixware)

- Boston Technology => UnixWare and Windows NT

- Brooktrout => Unixware

- Pillar Data => QNX (a real-time OS for an embedded product)

- OSA Technologies => Linux and Windows 2000/2003

-- both drivers are shipping on AMD's new 64-bit server boxes

-- the Windows 2000 driver that passed Microsoft's WHQL certification test suite

- Syracuse Research Corp. => QNX (RTOS)

2) Real-time/Embedded

- Wang Labs => LynxOS ( a real-time POSIX-compliant OS for an embedded product)

- Intecom => LynxOS

- Brooktrout => Unixware

- PillarData => QNX

- Syracuse Research => QNX

3) Driver libraries:

- Brooktrout (UnixWare)

- OSA Technologies (POSIX API on Linux and Win32 API on Windows 2000)

4) Socket programming (server development)

- Hotmail

- Radiant

- HPSS (IBM)

5) Mulithreaded applications/libraries

- Hotmail (POSIX threads and Win32 threads)

- Brooktrout

- Radiant (POSIX threads)

- OSA Technologies (Win32 threads and POSIX threads)

- HPSS (IBM)

6) XML

- Radiant Software (used XML as a wire protocol)

7) C++

- Boston Technology

- OSA

- Ford

- Syracuse Research

8) Porting/reverse engineering

- Infiniband stack (Pillar)

- node health server(Hotmail)

- Proprietary comm stack internals document (Nortel)

9) Security/cryptography

- Ford Motors, HPSS

10) fluent Mandarin Chinese speaker

11) I also have deep interest and knowledge in areas other that low-level development: mathematical logic,

category theory, functional programming languages. I have some writing proficiency in FPL Haskell.

A reviewer of the forthcoming O'Reilly book "Real World Haskell" (

http://www.realworldhaskell.org/blog/)

wrote Haskell FFI (foreign function interface) bindings for the Posix real-time extension

http://hackage.haskell.org/cgi-bin/hackage-scripts/package/posix-realtime

CAREER GOALS

I am looking for a small and dynamic work environment where I can leverage my kernel and low-level

application development skills while breaking into new technology areas. I would also like to be able to use

my ability to speak Chinese.

WORK EXPERIENCE

Weatherford (http://www.weatherford.com) 2/2009-Present

- using device driver writing skills to validate the correctness of firmware running in down hole

sensors (oil/gas drilling) using Microsoft VB. Internally the sensors mostly used SPI to talk

between multiple processors within a sensor. After hours I am working on getting

http://www.ninebynine.org/RDFNotes/Swish/Intro.html to build in http://www.haskell.org new

environment.

Bio Informatics Project 12/2008-2/2009

Implemented a 2Bit library in functional language Haskell(http://www.haskell.org)

Dell Computer 9/2008-10/2008

Working on library written in C++ for the Change Management team

Interfacing with IPMI

Hewlett Packard 12/2007-3/2008

- Member of disk array firmware validation team.

- Software written in C++

Linux 2.6 and C++

IBM HPSS Collaboration 3/2006-8/2007

- HPSS developer (http://www.hpss-collaboration.org/hpss/index.jsp)

- Was member of a team writing a Linux file system (implemented similar to NFS client/server model).

This file system provides a POSIX I/O API client to the HPSS storage system. Implemented as a

Linux loadable kernel module and a application space daemon.

- currently member of a team writing a “glue layer” between IBM’s GPFS and HPSS. HPSS will used as

a storage backup/restore for GPFS.

- Linux 2.6 and AIX

Radisys Inc. (Des Moines, IA) 11/2005-3/2006

Software Contractor

- wrote boot-time OpenIPMI (http://www.openipmi.org) bash scripts for an ATCA chassis

- worked on Linux watchdog daemon

IBM Austin 6/2005-9/2005

Software Contractor

Chief product: IBM containers project

- Added new functionality(commands) to kdb (the kernel debugger)

- Added new functionality to snap (a customer diagnostic tool)

Syracuse Research Corp. (Syracuse, NY) 2/2005-6/2005

http://www.syracuseresearch.com

Software Contractor

Chief product: embedded and real-time software running on a portable radar

- trouble shooting real-time thread starvation problems in current radar software. Advocated tighter

coupling between two cooperating processes to make solution more event driven and hence

reducing starvation.

- analyzing and documenting the design of the current radar software (for a future implementation)

- the dynamic behavior of cooperating processes constituting the radar software was not well

understood. I advocated using the QNX instrumented microkernel, tracelogger and the System

Profiler editor. I succeeded in building a boot image containing procnto-instr and using the

System Profiler editor to provide empirical data to analyze the radar system’s dynamics.

Technologies used: C++

Platforms: QNX 6.2/6.3

Ford Motor Co. (Dearborn, MI) 9/2004 – 2/2005

Software Contractor

Chief product: Ford-internal single login software product for various Web servers (IIS, Apache, iPlanet)

- Designing and implementing (in C++ ) components of a Web server agent using doxygen and

UML, e.g. cryptography subsystem, command line utilities, etc.

- Designed and implemented a subsystem in C++ to provide crypto services (implemented using

RSA's CyptoC and CertC libraries)

- Designed and implemented a Microsoft IIS ISAPI extension to do security authentication via

RSA's ACE library.

- Designed a set of C++ classes for generic command line utilities

Technologies used: C++, STL, UML, design patterns, RSA cryptography libraries (CryptoC 5.1 and CertC

1.0.2)

Platforms: Win2000/XP, Linux, Solaris, AIX, HP-UX.

OSA Technologies, Inc. (San Jose, CA) 7/2002 -8/2003

http://www.osatechnologies.com

Software Architect

- Chief product: IPMI software

- Personally designed all software in a “clean room” environment from IPMI 1.5 spec.

- Personally designed and wrote a Linux driver and a Windows WDM device driver for inband

IPMI supporting the KCS System Interface (also implemented ~70% of BT System Interface)

- Implemented parts of the BMC-side of the KCS System Inferface in ThreadX.

- Wrote a shim loadable module for the IPMI Linux driver so that Linux driver binary could be

distributed with aribitrary Linux kernel configurations.

- Personally designed and wrote an IPMI PCI driver for Linux and Windows.

- Used WinDBG when necessary to debug the Windows driver.

- WDM IPMI driver passed WHQL HCT tests

- Personally designed and implemented two multi-threaded IPMI libraries (implemented against the

POSIX API and the Win32 API) in C++.

- Important note: most of the driver code and all of the library code was written in an OS-

independent (for Linux and Windows) fashion to keep maintaince cost low and to aid in future

extensibilty.

- Delivered 3 IPMI drivers to customer (all 3 accepted by the customer - AMD).

- Wrote a DOS “driver” for IPMI utilities to use.

- As fluent Chinese speaker, worked in Taipei, Taiwan with our IPMI firmware team to resolve

firmware problems.

- Linux kernel usage: kernel_thread, memory management, synchronization primitives, timers

Pillar Data Systems, Inc. (San Jose, CA) 10/2001-7/2002

Principal Software Engineer

- Leading champion for QNX OS which was the ultimately adopted company OS.

- Designed and wrote an hardware sensor API (i2c, gpio, etc.) for a series of QNX resource

managers (device drivers)

- Read through a hypercube interconnect driver (hypercube was considered as a possible

interconnect technology)

- After extensive reading of the Mellanox Infiniband Gamla SDK, wrote a Reimplementation

Specification detailing how to reimplement the Inifiniband protocol stack on QNX (a microkernel

OS) from Linux

- Ported the Gamla SDK to QNX from Linux which included designing and implementing a QNX

Neutrino resource manager (device driver)

RADIANT SOFTWARE 6/2000-6/20001 (Employee)

Senior Software Engineer

- One of two principal software engineers in the company

- Sole architect and implementer of a server that supports

failover and advertisement of presence.

- Project leader for this project with one junior engineer

.

- SAN Management Server characteristics:

- One master and several slave instances

- Designed the server/client applications layer protocol and documented using BNF grammar.

- Chose XML to represent messages sent between server instances and client software (I choose XML

because the servers talk to device driver's via ioctl and receives back very structured data

that needs to be marshalled and sent over the wire and thus, XML's ability to represent

structured/nested data is critical).

- Wrote a marshall/unmarshall library in order to send primitive data types and structured types (data

from device ioctl) over the wire in XML, i.e. the marshalling routines build XML elements and

the unmarshalling routines walk a DOM tree on the receiving end). This library also had the

effect of hiding DOM tree walking.

- Designed and implemented a watchdog timer object.

- Designed and implemented the notion of leasible resources on server side.

- Uses multicast to advertise the presence of server instances and also to allow a client

to discover the Master server.

- Multicast is also used to provide failover if the Master server dies and slaves must

unambiguously pick a new Master amongst themselves

- A "distributed" finite state machine that is used to handle arbitration

- Used Xerces XML DOM API.

- Wrote C++ class to hide some parts of XML DOM API and also provided methods to extract

important nodes in a DOM tree.

- Current status - our client GUI program is running in a distributed manner with my server cloud.

- Targets: Linux, Solaris, IRIX

NOTE: From 5/98 backwards, I was a software contractor.

MICROSOFT/HOTMAIL CORP., San Jose, CA 2/99- 6/2000 (Employee)

5/98-2/99 (Contractor)

キ Personally designed and implemented a multi-threaded Win32 API server (a node health server)

using MFC in the Visual C++ IDE. I captured the Server/client protocol as a BNF grammar rules

and put as a comment in the code for future maintainers. Wrote this server as an NT System

Service that interfaced with SCM (Service Control Manager).

As a member of the Microsoft Messenger development team, personally designed and

implemented a multi-threaded (pthreads) TCP client/server that also supports multicast IP. This

Client/server is responsible for providing load-balancing Services.

MCI, Richardson, TX 8/98-10/98

- Redesigned and implemented a server to make it a multithreaded server (using Pthreads).

- Some exposure to SNMP (agents, MIBs).

NORTEL, Richardson, TX 8/97-1/98

キ Wrote detailed internals document describing a proprietary communications protocol implemented

as a Solaris Streams driver stack (e.g. packet fragmentation, packet re-assembly, connection-

based, connectionless, etc.)

- Fixed Streams bugs

BROOKTROUT TECHNOLOGIES, Needham, Massachusetts 5/97-8/97

- Designed and wrote functional spec for a platform-independent device driver API

- Implemented device driver multi-threaded API for UnixWare

- Designed and implemented an SMP UnixWare driver for voice board

BOSTON TECHNOLOGY, INC., Wakefield, Massachusetts 11/95-4/97

-Design, implemented and tested COM/OLE component to provide High Availability RS232 services

on NT platform (Win32 API)

-Designed and implemented an NT kernel device driver to control hardware watchdog timer

-Added new functionality to a Unix voice driver controlling a Dialogic voice board

-Wrote Winsock client-server for testing Ethernet card performance

-Chinese-speaking R&D liason to Chinese customer in Shi Jia Zhuang, China

HARRIS COMPUTER SYSTEMS, Ft. Lauderdale, Florida 3/95-9/95

-Ported single-processor floppy driver (that controlled National Semiconductor Super IO controller) to

an SMP platform (PowerPC)

-Ported DMA controller software

-Fixed NFS (kernel) bugs

SAS, Inc., Chicago, IL 1/95-3/95

- Worked on 4GL-to-C translator

WANG LABORATORIES, INC. 7/93-12/94

Product: Optical Disk File System (residing outside the kernel)

-Project Leader in charge of internationalizing file system

-Designed and wrote a path parser that parsed based on locale

-Wrote wrappers for multi-byte functionality missing from the standard C run-time library on two

Unix platforms

IBM 10/91-6/93

Dallas Software Vendor Porting Center, Dallas/Austin, Texas

Responsibilities: As member of AIX Internals consulting team, assisted vendors in their efforts to port

system software, e.g., device drivers, file systems, etc. to AIX.

Areas of the kernel conversant in:

-Logical Volume Manager (specifically Logical Volume Device Driver)

-Logical File System

-Journalled File System

-CD ROM File System

-Virtual Memory Manager

-Various production device drivers, e.g., CD ROM driver, tape driver

-Various configuration and change methods

-Analyzed system dumps with the Crash utility

-Wrote TCP/IP socket client/server

INTECOM, INC., Dallas, Texas 3/91-9/91

-Developed a Unix device driver (Lynx OS) for a TTY device, providing virtual windows

WANG LABORATORIES, INC. 7/90-2/91

-Developed Unix device driver to control Jukebox robotics

-Converted a DOS application into a Unix curses application

INTECOM, INC. 4/90-6/90

-Ported GNU GDB debugger to Wang VS running Lynx OS (a real-time Unix)

-Modified Lynx OS kernel (memory management) to support debugger (trace system call)

WANG LABORATIORIES, INC. 7/89-3/90

-Designed, implemented and tested Unix device drivers for

disk (supporting async i/o via ioctl) and

streaming cartridge tape

-Ported Unix tools, e.g., fsck, mkfs, etc.

-Participated in planning of porting process

EDUCATION

Master of Science (Physical Chemistry)

University of Wisconsin (many graduate math courses, e.g. topology, measure theory,etc.)

M.S. resaerch done in http://www.chem.wisc.edu/tci/pchemtci.html

Bachelor of Science (Chemistry)

Kent State University

AREAS OF ADDITIONAL INTEREST

- Category and Topos theory (in particular applications to computer science)

- Constructive mathematics

- Functional languages (Scheme, Haskell, Erlang) & rewriting systems

- Grid computing

- A reviewer of forthcoming O'Reilly book "Real World Haskell"

(http://www.realworldhaskell.org/blog/)

SPECIAL SKILLS

Speak and read Chinese fluently

Basic knowledge of Russian

PROFESSIONAL ORGANIZATIONS MEMBERSHIP

European Association of Theoretical Computer Science (EATCS)



Contact this candidate