Resume for Bruce Tomlin
645 Weatherly Dr.
Windcrest (San Antonio), TX 78239
(210) 646-6679 (home)
Note: I am not willing to relocate outside San Antonio
Hardware - Intel PCs, Macintosh, Sun Sparc, SoC, ARM Cortex M3, TMS430
Operating System - Linux (Slackware, Red Hat, SuSE, Ubuntu, embedded on ARM), Solaris, Mac OS X, Windows
Languages - C, C++, Pascal, AVR RISC assembler, 68000 assembler, Z-80 assembler, Unix shell scripts, PERL, HTML
Protocols - TCP/IP, Ethernet, DNS, I2C, SPI
Applications - Apache, Sendmail, BIND, MySQL, Ethereal/Wireshark, Subversion
Certifications - Cisco CCNA, November 2005-2008
Hubbell Building Automation, Sr. Softwre Engineer, September 2010-September 2015
Sole programmer for CX Lighting Control panel, using IAR C++, STM32F103 ARM Cortex M3 processor, I2C, SPI, color LCD display. Created factory functional test units using repurposed CX equipment. Created PC-based configuration program using MFC. Implemented code for a smart wall switch, using TMS430 processor. Implemented Ethernet drivers for new hardware platform with Micrel controller chip, and "lwip" TCP/IP library. Did work to adapt CX system to newer LX system, and wrote code for other small devices used by LX. Used Subversion version control system. Experience with entire Product Development Life Cycle.
Wiley Publishing Compnay, Technical Editor, November 2009-January 2010
Technical editor for book "CCNA Certification For Dummies", reviewed manuscript for technical accuracy.
Zarlink Semiconductor, Software Engineer, June 2008-September 2008
(Contractor via Systems Pros, Inc.)
Implemented code for a chipset testing library per a specification written in mathematical notation, implemented using the C language, PPC Linux, and GCC/GNU toolchain. Used Subversion source code control system, including branching and merging of source trees.
Slacker, Inc., Embedded Engineer, August 2007-February 2008
Re-wrote AVR assembly-language stepper motor control program in GCC. Worked with Linux on an embedded platform (Cirrus EP9302 SoC with ARM9TDMI core). Maintained makefile scripts for software projects. Maintained Cirrus port of GNU toolchain for in-house use. Created patch sets for local toolchain and Linux kernel, based on Cirrus toolchain and kernel patches. Used Subversion (svn) to store source code. Wrote IR remote control receiver driver for Linux. Wrote Linux kernel driver and standalone driver to program Spartan 3 FPGA. Wrote Linux user-mode driver to control an I2C device via GPIO pins. Did minor microscope soldering board rework to connect probe wires to SMT devices. Used Intronix LogicPort logic analyzer to debug hardware signals. Used Abatron BDI2000 JTAG debugger to debug boot code. Identified and fixed performance problems in bootloader and application code.
Cisco Systems, Inc., Software Engineer, November 2000 - October 2006
Wrote ARM assembler and C code to initialize and operate a custom Ethernet packet capture card using an IXP-1200 Network Processor. Maintained current and legacy C++ code for, and added performance enhancements to an Intrusion Detection system. Added IPv4 in IPv6 tunneling and GRE tunneling support to an Intrusion Detection System. Wrote and tested new Intrusion Detection System signatures using regular expressions. Used Clearcase version control system for source code management. Wrote shell scripts and Perl CGI scripts to automate software development. Used Ethereal, tcpdump, and tcpreplay to record and analyze IPv4 and IPv6 TCP/IP layer 2, layer 3, and layer 4 streams to identify anomalies.
Southwestern Bell Corporation Technology Resources Inc., Perl Programmer/Unix Administrator, August 2000 - November 2000
(Contractor via The Maxim Group)
Wrote Perl scripts and Unix shell scripts to automate data collection. Assembled and configured Sun Sparc systems (Enterprise 4500, Ultra 60, SparcStation 10/20) with the Solaris Unix operating system.
Autogas Systems, Inc, Embedded Engineer, May 1996 - July 2000
Programmed and maintained real-time embedded systems using 6809 assembler, and C++ on Windows NT, to control major brands of gas pumps and pay-at-the-pump terminals. Wrote MS-DOS batch files to automate code generation process, and Turbo Pascal utility programs to convert data for debugging.
University of Texas at San Antonio, 1982-1988, B.S. in Computer Science
Southern Methodist University (San Antonio campus), Fall 1999
Successfully completed and contributed significantly to classes in:
- Introduction to Unix (Solaris)
- Shell Programming
- Unix System Administration
- Unix Networking Administration
Non-work related experience
Linux/Unix System Administrator and Webmaster
I have been running my own web site (xi6.com) over a DSL connection since March 2000. The site currently runs on MacOS X (it formerly ran on Slackware Linux), and runs Apache 2 web server with mod-perl scripts, ISC DHCP server, BIND DNS server, and Sendmail SMTP e-mail server.
- Have built GCC 3.4.6 cross-compiler for M68K target, with Newlib 1.16 support library.
- Wrote an open-source multi-CPU macro assembler in C, for my hobby of classic video games programming. See http://xi6.com/projects/ for more info.
- In 2005, designed a circuit board for Atari 7800 ROM cartridges. See http://xi6.com/projects/ for more info.
- In 2016-2018, had to stop employment to take care of my mother in her last years.
- In 2021, created an open-source tracing disassembler for various CPU architectures. See http://xi6.com/projects/disx/ for more info.