Don Reble's annotated resume

Don Reble
#312 11104-84ave NW
Edmonton, Alberta
T6G 2R4

(780) 431-1412 djr@nk.ca
See also Don Reble's (short) resume.


Who is Don Reble?

I am a computer programmer. Recently, I have been working as a contract programmer, which seems to suit both me and my customers. I enjoy building new systems, rather more than fixing old ones. I believe in good definition, forethought, and carefulness.

For many of the projects mentioned here, I used C or C++. But I have also used Java, Pascal, and miscellaneous mini-languages. (various assemblers, AWK and Perl, shell scripts, etc.) And of course, I use good ol' English for specifications and designs.


Work History

BigBangwidth Inc.

BigBangwidth is building optical communications equipment, for use in optical Local-area networks. (And perhaps other networks, someday.) I'm helping to architect the system software.

Pulmonox Medical Inc.

Pulmonox is building a nitric-oxide gas delivery device for hospital patients. I wrote the firmware for the touch-screen panel and chemical sensors' microcontroller.

Z. I. Solutions

Z. I. makes and sells gas-well monitoring devices. Beforehand, these communicated with home base, through line-of-sight cellular towers. My satellite-communication firmware allowed remote placement of the devices.

Total Control Products

At TCP, I wrote mathematical software for a ``CAM editor'' product. The editor let a user define the motion of an electronic cam, while keeping speed and acceleration under control.

Neuromotion, Inc.

Neuromotion made (not ``makes,'' alas) neural stimulators for disabled people. My main contribution to their product line was the firmware.

The company's first product was the WalkAide. That helped a person walk, who could move his legs normally, but not an ankle. (Thus his foot would drag along the ground.) The WalkAide, after suitable configuration, monitored the person's stride by means of an accelerometer; recognized the current point in the stride cycle; and zapped a nerve to lift the foot at the right time.

Well, that's the main function of the firmware. There were other bells and whistles: it communicated with an external system, over an IR port; it performed self-diagnostics, and flashed when something looked wrong; it monitored and obeyed the manual controls.

My firmware was actually a replacement of an earlier version. It was an improvement, I'm told, in a few ways:

(Glowing reference letter available on request.)

The company's second product would have been the Glove, a stimulator which helped a suitably disabled person to clench his fingers and release them. After the WalkAide, I was invited back to do the Glove firmware. The project was quite similar. Alas, misfortune compelled the company to cancel the Glove product, and not very long before it would have been finished (snif).

The WalkAide firmware was not my first project at Neuromotion. Before then, I designed the protocol which was ultimately used by the WalkAide, and implemented the Apple-Newton end of it. The WalkAide's stimulation-timing algorithm was poorly specified: I wrote a proper specification. And I built some reporting software for the Newton, part of the company's WalkAide-setup software.

Myrias Computer Technologies

Myrias Computer Technologies was the successor to Myrias Research Corporation. During that period, the company continued MRC's efforts to produce software for parallel computers and networks. I was one of the hangers-on.

I had been an employee at MRC, and continued with MCT after the collapse of the former. Much later, I became a contract programmer, and of course, found contracts with my friends at MCT. The projects were understandably technical in nature...

I researched and implemented seismic processing algorithms, under the direction of a seismologist. We endeavoured to show that ``three-dimensional depth migration'' was possible, and possible even with Myrias' software. (It was, but no-one cared.)-: This was so long ago, I hardly remember what the terms mean.
Displaying the resulting image (by cross-sections) was easy: in those days we Myrioids were quite familiar with X-windows, and did the ``imaging software'' in sleep.

I built a very fast Fourier transform code generator. The user specifies the vector-size, floating-point size, real or complex input, forward or inverse transform: out pops a highly optimized FFT routine. The guys at CNSR were impressed.

I tested and benchmarked a parallel computer, investigated performance bottlenecks; maintained compilers and the operating system. This was considered ordinary work, for Myrias programmers.

I revised and rewrote some user manuals. (Am I the only guy who can do this?)

Long after that, I had two contracts at MCT. For the first, I added a memory-mapping facility to the operating system. This was rather like Unix mmap, having a similar interface and semantics, but made parallel for the Myrias system. (A popular Fortran run-time library needed it.)

For the second contract, I built a parallel debugger. It was built on top of a Unix debugger. A pseudo-tty between the user and the Unix part intercepted commands, passed along those which could be performed by the Unix part, and my debugger did what was needed for the parallel-program commands. This entailed a bit of work within the Myrias OS: starting and stopping Pardo tasks at the user's behest, and the like.

Shana Corporation

Shana makes forms software: software which can replace your cumbersome paper avalanche with an elegant electronic system. Their original product was for the Macintosh, but dismayingly, Windows PCs came to predominate. I helped them port their product. That's all.

Ubitrex Corporation

I ventured to Winnipeg, shortly after the collapse of Myrias Research. Ubitrex was making ``point-of-care'' systems for hospitals. Interestingly, they were doing the software in C++, which was a fairly modern thing to do, just then. That job gave me an opportunity to study the C++ programming language and OO concepts.

The programmers there were young, adventurous, ambitious, and a delight to work with. They were also under terrific pressure from management, and pressure works well on the young. Good process is the first thing to fall away, if it even gets started.

A few of us became champions, promoting proper software development processes, establishing coding standards and code review policies. I edited the coding standard document, and wrote a ``canonical'' design document. But then the company was sold, and the development site moved far, far away.

Among testing and debugging activities, my main project was an ordinary reporting subsystem. But this time, my analysis, design, and implementation were models to behold. After all, young careers were beholding.

Myrias Research Corporation

It was the strangest thing: a company on the north edge of civilization, not only building a new computer, but a new kind of computer: a massively-parallel computer.

Myrias built it from the ground up. The hardware and programming model were original. They needed a custom operating system, custom program-development tools, and application-software tailored to the Myrias system. Yes, they needed a lot of inventive programmers: I was one such.

I began with an entry-level job, in the Applications group. Here I could apply my mathematical talent: I built a transcendental function library. And I wrote some applications and some test software.

Soon, I was promoted to the Operating Systems group. First, we built the prototype Kernel (the core of the OS). For that, I wrote the first task distribution and scheduling system. I implemented half of the distributed paging system, and invented algorithms to improve its scalability and performance. I did some work on deadlock avoidance algorithms. Ultimately, the prototype Kernel progressed into the real Kernel, as we made improvements throughout, affecting both performance and robustness.

The rest of the company needed to be kept informed. I developed a nomenclature for tasks and pages within the Myrias programming model, and gave seminars on our parallel algorithms and distributed data structures. And as always, I wrote manuals. (You should have seen the size of the patent application! My contribution was but a tiny part of it.)

After a few years, I seized an opportunity to diversify, and joined the Compilers group. This proved to be a sideline, but an interesting one. I ported and tuned scientific libraries for use on the Myrias system. I specified user interfaces for source-level debugger and profiler, and implemented the latter.

Myrias Research Corporation crashed before the debugger really got started. It was a while until the successor picked up that particular piece.

B. Bray and Associates Consulting

Ah, my first real programming job. I implemented a real-time data collection system. This one monitored water quality, somewhere near Edmonton. In those days, we used computers with 8080 processors, S-100 buses, and the CP/M ``operating system.'' I did the whole thing in assembler. (Compiler? Those are for IBM mainframes.)

Alberta Government Telephones

Back then, Telus was called AGT.

For the most part, I was a computer operator. (Had I been a programmer in title, I would have used COBOL. Exclusively. I might never have recovered.) We ran two state-of-the-art IBM/370 MVS/JES3 systems.

After a while, I started to do some programming. I designed and implemented small systems for resource management and system performance measurement, and did some maintenance programming. And as new 1970's technologies were introduced to the workplace, I kept abreast, and provided TSO/SPF, and RACF training for new employees.
I even taught some JCL. Am I still unforgiven?

It wasn't long before I realized that I should get a degree. AGT was especially helpful, hiring me back each summer. (I rather enjoyed filling out that job application, on company time, during a hiring-freeze. Apparently, someone thought I was handy.)

Saskatchewan Wheat Pool

For the sake of completeness, my first job: a mail clerk. I filled stationery orders for grain elevator operators. It got me started.


Education

obtained a BSc in Computing Science and Mathematics at the University of Alberta, Edmonton.
One extra-curricular activity stands out: our team of four achieved third place in the 1984 ACM international programming contest, in Philadelphia. We saw the Liberty Bell, too.

studied computer programming at Herzing Institutes, Winnipeg.
This is a trade school, almost equivalent to NAIT. Some of us students started a school newspaper. It wasn't much, but it was fun.

completed high school at Concordia College, Edmonton.
I tried my luck in the 1975 Canadian Math Olympiad. Tied for fourth.


Acknowledgement

Much thanks to Chris Gray, on whose system these resume pages are posted.