------------
Expertise
Services
Company
News
Resources
------------

Brian T. Colony - Principal Engineer

Background

I graduated from Montana State University with a BS degree in Computer Science. In September of 1984, I moved to Oregon to work for Tektronix Inc, developing oscilloscope firmware for the 11000 series of laboratory instruments. Much of my early experience centered around low level embedded real time coding in C. This work was with x86 processors, in both single and multi-processor implementations. Later on, when I joined TriplePoint I began work on low level device drivers and then moved on to a wide range of projects.

More recently I've been focused on the total software development process. This has allowed me an opportunity to work more closely with clients at the beginning of the design process to architect solutions. It has also allowed me to bring a lot of value to clients during the implementation part of their projects.

As a senior engineer I have excellent communication skills and lots of experience getting products to market. My work history has taught me the importance of integrating quickly and smoothly into a development team to help solve problems.

Languages C, C++, C#, Java, Python, perl, PHP, tcl/tk, assembler (x86, PPC 603e, Z80180, 6805). I've actually used Fortran IV and Fortran 77, PL-M, and Pascal, but not for a long time.
Processors x86 (real & protected), PPC 603e, Z80180, Freescale MC9S08AC16
Operating Systems Windows: WinXP, Win2000, Win NT, Win9x, WFW 3.1; DOS; VxWorks (Tornado & Tornado II.); Linux (SuSE and Fedora)
Programming API's Win32; WDM/NT; NDIS 5, 4, 3, 2; NT INF Scripting; Win95 NDI; PCMCIA Card/Socket Services; Novell ODI HSM V3.3; Drivers on: DOS, WFW, Win95, Win98, NT 3.5, 4.0, Win2000, WinXP, Novell Netware 4.11, OS/2 Warp; VxWorks
Protocols TCP/IP; HDLC; 802.3; 802.2; 802.11; 802.11b
Scripting Languages Python,
perl,
PHP,
tcl/tk
Content Management Systems (CMS) Drupal
Markup Description Languages xml, xsl, html
Compilers Microsoft VisualStudio 2005/8, MS-DEV 6.0; CodeWarrior IDE (Freescale); Borland C++; Watcom C++; GNU C++
Editors Visual Slick Edit, Codewright, VI, Emacs

Project History
Jul 2008 - Dec 2008 Contract SW engineer for test and measurement company

Ported an existing 6805 based project to a new freescale MC9S08AC16 processor. The pinouts and peripheral support had changed quite a bit. A hardware abstraction layer was implemented to handle the bit swizzling required.

Implemented a C# .NET 3.5 based windows solution to expose the underlying hardware registers of a product board. The application interfaced to a Freescale processor through a SPI interface accessed via a totalphase aardvark debug interface module.

The solution allowed full control of the hardware at a register level through a windows gui or command line interface. (The CLI interface allowed full scripting support from within a command shell.) The solution shared a common interface library that was then linked to either the gui or command line interface module.

The gui was specified and implemented using XAML.


Oct 2005 - Jun 2008 Contract SW engineer for MathStar, Inc

Provided ongoing engineering services to a fast moving startup.

  • Designed, coded, implemented a SCM system and build process used for all Product SW builds based on Python and Subversion (SVN).
    - Configured the original Red Hat based LAMPS stack to host the client's Subversion repositories
    - Transitioned all existing CVS repository data to the Subversion server
    - Replaced a 4 to 6 week manual build process with an automated ~50 minute process
    - Implemented a Cruise Control based continous build system
    - Project status tracked via build system created project pages for each build
    - Interfaced build system with client's Atlassian JIRA bug tracking system.
    - Provided scripting support to manage branch/merge operations across multiple code lines.
  • Wrote all current Product SW, Application SW, and internal tools installer programs using the Ghost Install utility from Ethalone Systems.
    All installers derived from common ui control and graphic elements. This allowed simplified definition and maintenance of installer look and feel across all client installers.
  • Implemented a STAF/STAX based automated test system to smoke test all Version 2.0 Product SW.
  • Took over the JTAG based debugger development effort for the product SW group. To support the Silicon Validation effort and provide a debug tool for external customer use.
  • Successfully transitioned all SVN server management and maintenance duties to client IT staff.
    - Helped IT move to Active Directory based SVN authentication
    - Provided Drupal based web front end for SVN access management
  • Helped specify and deploy the client build system solution based on multiple Dell Poweredge 1950 servers.
  • Helped IT specify and implement SVN hosting plan using twin Dell 2950 servers connected to a multi-terabyte raid array.
  • Specified, developed, and deployed several internal CMS websites using the open source Drupal project based on PHP
    - SVN server support to create/add users and update access permissions through a web interface.
    - Build server to expose product SW builds.
    - Provided help with transition of support to client IT staff.
Jun 2005 - Jul 2005 SW engineering support for Veriwave, Inc

Architected and helped implement a STAF/STAX based test system for use within Veriwave.

  • The test system can dynamically schedule different types of test jobs and can manages test resources from common resource pools across the QA team test network.
  • Python was used to implement several utilities of use to the team. (To schedule jobs and manage test SW deployment/configuration.)
  • Provided documentation and presented material to team members and outside contractors to introduce them to the test system.
Apr 2004 - May 2005 SW engineering support for Veriwave, Inc

Responsibilities spanned everything from regression test writing to design and coding of 802.11 test suites for a new wireless test product, their WaveTest Traffic Generator / Performance Analyzer.

The job required using a custom test language specific to the product. A list of accomplishments:

  • Learned perl to implement a series of unit tests used to verify proper operation of the custom test language.
  • Learned tcl to help design/implement test suites particular to various areas of the 802.11 wireless protocol.
  • Adapted a NDIS 5.3 sample protocol driver for the client in a couple of days to allow a test program to bind directly to attached wireless MAC adapters under WinXP so that a custom test program could interact with the adapter. This saved the client both time and money in the implementation of the test suite that required the protocol driver.
    Driver and test applicaiton supported on linux, Windows XP, and WinCE.
  • Provided consulting on an adhoc basis regarding SW development processes and management based on my industry experience.
  • Editorial Comment:
    First exposure to tcl/tk in a production environment. (The less said the better. Why anyone would use tcl/tk when Python is available is beyond me.)
Sep 2004 - May 2005 SW engineering support for Audio Precision Inc

This client requested that I perform a port of their Tornado II based GPIB platform to support the new 2700 series of analog test equipment. The development effort required the implementation of a new command set and work to expose the new hardware capability through the GPIB interface.

Development was done in C and C++ using the Wind River Tornado II environment.

This work was performed concurrently with the work for Veriwave and was done on a part time basis.

Jul 2004 Continued using Linux, and began some informal consulting with a couple of local companies.

When the hard drive on my laptop gave up, I bought a replacement drive and then made the jump to SuSE 9.0 on my, now rather old, Dell Inspiron 8100. The wireless setup was much easier. So was setting up everything else... With the exception of VMWare. Which required rebuilding all of the VMWare modules after some research on the web...

In a change of pace from always working as a contractor, a person paid for what he can do, I branched out a bit into some informal consulting. With 20 years of experience in SW project development, spanning everything from 1 and 2 person projects to large team projects with upwards of 100 engineers, it's fun to be asked to step in and provide input to companies as they are starting their design process.

Fire fighting is interesting too. Although most people don't care for the stress of trying to bring sanity to a SW project in trouble, it can be rewarding to help a client get a project back on track to a successful project launch.

Sep 2003 - Mar 2004 SW engineering support for Kentrox, LLC

I was brought in to take over the original STAF/STAX based test effort of the Q series router. This was done to allow the client to refocus engineering resources on the core firmware development task. Time to market was a critical issue. The client wanted someone who could come up to speed quickly and integrate well with their engineering team.

The STAF/STAX framework and the test infrastructure are essentially built on top of python technology. Tests are specified as xml files passed into an execution engine. This test development method is very flexible and is platform agnostic. This required developing a familiarity with STAF/STAX, Java, Python/Jython, and the client's product.

The client development environment consisted of a number of diverse computing platforms including: Win2000, Red Hat 9.0, and SuSE 8.0.

More specifically the job entailed the following tasks:

  • Standardized test output in html format for easy comprehension.
  • The original test setup was extended to allow multiple levels of test coverage. (Daily build, check in, regression...)
  • The engineering team's daily build test was stabilized and made repeatable.
  • A python based auto test generation tool was built to allow automatic generation of a set of test suites and individual tests based on an xml description file.
  • Coded several python based utilities to help with image updates, test management, and OpenSSL certificate management.
  • Finished integrating iperf into the STAF/STAX test environment to do basic performance testing.
  • Conducted training on STAF/STAX for the core development team.
  • Conducted training on Python for the core development team. With an emphasis for how Python interoperates with the STAF/STAX test environment.
  • Transitioned the test infrastructure into the CM Synergy version control system and took on the role of build manager for the test software.
  • Trained the full time employee hired to fill my position at the end of the contract.
Jan 2003 - Sep 2003 A mixed bag:
  • I've been helping a 802.11 wireless vendor bring their Windows drivers to the point where they can obtain WHQL certification.
  • Designed and implemented a configuration/test utility to be used on Legacy Windows operating systems for 802.11 network adapters. The utility provides Zero Configuration capability as well as link test and site survey features for a client 802.11 wireless adapter.
  • Researched the MS Crypto API to ensure that the utility kept it's secrets somewhat secure...
  • Designed and implemented a very stripped down XML parser to allow storage and retrieval of data.
  • Designed and implemented a command line utility to allow configuration of multiple wireless networks on a host machine when the operating system is installed. This simplifies setup, as it's no longer necessary to point and click through a series of menus to configure a PC to use a 802.11 wireless adapter.
Oct 2002 - Dec 2002 I pursued a variety of personal projects:
  • Upgraded my laptop (a Dell 8100) from SuSE 7.3 to 8.1. (A very easy undertaking!)
  • Built up a SuSE 8.2 based file and print server for my home network. (Goodbye to my HP Jet Direct print server, the Netgear hub, two AC power adapters and a bunch of cables.) The server also backs up my wife's Apple computers and my windows and linux machines.
  • Researched the Microsoft EAP specification for WinXP.
  • Became familiar with PERL...
  • Started to look at the Python programming language.
Jan 2002 - Sep 2002 SW engineering support for Audio Precision Inc

This client requested that I perform a port of their Tornado II based GPIB platform to a new product. This product was released as the ATS-2. The starting point was the existing System Two Cascade Plus product. (Since superceded by the 2700 series. The development effort was concentrated on implementing new GPIB commands commands to allow access to the new hardware features.

Development was done in C and C++ using the Wind River Tornado II environment.

Oct 2001 - Jan 2002 SW engineering support for Audio Precision Inc

This job was to finish implementing a GPIB interface for an existing product, the System Two Cascade Plus. (Since superceded by the 2700 series. The development platform was a PC running Win98 with the Wind River Tornado II IDE installed. The target processor was a 486 which was connected to the outside world with a GPIB interface. The embedded firmware implemented a GPIB parser and the low level control SW to drive the audio test hardware. The same firmware image is used to control multiple instrument versions. Run time configuration determines which options are present and what capabilities are supported.

This work required:

  • Finishing the work in progress to bring the product to market.
  • Defining a backup and archive process to allow the build process to be repeatable.
  • Documenting the development and build environment for the client to allow maintenance in the future.

Development was done in C and C++ using the Wind River Tornado II environment.

Oct 2001 Started my Linux port project...

The goal is to migrate all of my Windows PC's to Linux... I started with a brand new Dell Inspiron 8100 laptop... It only took me a week to get SuSE 7.3 installed and operational!

Feb 2001 - Sep 2001 Providing software engineering services Oresis, Inc. on their ISIS 700 platform. (The company has since gone out of existence.)

Development was in C using the Wind River Tornado II environment targeted towards multiple PPC processors.

I concentrated on three areas:

  • General bug fixing.
  • Implemented a circular ring buffer to log and timestamp events for debugging purposes.
  • Designed and Implemented a global shutdown service to allow graceful shutdown of multiple distributed processors controlling data flow in a controlled manner from a central SCM (System Control Module) processor.
  • Designed and Implemented a version compatibility checking system for SW management. This entailed developing a configuration file format and a parser to read the configuration files.
Sep 2000 - Feb 2001 Baby management.

When my wife went on bed rest with our twins I stopped working to care for her... This was followed by 3 months of intensive baby management! (140 diapers a week for the first 3 months.) I'm very good with diapers now...

Jan 2000 - Sep 2000 Providing software engineering services Oresis, Inc. on their ISIS 700 platform. (The company has since gone out of existence.)

Development was in C using the Wind River Tornado II environment targeted towards multiple PPC processors. I implemented a "plug-n-play" system to control resource allocation/deallocation as communication cards were inserted/removed from a modular telecom chassis.

Jan 2000 - Aug 2000 Ported and extended a 802.11 ODI driver.

Target environment was an embedded system with a wireless adapter and IR barcode scanner. Operating system is DR DOS 3.41 and the driver was a 16 bit DOS ODI driver. The hardware environment required a point enabled driver. (A driver capable of configuring the attached PCMCIA controller on it's own.) Hooks were added to support the power management capability of the embedded device. An interface was added to the driver to allow utilities to register a callback handler with the driver so the driver could signal whether it was associated or not.

Nov 1999 Custom packet filtering application.

Helped a client implement a custom packet filtering application using the TpiWedge product.

Jul - Sep 1999 Novell Netware 5.0 point enabled PCMCIA token ring adapter

Ported an existing PCMCIA driver for the Windows platform to work under Novell Netware 5.0. Also provided client support for older WFW and DOS based laptops. Adapter was based on the TI TMS380 chipset.

Feb 1999 Windows 2000 custom network installers

Helped a wireless vendor come up with an install package for their wireless adapter solution. Required learning about Windows 2000 INF files, install wizards, and control panel operation.

Nov 1998 - Jun 1999 Windows NT 4.0 custom HDLC serial driver and install scripts for an ISA bus adapter.

As a proof of concept project, I worked with an engineer from the New Zealand TAB to port an existing mainframe specific implementation of a driver and protocol stack into a Windows NT environment. The project required the ability for the driver to communicate with programs in the application space via: ioctls, shared memory, and events.

Driver verification was done with a set of custom built test applications delivered as part of the project.

Project documents were derived automatically from the driver source files.

Nov 1998 Windows 95 (OSR2) custom wireless protocol helper VxD with Install Script

Provided a custom VxD to a supplier of wireless adapters to be used to pass wireless access protocol packets into bound wireless drivers from a custom application developed by the client. The VxD was built up using the VtoolsD toolkit.

Oct 1998 Windows NT 4.0 NDIS Shim installer NT INF Install Script

Worked with other TriplePoint engineers on an NT NDIS shim driver & installer for NT 4.0. This includes a full spectrum of utilities, install components, and the NDIS intermediate driver which is used to intercept TCP/IP traffic over Ethernet and RAS/WAN interfaces. The components comprise a starting point for vendors wishing to develop VPN or firewall products. The package includes a custom interface package to communicate with the driver via DevIoctl calls. The driver is multi processor safe and makes use of the NDIS API to enhance portability.

A requirement of this project was learning, in great detail, how Microsoft's Windows NT 4.0 INF scripting language works.

Sep 1998 Win95 NDIS SHIM NetDetect DLL (NDI Interface)

Win95 NDIS shim driver, netdetect.dll & custom installer. Built on the same code base as the NT Shim, this added an interface VxD to allow passage of DevIoctl messages into the shim driver. It included all of the functionality of the NT package for Win95 solutions.

Jun 1998 DOS PCMCIA Card Enabler

Developed a MS-DOS PCMCIA card enabler for a wireless PCMCIA network adapter manufactured and sold by a large wireless network hardware manufacturer. An interface driver was provided to make use of the Card Services support provided under DOS to enable and manage the adapter. The enabler manages resources for the adapter hardware driver and the custom hardware compatibility layer which sits above it.

Feb 1998 Win95/Win98 NDIS Protocol VxD

Coded a Win95/Win98 NDIS protocol VxD for Symbol Technologies, Inc This project provided a custom protocol to be used to pass WNMP information to and from installed wireless ethernet network adapters.

Sep 1996 Tektronix Inc - ATM Traffic Analyzer -
API for custom ATM cell analyzer FPGA

Custom PPC 603e HW drivers for an OC12 ATM traffic analyzer.

Worked under contract for Tektronix Inc to provide a custom API to allow control and operation of the ATM cell processing FPGA hardware in a dual channel ATM traffic analyzer. The code was required to manage a circular ring buffer of ATM cell data acquired from two OC12 connections at line rate. The API allowed users to program the hardware to filter ATM cells from which traffic metrics were extracted for real time analysis. This required extensive debug work with the FPGA hardware designers and an in depth understanding of PPC 603e assembly, including memory management and cache issues to achieve the performance goals.

Many additional diagnostic and test functions were included to allow the vendor's hardware engineers to trouble shoot various parts of the acquisition path. A document was produced and delivered which outlined the driver design and the extra test/diagnostic functions available.

The target operating system was Wind Rivers VxWorks and all code was compiled on Sun Sparc stations running the GNU C++ compiler.

Jan 1996 3COM Inc - Netware 4.11 ATM LAN Emulation Driver -
Mapped a single ATM adapter into up to 16 virtual ethernet/token ring adapters

Netware ODI ATM LAN emulation driver for Netware 4.11, developed for 3COM Inc

Had to extend and modify the ODI 3.12 specification to provide an ODI HSM interface to an ATM LAN emulation driver. The driver presented up to 16 virtual ethernet or token ring adapters to the operating system. Each of the sixteen virtual adapters mapped to the same physical 1.55Mbit ATM adapter. The ODI module interfaced to the LAN Emulation and Trilium based signaling stack underneath it to affect hardware control. Although this scheme worked well on uniprocessor systems running Novell's Netware OS, supporting the SMP version of Novell's NetWare 4.11 release required extensive, hardware specific work. Namely the addition of driver level spin locks and the enabling and disabling of processor interrupts within the driver to protect against data corruption of operating system tables.

This led to the anomalous situation that uni processor systems could run at line rate, but SMP boxes limped along at about 30Mbit/second!

Aug 1995 OS2 Warp NDIS 2.0 -
NDIS 2.0 PCMCIA Wireless Ethernet Driver

Port of DOS based NDIS 2.0 driver into the OS2 Warp environment. This included the low level hardware library code and the development of PCMCIA specific code for OS2.

May 1995 NDIS 2.0 Token Ring Network Driver -
Modify existing NDIS 2.0 PCMCIA Token Ring Driver

Helped a customer using their own control libraries with a TI token ring controller integrate the latest changes from Madge Networks. Both PCMCIA and PCI bus adapters were involved.

Mar 1995 Ethernet NDIS 3.0 Full MAC Port -
NDIS 3.0 Full MAC Port from NT to Win95

Another NT to Win95 port. This included writing the Win95 INF file for the driver. Close work with the vendor uncovered some interesting hardware problems with the underlying adapter design.

Dec 1994 Port Existing WFW driver to Win95 and certify -
NDIS 3.0 Full MAC

This project involved porting an existing WFW driver, (for the AT&T starlan network cards), to work under the then new Win95 operating system. Because this family had multiple hardware variants, the install INF was more complex than usual.

Jul 1994 Cable TV Network Drivers NDIS 3.0 and 2.0 drivers for Windows NT 3.51, WFW, and DOS

This adapter consisted of an ISA bus card with an Intel 82588 ethernet controller connected to an RF transceiver capable of being attached to a cable television connector. The driver was interesting due to the fact that the 82588, being limited in the number of receive buffers available, demanded almost real time response when being flooded with receive packets.

Jun 1994 Added debug support to an existing NDIS Ethernet adapter driver coded as an NDIS 3.0 Full MAC driver...
Mar 1994 Joined TriplePoint, Inc
Jan - Mar 1994 Sabbatical
Ski Bum

Visited a large representative sample of western destination ski resorts, paying particular attention to those with ample "steep & deep" attractions.

Aug 1992 - Dec 1993 Firmware Designer - Tektronix TekMeter Handheld Oscilloscope Family
Embedded Z80180 application

Responsible for the design and implementation of the TekMeter human interface. The TekMeter family represented a break through hand held DMM/Oscilloscope product for Tektronix. The UI was originally simulated on a PC reference platform which allowed for rapid prototype of design concepts. Final implementation was via a custom interpreted UI scripting language which was processor and implementation independent.

Worked on all phases of the product from the initial custom focus group sessions to the final tweaking of the manufacturing process to ensure on time quality delivery of the final product.

1987 - 1992 Firmware Designer - Tektronix CSA403 Oscilloscope Team

Added dynamic Pass/Fail testing to the 11k measurement system. Added a back weighted average and standard deviation calculation for all supported measurements. Also added the ability to capture a Min and Max for each measurement. Port of color grading software & measurement package from the 11k sampler family (1180x series) into 1140X code base.

Self managed all phases of the measurement system enhancements to the project, from interviewing customers to define their needs to helping the documentation group write the manuals which described the new features.

1987 Firmware Designer - Tektronix 11403 Oscilloscope Team

Participated in a software team which continued the development of the original 1140X oscilloscope family. Several enhancements were added, including a color display. A lot of manufacturing cost was removed as circuit boards were consolidated. A low cost version, the 11201, was produced. Base firmware model moved from x86 real mode to protected mode. Assisted other teams porting the 1140X measurement system into the DSA600 and 1180X series of instruments. Was responsible for adding several new measurements to the base package.

Sep 1984 - Dec 1986 Firmware Designer - Tektronix 1140X Oscilloscope Team

Worked as part of a large software team to provide the software for a new digital oscilloscope family for Tektronix. This included the original 11401 and 11402 products along with the follow on 1120X (monolithic) and 11403 (color) products. Designed and implemented the original 11K Measurement System. Including full measurement annotation and dynamic update. The measurement code was ported to and used in the other members of the 11k digital family, the 1180X and DSA series of oscilloscopes.

Generated a number of GPIB based calibration and test functions used to bring the instruments up in manufacturing.

Back to Company

---- What we can do for you ----
Device Drivers
NDIS Drivers
Embedded Systems
Application Programming
Training
Installation

 
© 2023 TriplePoint Inc.
Home     Expertise     Services     Company     News     Resources
TPI Drivers & Firmware
Updated: 2023-05-30