|
|
JOSHUA LEHAN
|
|
|
|
|
Summary
|
Software engineer with 7 years experience designing and developing software on Linux/UNIX and Windows. Systematic and thorough, with good attention to detail. Problem solver and team contributor, from design to release. Excellent written communicator, can provide meticulous documentation of own work. Enthusiastic team player and independent worker. Participant in the Open Source community.
|
|
Skills
|
- RFC standards-compliant software
- Linux kernel and user API
- Hardware drivers and interfaces
- Network communications protocols
- GPL and Open Source
- Multithreaded programming
- Client/server sockets
- Documentation
|
- TCP/IP
- C++ and C
- GCC
- GDB and KGDB
- CVS
- Perl
- Shell scripts
- Samba
|
|
|
- Red Hat Enterprise Linux (RHEL) 3.x, 4.x on i386 and x86-64 (AMD64)
- Red Hat Linux 6.x, 7.x, 8.x, 9.x on i386 (Intel IA-32)
- MontaVista Hard Hat Linux 1.x, 2.x on i386 and PPC (PowerPC)
- Linux kernel 2.0.x, 2.2.x, 2.4.x, 2.6.x
- Microsoft Windows 95, 98, NT, 2000, XP
- User of Linux since version 0.99pl14
|
|
Experience
|
Software Engineer
Contractor
|
1/2005 - 6/2007
9/2004 - 1/2005
|
|
|
Penguin Computing, San Francisco, CA (dba Scyld Software)
|
|
|
- Maintained and extended Scyld Beowulf clustering software Linux distribution
- Extended PXE DHCP boot protocol to support multiple Ethernet cards
- Unified boot process by building disk-based PXE using Etherboot and SYSLINUX, simplifying development and testing
- Designed and implemented priority scheme to safely allow multiple head nodes on the same network, a major feature enhancement requested by customers
- Enhanced scalability of open source MPICH MPI library by improving startup fanout protocol
- Provided compatibility of open source LAM MPI library with our BProc software
- Obviated the need for users to supply their own hostfile with both MPICH and LAM, significantly improving customer ease of use
- Documented our full process for bringing up new compute nodes and joining them into the cluster, first time companywide this had ever been done, used to bring new employees up to speed
- Made Linux kernel patch to detect kernel stack overflow, a subtle problem to diagnose otherwise, greatly helping debugging
- Backported new Red Hat SATA drivers into older Linux kernel version, extending sales life of our older product
- Cleaned up legacy PVM support, to keep older customer software running
- Created and supported many internal support tools and scripts
|
|
|
Order Fulfiller
|
1/2004 - 9/2004
|
|
|
Bay Area Amusements, San Jose, CA
|
|
|
- Transferred customer order data from website to warehouse receipts
- Filled out postal shipping forms for international customs
- Identified pinball parts in warehouse storage
- Gathered and carefully packed those parts into boxes of appropriate size
- Shipped boxes via USPS postal, UPS, and FedEx
- Accepted delivery of incoming parts shipments into warehouse
- Updated inventory counts for parts on website
- First fulltime employee of this small business
|
|
Experience
|
Software Engineer
|
3/2001 - 6/2003
|
|
|
Adaptec, Inc., Milpitas, CA (acquired Platys Communications 10/2001)
|
|
|
- Helped develop reference Linux drivers for Adaptec ANA-7711 TCP Offload PCI card, containing hardware-accelerated TCP/IP stack
- Ported driver from Intel to big-endian PowerPC architecture, helping team complete VxWorks port, solving customer need
- Wrote driver installation script in Perl for Red Hat GUI users
- Assisted with simulation and driver bringup on initial ASIC, developing testbed server
- Debugged and optimized Linux kernel modules, using KGDB and GDB, increasing robustness and performance
- Instrumented driver, gathering and reporting SNMP MIB-II statistics, meeting customer requirement
- Qualified and tested driver handling of TCP connections
- Communicated with outside vendor to debug Gigabit Ethernet autonegotiation issues and coordinated fixes
- Configured reference implementation of driver via Linux proc filesystem API
- Maintained patched TCP/IP stack and Linux kernel
- Documented instructions and build procedures to inform and teach others
- Acted as company-wide point of contact for certain issues
|
|
|
Member of Technical Staff, Software
|
6/1999 - 2/2001
|
|
|
Splash Technology, Inc., Sunnyvale, CA (acquired by EFI)
|
|
|
- Designed and implemented architecture for integration of network print server software packages into overall Linux printing engine
- Developed an RFC 1179-compliant LPR server in C++
- Integrated software from outside vendors
- Patched the Linux kernel, increasing performance
- Modified Open Source software and released changed code back to the Open Source community
- Installed Ethernet and Token Ring networks for testing
|
|
|
Software Engineer (internship)
|
6/1996 - 6/1997
|
|
|
Compression Labs, San Jose, CA (acquired by VTEL)
|
|
|
- Designed and implemented support software for Windows 95 videoconferencing system
- Programmed with Microsoft Visual C++ using Winsock, the Windows GUI, and the Win32 API
- Used Microsoft Visual C++, Developer Studio, Visual SourceSafe, and SoftICE
|
|
Education
|
California Polytechnic State University, San Luis Obispo
|
|
|
Major: Computer Science (B.S.)
|
Graduated 12/1998
|
|
|
London Study Program, Spring 1998
Dean's List, Winter 1998
Dean's List, Fall 1994
|