Firmware • Real-Time Systems • Software Engineering

Software engineering from the hardware up.

Retired firmware engineer, embedded systems specialist, and software engineering educator.

I’m Joe Maybee. My professional work has centered on firmware, embedded systems, real-time process control, wireless networking, device drivers, manufacturing tools, and the engineering practices needed to build reliable software-intensive systems.

Although I am retired from full-time engineering work, I remain interested in mentoring, tutoring, technical discussion, and helping younger engineers develop sound engineering judgment.

Professional focus

A brief summary of the work and ideas that have shaped my career.

Embedded and real-time systems Firmware, drivers, operating systems, hardware interfaces, diagnostics, and timing-sensitive product behavior.
Software engineering education Undergraduate and graduate instruction in software engineering, quality, requirements, architecture, and real-time systems.
Writing and mentoring Technical papers, a co-authored book, consulting experience, and continued interest in helping engineers reason through difficult systems.

About

`

Practical experience at the boundary of software and hardware.

I spent much of my career working where software meets the physical system: firmware, device drivers, operating systems, board bring-up, diagnostics, automated test fixtures, and real-time behavior. That work included small no-OS systems, Unix-style I/O, embedded Linux, OpenWrt, Yocto, U-Boot, SPI, UART, GPIO, TCP/IP, 802.11 wireless systems, and custom hardware interfaces.

Teaching and mentoring

I taught undergraduate and graduate software engineering courses at Portland State University, the Oregon Master of Software Engineering program, and Saint Martin’s University. My courses included software engineering principles, software quality, requirements engineering, software architecture, domain analysis, and real-time systems.

Current interests

I continue to enjoy thoughtful technical conversation, especially around requirements, testability, debugging, timing, design tradeoffs, and the habits that help engineers build systems that remain understandable and maintainable over time.

Areas of expertise

Organized around recurring engineering problems rather than individual tools.

Embedded and Real-Time Systems

Firmware, process control, timing-sensitive behavior, no-OS systems, electromechanical interfaces, and reliable product behavior under practical constraints.

Drivers and Low-Level Software

Device drivers, memory-mapped devices, FPGA and chip-level interfaces, SPI, UART, GPIO, diagnostics, and kernel support facilities.

Embedded Linux and Wireless

Linux kernel work, U-Boot, Yocto, OpenWrt, wireless AP firmware, TCP/IP, 802.11, SNMP, Wireshark, and system diagnostics.

Software Engineering Education

Instruction in requirements, quality engineering, architecture, domain analysis, real-time systems, and practical engineering discipline.

Testability and Quality

Automated test harnesses, requirements-to-test traceability, release evaluation, exception reporting, and strategies for volatile requirements.

Mentoring and Technical Judgment

Helping engineers diagnose difficult systems, ask better questions, understand tradeoffs, and develop habits that support long-term maintainability.

Selected career highlights

A selective overview of professional experience.

Tektronix: firmware, Unix-style I/O, development environments, real-time test fixtures, printer and graphics systems, and leadership of small engineering teams.
Xerox: wireless bridge development, web connectivity strategy, Section 508 accessibility management, systems engineering, automated verification, and program management.
Biamp: embedded Linux, U-Boot, SPI drivers, thermal regulation, Yocto migration, manufacturing firmware installation systems, and networked media products.
Datto: wireless AP firmware, OpenWrt, Linux, C, Git, Eclipse, and embedded diagnostics.
Pilot Rock Software: consulting in Windows, embedded systems, real-time systems, and small controller/no-OS software.
C / C++ Embedded Linux OpenWrt Yocto U-Boot Device Drivers Real-Time Systems Requirements Software Quality

Publications and writing

Work concerned with disciplined software practice, requirements, and automated testing.

The Engineering of Software: A Technical Guide for the Individual

A co-authored book concerned with the disciplined habits, practices, and technical judgment required of individual software engineers.

MOTHER: A Test Harness for a Project with Volatile Requirements

A paper on automated testing for a real-time embedded printer control system, with emphasis on testable requirements, fast QA turnaround, and maintaining requirements and tests together.

Mother2 and MOSS: Automated Test Generation from Real-Time Requirements

A follow-on paper describing formal real-time requirements, Prolog-based specification, automated test generation, and the shift from writing tests to writing requirements.

Mentoring philosophy

Practical engineering, explained clearly.

Good engineering depends on more than clever implementation. It requires clear thinking under constraints: understanding the system boundary, making requirements testable, measuring what matters, designing for change, and building feedback loops that expose reality early. That is the perspective I try to pass along when working with engineers who are developing their own judgment.

Contact

Mentoring, tutoring, technical conversation, or occasional advisory work.

I am not seeking full-time employment, but I remain open to useful conversations where my background in firmware, embedded systems, real-time behavior, software quality, or engineering education may be helpful.

The best way to reach me is by email or LinkedIn.

Send email

Email: joe@joemaybee.com • LinkedIn: linkedin.com/in/joemaybee