Summary: Senior Team player, able to fit-in to any situation, extensive experience working in many different environments, from successful start-ups (many have gone public or been purchased) to large corporations. Technical Summary: Experience in: Device Drivers (Linux, Unix), Unix Daemons, Kernel (Linux, Unix), Sockets & Streams, IPC (pipes, signals, shared memory), Applications, I/O Subsystems, hardware simulation and verification, embedded firmware, communications (Linux, Unix, Vax, MVS, Windows), Gateway, ATM Network, Cellular Networking & wireless communications, RPC/XDR (Unix, MS-Windows, MS-DOS), Web Programming, OOD/OOP, Client/Server Networks, Multiprocessors (both MPP and SMP), Network Design, MFC (GUI), SCSI, SAN, fibre channel Hardware: Sun, Dec, Alpha, Intel, i960, Merced, Itanuim, Motorola, Silicon Graphics, Next, Amdahl, Hewlett-Packard, Pyramid, Sequent, Multiprocessor computers, Ethernet, FDDI, ATM, CDPD, UNIX (V.4, V.3, UTS, BSD, SunOS, Solaris, Interactive, OSF/1, Solaris, HP-UX, Linux, FreeBSD, AIX), SCO, CTIX, NeXTstep, Mach, IRIX, DOS, Windows, NT, 95, 98, DDK, pSOS, Plan9, VX-Works, LynxOS Protocols: NFS (UNIX, MS-DOS, MVS), TCP/IP (internals), UDP(internals), Ethernet, Mac, TIRPC, RPC, XDR, SNMP, OSI, CLNP, TP4, LAPB, MDLC, LAPD, HDLC, SDLC, X.25, Frame Relay, SNA, ftp, tftp. Communications layers: Application, Presentation, Transport, Network, Data Link, Mac Languages: C, C++, Visual C++, Java, HTML, Codewright, Assemblers (Pyramid, INTEL, Motorola, DEC, sparc), sh, csh, ksh, make, SCCS, CVS, perforce, awk, sed, REXX, Perl, Python, expect, gdb, kgdb, kdb, valgrind, lkcd, cmon, gmon Work Experience: August 2004 – date contracts/temp work in San Diego Magna Forte – Project Leader/Architect Embedded Linux System audio mixing system, port to Nokia n800 palm. Design and architect the whole system PHP, XML, LAMP Global Imaging Fix linux kernel bug Mushroom Networks Distributed wi-fi, Debian linux kernel, lockstat, kerneltop, readprofile, dstat and oprofile, iptables, 802.11 protocols. Arm, ucLinix, embedded, minicom, bringup, build tool chain, cc, build romfs etc. La Jolla Networks Develop FreeBSD device driver (data-link layer) for new wireless (Wi-BUS) hardware. Angstrom Microsystems, design and write a 2.6 shim distributed nfs, file system used was SuSE 9.3,10.0, debug with UML (user mode linux – virtual linux os similar to Vmware, or xen). Set up virtual networks, on one machine. Peer to peer but on NFS and in the kernel. Do project completely from conception to completion. ILTS –port small application from windows to linux (weekend work) BMS, write and design a Linux network driver (Fedora 3,Fedora 4,2.6), this provides a method to broadcast MPEG files and standard network commands via Wireless Microwave Network, DVB. Linux Network kernel, IP interface internals. PCI Hardware interface, Building kernel, 2.6 network systems admin, TCP/IP, routing tables, NAT, ip route, iptables, Dynamic DNS, DHCP, ip tunnel ,tcp tuning. Do the configuration via /proc files. Set up EVDO with cardbus on linux for return \wireless channel. Debug driver via kgdb and lkcd. Use tcpdmp and ethereal for debugging network. Developed both the Base Station and the mobile. TCP/IP and UDP. Product became Winner of 2006 3G A-List Awards Technical Innovation Category. Www.qualcomm.com/enterprise/pdf/alist06_bms.pdf Product was done from a very a very loose specification to qa and demonstration in Las Vegas. Verimatrix, add AES encryption to DRM (Digital Rights Management) product Server and Settop, integrate parts of Openssl. Deepnines, Multi-threading in linux NIDS system, gmon, cmon, valgrind September 2002 – August 2004 Symantec Redwood City - permanent Senior Principal Software Engineer Develop Host Intrusion Detection System (HIDS), design and write intrusion shim device driver for Linux (kernel, device driver). Hook system calls and do Process Blocking, set up and supervise (design) AIX, Solaris and HPUX kernel projects, to port the Solaris driver, do reverse engineering on HPUX, AIX. Do lot of work on vnode and file systems. Port kernel driver to Linux (RedHat) and use kgdb for debugging Design the file, allowing least performance degradation with maximum security. Design and implement buffer overflow protection in the kernel. Architect the Solaris/AIX/HPUX/Linux HIDS system. Design automatic test of HIDS package. Linux SMP (kernel). Design File and Process Blocking. Mentor Junior engineers. Stack, heap and libc buffer overflow in userland. Use Perforce for source control. Some work done in Windows .NET, C++. C++ on Linux 2.6. Dynamic libraries in C++. Linux 2.4 and 2.6. 64 and 32 bit. Multiply releases from specification and patents to qa/product release. Nov 2000 - Sept 2002 Entercept Security (McAfee) Santa Clara - permanent Unix Kernel Developer ? Develop Host Intrusion shim Detection System (HIDS), to harden an OS ? Solaris kernel (mutex) set up debugging tools (gdb, ksld_kadb), ? Do Linux kernel port. Convert Solaris kernel security device driver from 32 bit to 64 bit (2.7, 2.8, 2.9). This involved many modifications to the core kernel, system tables, ioctl etc. ? File/directory protection, buffer overflow, this was done in loadable module. This product would both prevent and record Hacker attacks (Intrusion protection). ? Use gdb to debug the Solaris applications and Linux (RedHat) kernel. ? Help make common source solaris/64/32/Linux. ? Profiling (lockstat) for performance tuning and finding bottlenecks in system. ? Login security (PAM). ? Process chains in the kernel, using vnode/inode and proc structure ? Assembler stack manipulation ? Develop kernel security system for HP-UX 11.0 (use q4), Have to figure out many ? HPUX internals without the source code (reverse-engineering). Stack traces, memory protection. Full absolute path, vnode, and lookup, get user pc from kernel, memory allocation in kernel. ? Kernels threads and multiply re-entrant processes. Mutex and kernel locking of global data. ? Buffer Overflow Prevention (memory management). ? Multiply releases from specification and patents to qa/product release. Contract Work: 1991 – 2000 in N. California July 2000 - Nov 2000 Nishan Systems (McData) - Contract Port SCSI storage gigabit fiber channel device driver (SAN) to Linux (2.4) from windows, set up. Make much of the code common between windows and Linux. Use gdb, serial line debugger to debug driver, need to modify lifo, step though the kernel. All work done on PC (x86). Loadable module (insmod). Different way of putting Networks into SCSI. Memory Management (mmu). Virtual memory. Completely ported product to linux. June 00 - Nov 00 NT&T - Contract Set up and design wireless (802.11b) router on Linux (redhat), write perl scripts for network management. Oct 99 - July 00 Nokia (IPRG) Internet - Contract Design and implement SNMPv3 system, on FreeBSD, Design Web based Security. Port all the MIBS to SNMPv3, modify the user interface to be compatible with the Nokia one, Internet routing group. Enhance UCD SNMPv3 for the Nokia FreeBSD system, design whole project completely. Multiply projects. May 00 - June 00 Resilience - Contract Design and implement Linux Fault Tolerant Computing, Ethernet Interface. /proc interface, use gdb to debug kernel (device driver). Work was done on 2.4 linux (pre-release). August 99 - Oct 99 Jetstream Design and implement High Availability embedded system in LynxOS (Unix based real time OS) for VoDSL. (VOIP) Do checkpoint. May 99 - Sept 99 ISD/IBM (Lynxworks) Port a SCSI disk driver to Solaris (DDI) and HPUX from AIX. Use gdb to debug Solaris driver (2.6). April 99 - June 99 DynaChip Write Linux 64 bit PCI device driver, port driver to Solaris, using DDI. March 99 - April 99 Optical Networks Evaluate Object Orientated Database Jan 99 - March 99 Aptix Develop prototype system to work with Logic Analyzer. Develop ASIC, diagnostics package that run on HP logic Analyzer. Work was done on Solaris in C++. Nov 98 - March 99 Clairvoyant Software Write remote monitoring system using Perl, C++, SNMP, and system ran on Linux. Oct 98 - Jan 99 Technical Elite (Hifn) Write state based RMON/SNMP for embedded agent (RTOS), protocols implemented IP Fragments, SunRPC, Novel, IPX/SPX/SAP and HTTP, Windows,Unix RTOS. Port test environment to Visual C++. Sept 98 - Oct 98 International Network Services Produce a small RMON Monitor application in MFC,VC++ and SNMP++ to run on Windows 95. Dec 97 - Sept 98 Wytec Work on embedded wireless Settop box, ATM in VX-Works RTOS on Intel platform, development system Windows/NT and tornado. Port ATM Stack to VX-Works, Design and implement Network Management in SNMP/ILMI and BSP. Nov 97 - May 98 Intel Work on MERCED (IA-64, itanium, 64 bit Intel), compiler optimization, Work was done on Windows/NT with Visual C++, Multi-threading and Perl. Instruction architecture, tools engineer. Aug 97 - Oct 97 Veritas Year 2000, Firewall integration with High Availability Server, Work with Solaris threads. June 97 - Aug 97 Acuson Port Acuson embedded SCSI driver to current version of LynxOS RTOS. May 97 - June 97 Northern Telecom System Admin on Solaris May 97 Scientific Software Debug, fix and test Windows/NT/95 Device Drivers May 97 Meeker Group Systems Admin on Solaris March 97 - Apr 97 ISD/Greystone Peripherals/Menagery Develop interface on PCMCIA bus between embedded VX-Works RTOS and Windows/95 driver, Development was done on Windows/NT Jan 97 - Apr 97 ISD/Technically Elite/Gigalabs (Hifn) Port (Hifn) RMON SNMP to i960, development was done on Windows 95 and embedded RTOS system. Sept 96 - March 97 Auspex Develop part of fault-tolerant NFS system, quotas, and Perl script, multicasting. Sept 96 - Oct 96 ISD/Technically Elite/Hitachi (lynxworks) Ported RMON SNMP to embedded VX-Works RTOS, on Hitachi June 96 - Aug 96 WebXchange Develop Web transaction program in Java, VC++ on Windows NT. June 96 - July 96 Axil Computers Implement Patches on Solaris Kernel. June 96 KLA Solve problem with inetd Jan 96 - Aug 96 Hewlett-Packard Port debugger to 64 bit hardware, Multi-Processor, Networking, TCP/UDP/IP internals, Develop Embedded Ethernet Device Driver, bootp, RIP, tftp, rarp, on HP RTOS. Hardware bringup. Nov 95 - Feb 96 Sun/Arbor Port a database package (essbase), from Visual C++ (Windows) to Solaris. Oct 95 - Nov nCUBE Design striped files (raid) in MPP system. Oct 95 - Nov Sun Enhance ATM Device Driver for Video on Demand (MPEG). Use kadb to debug. March 95 - Sept 95 Photon Dynamics Modify drivers for ATE, Design RS232 interface for Robotics and X-Windows, diagnostics, system was done on Sun. Jan 95 - June 95 Sun Develop Enterprise client-server system using RPC, Solaris, HP-UX, AIX, and ULTRIX. Make product into package. July 94 - Dec 94 Amdahl (Fujitsu) Develop Systems Admin client-server application using C++, Visual C++, RPC, Novell, Solaris and DOS, Windows. Sept 93 - June 94 Kubota Graphics Simulate Hardware. Use TCP/IP, RPC, write graphics device driver on OSF/1, Alpha. Modify Kernel. Rebuild Profiling Kernel. Context Switching, Memory management, DMA. June 93 - Dec 93 Signal Science Cellular base station (CDPD) design and implementation. Wireless communication. TP4, CLNP, MDLP, TCP/IP, X.25, LAPD, Frame Relay. This was all done with byte-based sockets (SOCK_STREAM). March 93 - June 93 TRW Financial Systems Network design. Evaluate ATM/FDDI/Fast Ethernet vendors. Develop tests for TCP/IP, UDP and NFS, Write file system utility, performance analysis. March 93 ZD (Ziff Davis) Labs, Verity, Data Storage Systems General UNIX Consultancy, fix bugs, enhancements etc. September 92 - March 93 System Industries Hired sub-contractor and put together a consulting team to design and implement a tape Librarian robot system on a SUN IPX. Write streams device driver for Legato Networker. Jan 92 - Nov 92 Aurora/CMX Solved NFS speed problems, Fixed many bugs in SunOS paint program. Ported UNIX drivers, Ported paint program from Silicon Graphics (Mips) to pSOS. July 92 - Aug 92 NeXT Computers (Apple) Port serial device driver to 486 from 68000. OS was NeXTstep(Mach). July 91 - July 92 Amdahl computers (Fujitsu) Designed and implemented TCP/IP client/server network connection to a real time UNIX Port windowing package to UTS and develop RPC network. April 91 - June 91 International Computers Limited (Fujitsu) TCP/IP, Ethernet on UNIX V.4 (486 computer) Permanent Work: Feb 88 - April 91 Siemens Nixdorf Information Systems Inc Network layer and portions of transport layer for OSI/OSI-like, streams GATEWAY on 486 UNIX V.4 system. Wrote streams based module. Kernel modifications. Analyze and fix many Kernel crashes in areas of interrupts, priorities, overwriting memory, inodes, I/O subsystem etc, on a RISC based multi-processor computer. Wrote Daemons to monitor the device drivers, Wrote DLPI network device driver with streams. July 87- Jan 88 Aydin Radar Designed and implemented systems architecture and the HDLC I/O processor link with the radar. Oct 86 - July 87 Bridge (3Com) Communications Enhancements and support to a VAX/ETHERNET. Oct 84 - Oct 86 Equatorial Communications Co Develop Satellite network, HDLC (X.25 project). Implement all protocols in firmware. Feb 82 - Oct 84 Motorola/Four Phase Develop internal software tools, including the design of a UNIX based cross assembler, Sept 80 - Jan 82 Schlumberger, England Develop a real time operating system RTOS. June 78 - Sept 80 SPL Research Dept, Oxford, England Develop an ADA like compiler. Education: Bachelor of Science with honors in Computer Science, Sheffield University (2nd in class), England, 1978 Advanced certificate in Computer Science awarded by Oxford University Aylesbury Grammar School (400 year old High School), England Patents: Detecting heap and stack execution in the Operating System using regions. – Pat pending Kernel patent developed on linux, HPUX and AIX Controlling operations to current or future files/directories or a process – Pat pending Kernel patent developed on linux and Solaris applies to all systems with virtual file systems Statutory Invention Registration (With USPTO): Method for intercepting specific system calls in a specific application, from applications space for security – pending (serial no. 10/956,716) Developed on Solaris applies to all systems with gdb, in particular linux, Solaris and AIX.