William
Butler Plano, |
System /
Firmware Engineer Experienced
system engineer, team lead and individual contributor for low-level embedded firmware,
and middleware. Worked on analog,
digital and mixed signal designs. Specialize in custom board bring up to
support an OS such as embedded Android, QNX, Linux or non-OS bare-metal
applications. Led small teams of engineers in multiple project using Agile
methodologies. |
TECHNICAL SUMMARY: |
Hardware: |
Arm,
MX6, Atom, MCF5xxx, MCP860, MC68xxx,
TI DSP DM365/8 320C240, 320C54CST, 320C5402, 320C5502, 320C64x+, ADSP2185,
8051, 68HC812, IBM PC/x86 and Compatibles, HP730, Sun, Sparc, DEC6xxx, 8xxx,
11/750, 11/785, GPIB-488, MIL-STD-1553 |
|
Operating System: |
Android,
QNX, LINUX, RTEMS, PSOS, DspBios, Windows 9x/NT/2K/XP, UNIX, VRTX, USX,
Nucleus, OS2/WARP, MS/DOS 6.2, VMS, Trusted Execution Technologies (TxT) |
|
Languages: |
C,
C++, MC68xxx/TI/8051 Assembly, Windows SDK, ZAPP, MFC, OWL, YACC, MEWEL,
PASCAL, FORTRAN, Visual Basic. |
|
Design Tools: |
Evergreen
Case Tools, CADRE Case Tools |
|
Debugging Tools: |
Single Step ICE, TI Debuggers, GDB, HP 7400 series
ICE, Tektronics and HP Oscilloscope, Tektronics Logic Analyzer (Prism 3000,
DAS), CADRE in-circuit emulator, HP4951a Protocol Analyzer, IO-Tech 488
Analyzer. |
Professional Employment
August,
2010 to
Present |
Heads-UP Inc, Carrollton,
Principal Software Engineer- Firmware Lead Responsible
for architecture, design, development, and testing of real-time, embedded
code for an aviation electron manufacturer.
Developer on multiple projects using QNX and Embedded Linux on ARM and
Atom processors using C/C++ and assembly.
Experienced Android KitKat (4.4) on Freescale MX6 Kontron board. Responsible for low-level board bring-up, including drivers
for flash, SDRAM, network chips, RTC, Compact Flash, IC2, and T1
Framers. Worked at the hardware
interface level to the GUI level. |
January,
2009 to
July 2010 |
DeLL, System Engineer – Remote Manageability / Platform
Security Worked
with management, marketing, BIOS, ODM, and vendor teams to ensure owned
technologies were consistent across complete product lines and the
technologies provide a complete solution to the end customer. Subject matter expert for Trusted Execution
Technology (formally called LaGrange) and Broadcom TruManage (BCM5761).
Reviewed Test plans and Platform TPM provisioning, wrote white papers and tech
sheets for marketing. Worked closely with vendors on next generation parts,
such as TPM’s, and complex issue isolation. |
September,
2002 to
December 2008 |
Estech systems Inc, Principal Software Engineer- Firmware Team Lead Responsible
for architecture, design, development, and testing of real-time, embedded
code for a market leader in telephony equipment utilizing TDM and VoIP
technologies. A lead developer on
multiple projects integrating Timesys Linux on an ARM9 with direct interface
to a TI64xx. Extensive experience with Motorola/Freescale MCF52xx, MCF5407;
TI TMS320C5402, TMS320C5502; TMS320C64x+; and ADSP-2185 processors using
C/C++ and assembly. Responsible for
low-level board bring- up, including drivers for flash, SDRAM, network chips,
RTC, Compact Flash, IC2, and T1 Framers.
Ported, expanded and maintained DSP algorithms and codec’s in assembly
for multiple DSP brands to take advantage of vendor pricing. Algorithm familiarity includes: tone
generators, CID & DTMF codec’s, and echo-cancellers, G.726, G.711, &
ADPCM. Very comfortable with working on board at the hardware interface
level. Familiar with TDM serial bus
interfaces as well as with VoIP technologies. Manage a team of 5 embedded engineers,
working on multiple firmware projects using Scrum/XP Agile methods. Responsible for hiring, assigning tasks,
reviews, promotions and raises. |
January,
2002 to
September, 2002 |
Advanced IP COmmunication, Senior Embedded Software Engineer / Project Leader
-Contractor Responsible
for architecture, design, development, and testing of real-time, embedded
code for a startup company to produce a small business phone switch using
VoIP. Developed code for the Motorola
MCF5307 processor using C/C++ coupled with RTEMS real-time OS. Wholly responsible for board check out, GNU
Tools, bring up of the board, rating the bios, which provided a network boot;
and 80% of the VoIP application. The proprietary board included flash, SDRAM,
a network chip, a RTC, and Compact Flash.
Also developed code for the TMS32054CST DSP to interface to the
coldfire utilitizing the Host interface port. Used Assembly for low-level
startup, driver ISR and debugging. Administered a Linux Server running 6.2,
which we migrated, to 7.3. |
August,
2000 to
December, 2001 |
ComSpace Corp, Senior Embedded Software Engineer Responsible
for design, development, and testing of real-time, embedded code for a
startup company that provided spectrum efficiency over RF. Developed code for the Motorola MPC860
processor using C coupled with the PSOS real-time OS. Also developed code for a VLSI ARM
processor using C coupled with the Nucleus OS. Further, developed network data interface
applications using LINUX on a PC target, compiled with GNU tools. Specialized in serial and network
interfaces and debugging in assembly. |
December,
1995 to
August, 2000 |
Vari*LITE, Senior Embedded Software Engineer - Project Lead Responsible
for design, development, and testing of real-time, embedded code for the
industry leader in concert and stage automated lighting. Products use
Motorola HC12, 68360, 68302, 68332, 68040, and TI Dsp 320C240 processors on custom boards.
Code generated in C, C++ and Assembly with the MicroTec C, GoDsp C and by HiCross embedded C/C++
compilers hosted on PC and UNIX platforms.
Trained in Booch Design model. Experience in Microsoft C++ for Windows
95 user interfaces. Managed several
projects and a team of 3 people. |
July,
1994 to
December,1995 |
AMR- Sabre Decision TECHNOLOGY, Software Engineer - Contractor Team
member developing a large commercial fourth generation compiler (QIK2) to
produce user-friendly interfaces for complex host environments in call
centers. Development under Watcom C++
for multi-platforms (DOS, Windows 3.X, OS2/16 and OS2/PM) using ZAPP class
framework, MEWEL for DOS and OS/16 capability, and YACC as the lexical
engine. Software Engineer/Project Manager - Contractor Designed
and maintained an Automated Travel Authorization Certificate (AutoTAC)
program developed in Microsoft Visual Basic (VB) using Q&E database
extensions. Work closely with clients and operators. Other duties included
Novel LAN administrator and configuration administrator Software Engineer - Contractor Developed
Window 3.X printer drivers for specialize |
January,
1990 to July, 1994 |
ElectroSpace SYstems, Inc., Software Engineer/ Software Lead Team
member designing DF calibration controller required to control and collect
data from several GPIB-488, serial (RS232, RS485), MIL-STD-1553, and TTL
devices. Designed using C++ OOP with class structures and data encapsulation. Software Embedded Engineer Team
member implementing a project design using C++ OOP on Sun Sparcs. Developed
control algorithms for HP signal generators controlled using GPIB-488
bus. Software Embedded Engineer / Project Lead Designed,
developed, and tested embedded software for large earth station antenna
control systems. Responsible for projects developed using C hosted on pc and
Unix environments cross-compiled using MircoTec C coupled with the VRTX
real-time OS based on the MC68xxx platforms. Used Tektronics Logic Analyzer
(Prism 3000, DAS) and CADRE in-circuit emulator to debug code. |
February,
1989 to
December, 1989 June,
1987 to
December, 1987 |
Tees Engineering computer services, DEC VAX System Programmer /Operator Solved
programming problems and assist with the VAX/VMS environment. |
January,
1988 to
January, 1989 |
Computer Specialist (COOP) Team
member designing, implementing, and testing programs used for critical
reliability testing for the Department of Defense. Developed using Clipper/
dBase 3. |
Education: |
Bachelor
of Science in Computer Science, 1991 Minor:
Electrical Engineering Microsoft
Visual Basic Programming Course Booch
OO Design Training TI
DSP 320X2xx Training TI
DSP 32055xx Training TI
DSP 320C64x+
DSP System Integration Workshop using DSP/BIOS Linux Essentials Training |