Daniel F. Smith
San Jose / Santa Cruz CA ______________________________ ____________________________ Ph.D. M.A. B.A.
High performance optical storage Senior Software Engineer, IBM Research, 2014–2019
Microcode software lead, architect and programmer for new design high-performance robot cloud object
storage system. Developed Linux kernel modules, real-time hardware control, and design of a framework
(with new sensor specification language) to accommodate ever-changing hardware design. Architected
cloud-directed erasure code and object storage with team. Developed interactive graphical presentation of
results on browser. (C, TCM/iSCSI, bash, git, Doxygen, Javascript/D3, servo control, 3ph motor
control.)
High performance tape proof-of-concept Senior Software Engineer, IBM Research, 2011–2014
Microcode software lead, architect and programmer for ground-up design of robotic autonomous tape
transport system. Radical new design concept required new controller boards and hardware for tape spool
transport. Specified and designed with team in pre-tests, resulting in complete robot system delivering 30x
speed of existing systems. (AM335x SoC, PCB, C, assembler, DSP, bash, git, python, Doxygen, servo
control, 3ph motor control, Bluetooth, camera control, supercapacitors, high current power control,
Li-ion.)
NAND flash workhorse design Senior Software Engineer, IBM Research, 2008–2010
Deigned test-bed and tested NAND flash chips to identify qualification parameters for use in enterprise
storage systems. (C, SCSI, USB, sensor/environmental monitoring.)
Next-gen RAID Senior Research Engineer, IBM Research, 2005–2007
Lead design and programming for P+Q+R RAID system with automatic load-balancing, healing and
expansion. (ECC, C, high-speed TCP/IP.)
Erasure coding and simulation Software Architect, IBM Research, 2002–2005
Design of codes, and integration into operating systems. Simulation of failure domains. (ECC, Windows
DDK, C, C++, wxWidgets.)
iSCSI Advisory Software Engineer, IBM Research, 1999–2002
Prototyped, designed, benchmarked and published iSCSI. Implemented first iSCSI initiator as both Linux
kernel module and Windows device driver. Implemented first iSCSI targets on Linux. (C, Windows DDK,
Linux kernel, FPGA, TCP/IP, RFC.)
HDD Visiting Scientist, IBM Research, 1997–1999
Developed and published software to control IBM (later HGST) hard disk drives. (Windows DDK,
VxD.)
High density credit card Ph.D., University of Plymouth, 1993–1997
Developed new hardware, codes and modulation scheme to increase capacity of magnetic stripe on credit
card by 100x. Also designed and deployed ISP system using satellite backchannel. (PCB, DSP, Windows
NDIS, Linux kernel, MR heads, ISA card.)
Physics and Theoretical Physics B.A., M.A., University of Cambridge, 1990–1993
Developed hardware and software to measure pulsar frequency to 6 significant figures on radio telescope.
(C, assembler.)
Nuclear power plant Intern, 1989, 1990
Database equipment tracking, intercom design and deployment, threaded thermocouples into the reactor,
safety relief valve testing and qualification.
Activities and awards
36 U.S. patents. IBM Outstanding Achievement for iSCSI (2002). Treasurer for non-profit 501(c)(3)
(2008–2013). American Cancer Society award for Excellence in Volunteerism (2008).
Hobbies
Telephony, concert recording, design of recording equipment, photography, electronic repair, timekeeping,
photography. Motorcycling. Amateur radio repeater operator. Performing opera.
Daniel F. Smith
Ph.D. M.A. B.A.
___________ |
Felton, CA 95018 |
https://devdot.dev |
____________ |
_____________ (mobile) |
IBM Almaden Research Center |
650 Harry Road E2–442 |
San Jose, CA 95120 |
dfsmith@us.ibm.com |
+1–408–927–2072 |
Got an idea? I’ll make it real. An experienced senior engineer and architect; equipped to prototype and develop cutting-edge projects over the full compute stack from electronic hardware to user software control.
20+ years experience as a research engineer and architect, centered around storage systems, robotics, servo control, and networking.
Physicist by training, with a solid grasp of the physical, statistical and mathematical world.
Embedded systems, networking, Linux/Windows drivers, prototyping, circuit design, user control-interface and information presentation.
36 U.S. patents (80+ total worldwide).
Developed the first iSCSI prototype targets and initiators and wrote the original specification (now RFC 3720).
My language of choice is straight C, with bash as glue, built with make, stored in git, Doxygen added, supplemented with LATEX, running on Linux. However, I am comfortable in many systems and languages, and pick up new idioms very easily, from tiny microcontrollers to big distributed and mainframe systems. I am the person that people in the lab come to when they have questions.
Delivered projects in Python, C++, Javascript (with CSS/HTML), assembler (ARM, DSP), gnuplot, and device drivers in Linux and Windows.
Libraries and protocols: SCSI, TCP/IP, Ethernet, USB, SATA, SPI, , TLS, HTTP, SMTP, Atom, Arduino and Espressif.
Hardware experience designing circuit boards, can set BGAs and rework SMDs of all sizes. I have built 3-phase motor control servo systems from the ground up.
I love making gadgets and repairing things. I get my energy through systems that work, flawlessly, for years on end, with no maintenance, even when abused, possibly with very heavy boots. When on a project, I will go to incredible lengths today, in order to avoid headaches tomorrow. A discovered fault in any code puts me on a single-minded quest to fix it. Personal professional motto: “Don’t skimp.”
____________________ Résumé of employment ____________________
IBM Research, IBM Almaden Research Center, San Jose, CA
During my post-graduate work, I visited several companies in the magnetic recording business. Of those places, I chose IBM because it had the untidiest labs, and hence did the most real work.
—2014–present: Senior Software Engineer; Cloud Data Architecture. Robotic active archive.
Our team built a very high performance robotic Blu-ray disc (BD-XL) storage system on my hardware/software servo platform, and made it resilient as an cloud object store. We collaborated with a Japanese company to produce a system designed to compete with disk, and still recover the data from 6ft of floodwater.
—2011–2014: Senior Software Engineer. Robot cars!
Tape storage has a problem: it’s slow for random access. We designed a high-performance semi-autonomous robot car as a demonstrator of several new technologies and possible product. The vehicle (about 6 inches long) could accelerate over a plane at about , and deliver any tape (diameter of a quarter) to a high-speed tape unit, running a request-to-data cycle time of about 10 seconds, compared with 300 seconds in a contemporary tape system. I designed the robot electronic hardware, developed and coded an entire servo operating system as a single SoC design (AM335X), pulling in dual cameras, 3-phase motor control and high-speed data capture.
—2008–2010: Senior Software Engineer. NAND flash.
Study of NAND flash memory devices for use in reliable storage systems. As the price of flash memory decreased, so did the quality of the devices, moving from SLC to MLC (and now TLC and QLC). We were tasked with evaluating flash devices and designing mitigation strategies in the form of error correction codes, targeted wear leveling, and new block coding. We worked with a Taiwanese company to modify an existing device to work as a test bed. This code, data and infrastructure is still an ongoing product.
—2005–2007: Senior Research Engineer; Advanced File Architecture. Next generation RAID.
This project involved the implementation of a prototype advanced RAID system, taking it to a product turnover stage and then shopping it to venture capital companies. It was never funded, but the advanced features we prototyped are only just coming to the enterprise market a decade later. It used real-time load balancing and a highly resilient coding scheme (3+3), with the object of making the probability of data loss due to failure arbitrarily small. This has involved studies on reliability and performance, security, maintenance, discovery modeling, and engineering back end device drivers to connect to existing operating systems.
—2002–2005: Software Architect. Erasure coding and simulation.
I started a study of new erasure correction codes, and their simulation and performance implementation in current CPU architectures, and enterprise storage systems. From this work, two standouts are DOiNKS (Device Operating in Non-Kernel Space): a system for rapidly prototyping RAID architectures in Windows user space; and the Shotgun Simulation: a graphical representation of what data recovery operations would happen if you fired a shotgun at a storage system. The enhanced Blaum codes we developed with Winograd were sufficiently complex that a graphical representation was almost a necessity.
—1999–2002: Advisory Software Engineer. Internet SCSI.
I was the key architect implementing the first experimental iSCSI protocol prototypes under Linux and Windows at IBM. I was instrumental in first demonstrating the need for block network storage to IBM, to laying out the bits in the TCP stream, then presenting the work with colleagues to the IETF standards body and delivering working code to the product development team. Patents were filed in key areas, and I was also presented with an Outstanding Technical Achievement Award for this work.
I had the opportunity to manage small groups of summer interns on two occasions. In 2001, we built a DVD player that plays movie discs over the network (hardware, FPGA and software design). In 2000, our team built the first Windows 2000 iSCSI initiator, and we implemented Kerberos authentication in the nascent iSCSI protocol.
—1997–1999: Visiting Scientist. Hard disk drives and RAID6.
worked on several exploratory research storage projects, including building the prototype EVENODD class RAID6 array, making mechanical disk drive measurements to determine dynamic interactions and developing an interface control library. I also tuned high-performance TCP over the new gigabit ethernet technology. IBM (later HGST) published my Power Booster software to control the power saving features of mobile hard disk drives.
Ph.D., Centre for Research in Information Storage Technology,
University of Plymouth, UK
My doctorate in the CRIST group was centered on the construction and modification of modern signal processing methods with the standard credit card magnetic stripe. I designed and built new PC hardware for card processing (housing cutting-edge multi-track MR read/write heads and circuitry), new codes, new testing methods and new detection and synchronization methods to boost the card’s storage capacity 100-fold.
I architected an Internet Service Provision system communicating over a satellite television audio subcarrier for the Satellite Communications Research Centre. I was responsible for developing for the ISP PPP stack, and client NDIS network drivers. This system was deployed in Jordan.
M.A. and B.A., Physics and Theoretical Physics,
University of Cambridge, UK.
This course awarded both Master and Bachelor of the Arts qualifications. My final year project involved constructing capture hardware and writing software from scratch to connect to a radio telescope to an 8086 PC. This real-time system then listened to a (very) noisy pulsar source over a 12 hour period and determined its frequency to six significant figures. My professor was startled to see that it worked the first time out at the telescope.
In the Cambridge Computer Society, I coded a mini-operating system for placing a microprocessor-based teletext decoder onto the IBM mainframe; and was the Magnetic Media Supply Executive.
I worked vacations at a power station where I threaded thermocouples into nuclear fuel, built and installed a voice communication system and designed several database applications.
Sixth Form College, Kings of Wessex Upper School, Cheddar, UK.
I wrote a real-time FFT spectrum analyzer in ARM2 assembly code. I digitized the surface of a coin using a hand-made linear transformer scanning probe with custom software and PWM drivers in ARM assembler. I wrote a specialty printer driver and managed the Physics Software library for the County of Somerset Education Department.
‘A’ levels (age 18): Maths (A), Further Maths (A), Physics (A), Chemistry (A).
‘O’ levels & GCSE (age 16): Technology (A), English (A), English Lit. (B), Biology (A), Geography (A), German (A)
____________________ Published work ____________________
10,580,451 10,529,371 10,438,629 10,242,705 10,186,295 10,127,941 9,990,325 9,984,722 9,928,008 9,741,389 9,741,390 9,690,492 9,672,863 9,633,686 9,373,353 9,058,291 8,941,936 8,656,088 8,645,619 8,583,868 8,484,408 8,386,891 8,214,684 8,108,750 7,912,918 7,899,881 7,788,569 7,783,783 7,702,853 7,562,281 7,533,325 7,379,974 7,281,177 7,254,754 7,134,139 7,010,645
SCSI/TCP (SCSI over TCP), Satran et al, IETF Internet Draft, Feb. 2000. (Now RFC 3720: iSCSI.)
Enhanced Coding, Clock Recovery and Detection for a Magnetic Credit Card, Thesis, University of Plymouth, UK
A Fixed Sample Rate Bayesian Detector in a Variable Speed Magnetic Channel, IEEE Transactions on Magnetics, Vol. 33, No. 5, Sep. 1997, pp. 2797–2799; presented at Intermag 97.
High Density Storage on a Magnetic Stripe Card, IEEE Transactions on Magnetics, Vol. 32, No. 5, Sep. 1996, pp. 4025–4027; presented at Intermag 96.
Non Linear Magnetoresistance, Mapps et al, Studies in Applied Electromagnetics and Mechanics (ISSN 1383–7281), Nonlinear Electromagnetic Systems (A.J. Moses and A. Basak Eds.), IOS Press 1996, pp. 628–633.
The Development of an Operational Satellite Internet Service Provision, Smithson et al, IEEE Globecom, Nov. 1997, pp. 1147–1151.
____________________ Additional ____________________
My interests include photography and imaging, telephony (ask me about my toll-free number), orchestral and concert recording (designing and modifying microphones and pre-amps, and mixing in post), combining embedded CPUs with antique technology. I ride my sport motorcycle whenever possible, and I have rebuilt an automobile engine.
My amateur radio callsign is AG6TI and I am a control operator for our local repeater where I also liaise with the City of San Jose Emergency Services to provide emergency wireless coverage.
I was treasurer for a non-profit for five years, responsible for cleaning up the lackluster record-keeping and filing the annual Form 990.
I was chosen as the recipient of the American Cancer Society (Silicon Valley) Excellence in Volunteerism Award for my accounting and A/V support.
I am occasionally seen singing opera on stage: but that’s another résumé!