RESUMÉ of Charles W. Marslett


18 August 2020

Charles W. Marslett
1003 Rocky Creek Dr.
Pflugerville, TX  78660

Email Address: cmresume@marslett.net
Home phone: +1 (512) 670-7719
Mobile: +1 (512) 284-3607

Occupational Objective

I enjoy creating solutions to problems that are portable, simple, complete and efficient. I have experience developing platform architectures and novel applications of my coding theory knowlege.

Capabilities

I have many years experience developing computer based systems ranging from monolythic physical and economic simulation systems to Coreboot, UEFI and custom RTOS. I have also worked on Linux kernel code and Gentoo and LFS distributions.

I have created C language simulators of VHDL and Verilog hardware designs (memory caches, graphics controllers and communication busses) for ARM designs and a few BCH based forward error correction systems.

Most recently I have worked on AMD based Coreboot firmware and Intel based root/chain of trust features for UEFI boot systems. Some of these tasks involved creating training material and feature specifications for developers & QA engineers.

Less widely required skils have involved creating a floating point library & operating system for the Atari 8-bit computers, RTOSes for 8- and 32-bit microprocessors, custom communication protocols and coding systems for 20-bit parallel busses and self clocking serial busses, and various low level hardware drivers.

Hardware Expertise

15+ years experience with Intel and AMD x86 and x86-64 architectures (from SOC to 4-way platforms)
5 years experience with various ARM architectures
1 year experience customizing code for a Tensilica processor using a customized gcc toolchain

Boot Firmware Expertise

10 years working with Phoenix and Dell Legacy BIOSes for Intel processors
10 years working on EDK and EDK II based UEFI firmware for Intel and AMD processors at Dell, Intel and Insyde
6 years creating training material & training software engineers to build, debug and validate UEFI firmware
2 years recent experience with AMD AGESA based Coreboot firmware
6 months working on the Insyde Supervyse BMC firmware family
Firmware and tools were developed with and for Visual Studio/Windows and Linux/gcc environments

OS Expertise

20 years Microsoft DOS, OS|2 and Windows (development environment, drivers & tools)
15 years Linux tools, several distributions: Debian, Ubuntu, Gentoo, LFS, etc.
11 years experience with the Portage build system for Gentoo and ChromeOS
4 years AT&T Real Time Unix: Regulus, Unix 7th Edition
4 years Hard Real Time RTOSes: ThreadX, Nucleus, VXworks & custom RTOSes
3 years Linux kernel building and customization: with Gentoo and LFS most recently
6 months building Android firmware from source (Cyanogenmod, Slim)

Programming Languages and Version Control Expertise

High Level Programming languages: C, C++, and more limited experience with Java, Fortran and Cobol
Assembly languages: x86, ARM, 65x2, PPC & others
Scripting languages: Python, Perl, bash & cmd.exe
Version Control Systems: CVS/RCS/ClearCase(long ago), Subversion and git(recently)

Algorithms and Coding Systems

Compression Algorithms: JPEG, MPEG, Lempel-Ziv, ZIP, 7z, etc.
Special purpose: UNICODE, 8b10b, 16b20b & environmental noise resistance
Forward Error Correction: ECC, BCH and Fire codes
Multiple Code Optimization Mechanisms

Personal Data

Born: December 3, 1946
Height: 5 feet, 11 inches   Weight: 175 pounds
Married, 2 adult children
Interests: philosophy, culture, algorithms, movie making, politics, pets

Education

Texas A&M University
College Station, Texas

I was awarded a BA degree, majoring in mathematics, minoring in physics, with advanced work in computer science, functional analysis and algebra in May, 1967, and briefly worked toward a PhD in topology and functional analysis in the graduate mathematics program for another year in 1971.

Military Service

U. S. Army Air Defense Board (USARADBD)
Fort Bliss, Texas

Science and Engineering Personnel (01E20) -- I performed scientific programming and test data reduction as well as general program conversion tasks. I was discharged from the active reserves on Feb. 25, 1975.

Technical Association Membership

Association for Computing Machinery
11 West 42nd Street
New York, NY   10036

Publications & Patents

 

Publications

DTIC#AD0763751: Aircraft Radiation Code ARC (published by the Defense Techinical Information Center)
MyDOS and MyDOS User Guide (self published for versions 1.0-3.53)
FastChip for Atari 8 bit computers (published by Newell Industries)
FractINT and POVray (DOS EGA/VGA and VESA display code)
Piclab for Microsoft DOS/Windows (one of many partial/intermediate authors)

Issued Patents

7,353,376: Method and system for implementing full BBS functionality with a single device list

7,600,109: Method and system for initializing application processors in a multiprocessor system prior to the initialization of main memory

Provisional Patents

199907: An efficient encoder and decoder for balanced 16 bit binary codes (16b20b)

Incomplete Patent Submissions

I contributed to three patent proposals presented to the VLSI Patent Council in 1997 and 1998 (two related to filtering and scaling of graphics images in hardware and one relating to 3D texture mapping hardware). All were dropped when VLSI was bought by Philips, NV. And I made one presentation in 2009 at Intel Corp. proposing a simple multithreading extension to the UEFI DXE phase.

 
 

Experience

  

May, 2018 - present
Wordmark
1003 Rocky Creek Drive, Pflugerville, TX  78660

Gentoo Build Environment Firmware Building & Testing - Much of my recent development work has involved the Portage toolset & build scripts. I mostly used the Linux 4.14 - 5.5 kernel.

Firmware Development & Test Engineer - I am a senior UEFI, Coreboot and Standalone Embedded Firmware engineer, creating and testing firmware components emphasizing early preboot elements. Most recently I have been involved in AGESA based Coreboot firmware for modern AMD processors. I have worked with Portage build scripts & Linux 4.14-5.4 kernel validation of that Coreboot code.

Linux Kernel Engineer - Unrelated to that Coreboot work, I am working on a minor bug in the Linux XFS file system and addding support for a newer Highpoint 644L eSATA controller.

September, 2016 - April, 2018
Dell Inc.
One Dell Way, Round Rock, TX  78682

Firmware Senior Principal Engineer - I am a senior UEFI firmware engineer creating and validating Dell Provided Feature modules (DPFs) with emphasis on Dell's security features: for example, secure boot, secure flash, vault encryption, vault access libraries, key management and password handling. Recently I have been involved in moving platform specific DPFs into standardized ones utilizing very small policy protocols.

February, 2009 - May, 2016
Insyde Software, Inc.
1400 Computer Dr., Westborough, MA  01581

Senior US & European FAE - I created, supported and presented documentation for building, debugging and environment setup for the InsydeH2O UEFI BIOS families and for Insyde's Supervyse BMC products. I supported all Insyde customers in Europe, India and North America. I validated and documented Insyde's recommended Windows and Linux development environments. I also presented classes covering general UEFI firmware. I assisted customers porting and bringing up UEFI code on their hardware; writing "snippets" to be used as model code for customization; and performing NRE work.

August, 2007 - February, 2009
Intel Corp
2800 Center Drive, DuPont, WA  98327

Senior BIOS Engineer - I was the lead BIOS engineer for a small Intel team implementing several UEFI drivers and data structures for a large customer's family of server products and implemented a few factory test tools for Intel's UEFI board test environment. I also led the small team porting legacy BIOS code to a UEFI BIOS for Intel's Ibex Peak based CRB to ease bring-up of the hardware on several customer server and worstation platforms.

February, 2002 - July, 2007
Dell, Inc.
One Dell Way, Round Rock, TX  78682

Senior Consultant, Software Engineer - a lead BIOS engineer on the desktop, XPS and low end server platforms. I acted as BIOS liaison with Dell's test development organization and Linux development/support organization for two years. Robustness improvements involved reorganizing use of Intel provided reference code; increasing the functionality of the selectable boot and utility partition features and adding processor and memory failure checks in the POST code.

January, 2000 - September, 2001
Luxxon Corporation
1735 North 1st Street, San Jose, CA  95112

Director of Firmware - I led a team of 6 firmware engineers designing and implementing audio/video firmware for a <100mw mobile MPEG codec with a Tensilica (MIPS-like) processor core. The team worked in Taiwan, Tempe(AZ), and Mountain View(CA). The RTOS used was ATI Nucleus and we used CVS, SourceSafe and Source Offsite for version control. I also coordinated work with external teams developing the Tensilica audio encoding/decoding software in Eastern Europe and the Coldfire baseband processor firmware.

July, 1999 - January, 2000

Mobility Electronics, Inc.
7955 E. Redfield Rd., Scottsdale, AZ  85260

Principal Software Engineer - I was responsible for the Windows driver development and validation and production tests for Mobility's universal docking products. I researched the effort needed to add support for newer and non-Microsoft environments. The dock components were OHCI USB controllers, an EIDE hard drive and optical device controller, an Ethernet controller and a custom multi-gigabit serial PCI-to-PCI bridge with Super-IO and CardBus components.

November, 1995 - June, 1999

VLSI Technology, Inc.
8375 South River Parkway, Tempe, AZ  85284

Principal Software Engineer, Senior Software Engineer and Graphics Software Team Lead - I designeded VLSI's filtering and scaling blocks for an ARM based single chip set top box, an on-screen display content development tool and a Windows based hardware simulator to evaluate designs for on screen display functions in the VLSI MPEG decoder products. I designed the 3D texture mapping logic and coded a C simulator for that part of a new 3D graphics chip for use in x86 and PowerPC systems. I also participated in the design of the video stream interface and assisted in the coding and testing of the Direct3D Windows 9x and NT drivers.

September, 1985 - November, 1995

STB Systems, Inc.
1651 N. Glenville, Richardson, TX  75081

Senior Staff Engineer and Software Engineer -- I was responsible for STB's software development (BIOSes, drivers, diagnostics and utilities). I wrote most of the graphics BIOSes, several minor utilities and test programs, and I was author or team lead for most of the X11, Windows and OS/2 drivers. I was the principal software architect for STB's multiscreen adapters and drivers.

August, 1980 - September, 1985

Southwest Energy Control Systems, Inc.
(a division of Southwest Pump Company)
Plano, TX  

Principal Software Engineer - Designed and implemented the first successful all-electronic gas dispenser firmware for Southwest Pump Co. It involved sensor monitoring, power failure and fault tolerance, local and remote pump control and a custom hardware and software communication protocol. The software and protocol remained in production without changes at least through 2005.

I also led a team designing and implementing a pump control console. I designed a custom RTOS supporting 50 simultaneous I/O channels on a 1 MHz Z80 processor. The team had to write device drivers for upstream and downstream communication, display control and keyboard input. The system had to maintain a full power failure fallback system as well. The final component of the system consisted of a Real Time Unix (Regulus) based network processor supporting financial reports and fraud detection software and interfaces.

February, 1978 - July, 1980

Computer Automation, Inc.
Richardson, TX  

Member Technical Staff III - Designed and implemented several software systems based on API and user interface specifications, including a floppy disk based operating system and CA's first disk boot firmware. This involved leading a team developing definitions of a Common System Interface: a consistent set of data formats and API services across several of the CA OSes. I acted as the CA liason and software customization expert for a Shell Development Corporation project to optimize and make more robust Shell's oil field pumps.

November, 1976 - February, 1978

CAMSCO, Inc.
Richardson, TX  

System Analyst - A   - Designed, modified, or converted drivers for plotting tables, displays and other devices controlled by HP 21xx embedded minicomputers. This occasionally involved writing microcode for the minicomputer. Programmed two revisions of the microcode for an AMD 2901 based vector graphics display built by CAMSCO. I also participated in the international sales presentations customizations and deliveries of the tables and displays. I also wrote the microcode for a 20-bit, DSP-like fabric inspection (FIS) system consisting of multiple hardwired TTL processors controlled by an AMD2901 based processor. This also involved writing diagnostics, utilities and a general purpose assembler for the FIS control processor.

August, 1975 - October, 1976

Harris Corporation, Data Communication Division
Dallas, TX  

System Programmer - I wrote the native assembler and assisted in writing the native linker for the Harris Remote Batch Terminal System (both written in standard COBOL and Interdata assembler). And I was one of a team of 6 that ported a 3rd party COBOL compiler to the Harris Remote Batch Terminal OS and insured it passed validation tests written by the US Navy.

February, 1972 - July, 1975

Radiation Research Associates
Fort Worth, TX  

I developed nuclear transport and radiation analysis packages for RRA's government and civil engineering customers. When necessary I ported and modified the system specific subroutine libraries and service packages tp customer computers.

I also created Monte Carlo simulation libraries for internal use, some of which were also sold as products as well. And using those libraries I also generated curve fits of Monte Carlo trasport data as well as experimental nuclear transport data for inclusion in high speed modeling packages provided to our customers.