|
Software
Speed
Optimization
Case Studies
Services
Platforms
· x86
· Itanium
· Embedded
· Other
Technology
· SIMD / MMX / SSE /
SSE2 / SSE3 / 3DNow!
About
Contact
|
About Hayes Technologies
Hayes Technologies was founded in 2001 by Bryan
Hayes to offer services for Software Speed
Optimization.
Please select from the topics of this page:

Bryan Hayes
The following table gives an overview of the relevant parts of the
curriculum vitae; projects are listed below.
| 1967 |
Born in Frankfurt am Main, Germany |
| 1983 |
Bought first computer, a Sharp MZ-731,
started programming in BASIC, quickly moved on to Assembly and
Pascal
(also extended the BASIC interpreter).
Especially fascinated by Assembly and by achieving the maximally
possible speed. |
| 1985-88 |
Development and selling of an Assembly
Development Environment and later of an Extended BASIC Development
Environment |
| 1987 |
Ended high school |
| 1997 |
Began study of economics at the
Hochschule St. Gallen (today: University of St. Gallen), Switzerland |
| 1989 |
Began
freelance work mainly for Basler & Berendsen GmbH1 (today: Basler
AG), a company focusing on industrial machine vision
(developing, manufacturing and selling systems mainly for automated
visual quality inspection) |
| 1991-94 |
Continued study of economics in Hamburg,
Germany
|
| 1991-92 |
Manager Software
Development of Basler & Berendsen GmbH
|
| 1993-95 |
Manager Development of Basler GmbH
(previously Basler & Berendsen GmbH)
|
| 1995-97 |
Manager New Business Development of
Basler GmbH
Founding of a new Business Unit "Machine Vision
Components" (development, manufacturing and selling of
components for machine vision systems) and managing this Business
Unit
|
| 1998-99 |
Member of the Board of Managing
Directors of Basler GmbH (Geschäftsführer)
Especially involved in managing the new Business Unit
"Machine Vision Components" and New Business Development
|
| 1998-2001 |
Member of the Board of Management of
Basler AG (previously Basler GmbH) (Vorstand)
Especially involved with Development, New Business Development,
Corporate Development incl. M&A, Research & Technology
|
| 2001 |
Founded Hayes Technologies |
1 The company consisted
of 2 persons in 1989; in 2001 it
had expanded to almost 300 employees, 3 subsidiaries (USA, Taiwan,
Singapore) and an international sales and service network; IPO March 23, 1999
Jump to top of page
The following table gives an overview of the most relevant projects; minor projects etc. (such as Mandelbrot set graphics
programs) are not listed. A number of these projects saw the development
of successor releases which have not been listed.
| 1984-85 |
Development of an assembly language
development environment with editor, assembler, re-assembler,
debugging facilities (12000 lines assembly code; incl. all hardware
drivers (video, cassette, keyboard, FD); fastest assembler on
the market: 2000 lines/s on a 3.5 MHz Z80 processor)
Sharp MZ-7x1 (3.5 MHz Z80); Sharp BASIC / BIOS; Z80 Assembly
|
| 1984-85 |
Development of a graphics library used
to extend the BASIC interpreter
Sharp MZ-7x1; Sharp BASIC / BIOS; Z80 Assembly
|
| 1984-85 |
Development of a ticket management
system for an airline office
PC (8086); MS-DOS; C
|
| 1985-86 |
Development of an extended BASIC language
development environment with editor, compiler (17000 lines assembly
code; incl. all hardware drivers (video, cassette, keyboard, FD);
fastest math routines on the market, 5000 FP additions/s, 2200 FP
multiplications/s on a 3.5 MHz Z80)
Sharp MZ-7x1 (3.5 MHz Z80); Sharp BIOS; Z80 Assembly
|
| 1986 |
Port of the Assembly and Extended BASIC
compiler development tools to
Schneider CPC computers
Schneider CPC (4 MHz Z80); Schneider BIOS / No OS; Z80 Assembly
|
| 1987-1988 |
Development of a 3D vector graphics game
Atari ST + Commodore Amiga (8 MHz 68000 CPU); Atari + Amiga OS; C
+ Assembly
|
| 1989-90 |
Development of system software for a
Z180 based single board computer |
| 1989-90 |
Development of a barcode and OCR reader
system for difficult industrial contexts (low contrast, curved
surfaces etc.)
Industrial PC with 80286+80287 (10 MHz); MS-DOS; C + x86-Assembly |
| 1989-94 |
Development of an I/O library incl. a
window system
PC; MS-DOS + own 32 bit extension; C + x86-Assembly (16 and 32
bit)
|
| 1990 |
Development of a device driver for a
frame grabber with integrated processing
Industrial PC with 80286; MS-DOS; C + x86 Assembly
|
| 1990 |
Development of a WYSIWYG editor module
with own virtual memory management incl. swapping to HD
PC; OS-independent code; C (16 bit)
|
| 1990-91 |
Development of a color CD label inspection
system (checking if the print on a CD is OK)
Industrial VME PC with
pipeline processing image processing board with integrated 68000 main
processor; MS-DOS; C and 68000 Assembly and x86-Assembly
|
| 1990-91 |
Development of the software for a ball
bearing ball sorting machine
Industrial PC with 80286; MS-DOS; C
|
| 1991-92 |
Development of special high-speed on-the-fly
code reading systems for PET bottles
PC with 80286 + frame grabber with TI TMS34010 CPU; MS-DOS; C +
TMS34010 Assembly
|
| 1992 |
Development of systems for reading barcodes
and text (OCR) on CDs
PC with 80286; MS-DOS; C + x86-Assembly
|
| 1993 |
Development of device
drivers for a frame grabber board and a digital I/O board
PC with Pentium; MS-DOS; C and x86-Assembly
|
| 1993 |
Development of a multithreaded
multi-camera version
of the CD label inspection system (see above)
Industrial PC with i486 CPU; MS-DOS + RTKernel real-time kernel +
own 32 bit extensions; C + x86 Assembly (16 and 32 bit) |
| 1993 |
Development of a multithreaded version
of the CD code readers (see above) for use with CAN based terminals
Industrial PC with i486 CPU; MS-DOS + RTKernel real-time kernel +
own 32 bit extensions; C + x86 Assembly (16 and 32 bit)
|
| 1995 |
Development of boot code loader for a
frame grabber with on-board Pentium CPU
Embedded Pentium; No OS; C + x86 Assembly
|
| 1995 |
Development of a 32 bit deadline (vs.
priority) based real-time kernel for x86 PCs
80386+ PCs; BIOS; 32 bit C++ and x86-Assembly
|
| 1996 |
Development of Microsoft Windows 95 device
drivers (VxD) for a frame grabber board and a digital I/O board
PC with Pentium; MS Windows 95; C++ and x86-Assembly
|
| 1997 |
Designed and set up the web site for Basler
GmbH (today Basler
AG) |
| 2000-01 |
Feasibility study concerning extreme
high-speed decompression
PC with Pentium III; Windows NT 4.0; Pentium III Assembly
|
| 2001-02 |
White Paper for Intel®: "Optimizing for the Pentium® 4 vs. for the Pentium® III"
PC with Pentium III and PC with Pentium 4; Windows XP; Pentium III + 4 Assembly |
| 2004 |
Further development of image processing software
PC with Pentium III; Windows NT 4.0; C++ and Pentium III Assembly |
| 2005-06 |
Adaption of the BIOS to the board configuration, removal of various BIOS programming errors (BIOS-development, BIOS engineering)
Compact-PCI Board with Pentium M; Phoenix BIOS; Pentium M Assembly |
| 2007-08 |
Development of the software (system software and algorithm software) of a new sensor system
TI DSP TMS320F2812, TMS320F28335; No OS; C++ + Assembly |
Jump to top of page
The following table gives an overview of the most relevant experience /
knowledge.
| Topic |
Since |
Level of Experience |
| High Level Programming Languages |
|
BASIC
|
1983 |
Very extensive experience and deep
knowledge |
|
Pascal
|
1984 |
Extensive experience and
knowledge |
|
C |
1985 |
Very extensive experience and deep
knowledge |
|
Fortran
|
1986 |
Good experience |
|
C++ |
1988 |
Very extensive experience and deep
knowledge |
|
HTML/CSS
|
1997 |
Significant experience |
|
JavaScript |
1997 |
Good experience |
| |
| CPUs / Corresponding
Assembly Languages |
| Z80/Z180 |
1984 |
Very extensive experience |
| 8086 /
80286/80287 / 80386 / i486 / Pentium / Pentium MMX / Pentium II /
Pentium III / Pentium 4 / Pentium M / Core 2 |
1984 |
Very extensive experience; incl. MMX,
SSE, SSE2, SSE3 |
| 6502 |
1985 |
Significant experience |
| 68000 |
1990 |
Extensive experience |
| TI TMS34010 |
1992 |
Extensive experience |
| Texas Instruments (TI) TMS320F2812, TMS320F28835 |
2007 |
Extensive experience |
| Various
DSPs / CPUs |
1982 |
Significant theoretical knowledge; very
good overview of many architectures and specific products (i.e.
Alpha, ARM, PowerPC, MIPS, TI DSPs, various Microcontrollers) |
| |
| Operating Systems and
Real-Time Kernels |
| CP/M |
1984 |
Extensive experience and knowledge |
| MS-DOS |
1984 |
Extensive experience and knowledge |
| Apple II |
1985 |
Extensive experience |
| Macintosh |
1988 |
Good experience |
| MS Windows
3.1 / 9x / NT / 2000 |
1990 |
Extensive experience; for
Windows 95/98 device driver (VxD) experience |
| RTKernel
Real-Time Kernel |
1992 |
Extensive experience and knowledge |
| Own
Real-Time Kernel |
1994 |
Very extensive experience and very deep
knowledge |
| QNX
(Unix-oriented real-time OS) |
1996 |
Some experience |
| QNX
Neutrino (Unix-oriented real-time OS) |
1996 |
Good experience; device driver
programming experience |
| Linux |
2001 |
Some experience |
| |
| BIOS |
| Phoenix BIOS |
2005 |
Medium experience and knowledge: Adaption of a BIOS to a specific board |
| |
| Software Tools (older
Tools (i.e. Borland C/C++) not listed) |
| MS C/C++
Compilers / Visual Studio / C/C++ |
1984 |
Very extensive experience |
| MS
Assembler |
1984 |
Very extensive experience |
| Intel C/C++
Compiler |
1999 |
Significant experience |
| Intel VTune
Analyzer |
1999 |
Significant experience |
| GCC etc. (GNU
C/C++ Compiler) |
2001 |
Some experience |
| Texas Instrument (TI) Code Composer Studio |
2007 |
Extensive experience |
| |
| Standard
Software (older Software (i.e. WordStar) not listed) |
| MS Office |
1990 |
Extensive experience |
| MS FrontPage |
1997 |
Significant experience |
| SAP R/3 |
2000 |
Good experience |
| |
|
Hardware |
| Z80 based
Computers |
1983 |
Sharp + Schneider; very extensive
experience; extensive device driver development experience |
| PCs |
1984 |
Various; desktop + industrial; very
extensive experience |
| Apple II |
1985 |
Significant experience |
| Apple Macintosh |
1988 |
Little experience |
| Z180 based
Single Board Computers |
1989 |
Extensive experience; participation in
product specification; extensive device driver development experience |
| RS232 |
1989 |
Extensive experience; extensive device driver development experience |
| Frame Grabber
Boards |
1989 |
Various boards; participation in
specification; extensive low-level programming / device driver
development experience |
| Digital I/O
Boards (Industrial) |
1989 |
Various boards; participation in product
specification; extensive low-level programming / device driver
development experience |
| PLCs |
1989 |
Connected vision systems to various PLCs
(digital or RS232) |
| Cameras |
1989 |
Very extensive experience with
industrial CCD cameras (b/w and color, analog and digital) |
| CAN Bus
Boards |
1992 |
Extensive experience; participation in
product specification; extensive device driver development experience |
| Fire wire /
IEEE 1394 |
1994 |
Good experience; participation in
product specification |
| Various HW |
1983 |
Plotters, dot-matrix/inkjet/laser
printers, HDDs, FDDs, monitors, LCD displays, Ethernet boards /
networks, USB, parallel I/O etc. |
Jump to top of page
|