BPJ Code

Services and other offers

Software development

  • Plain old development. You can never finish your project too fast. Representative languages:
    • C
    • C++
    • Javascript
    • Lisp / scheme
    • Perl
    • PHP
    • /bin/sh
  • Embedded firmware / device drivers. I enjoy, and am good at, straddling the line between hardware and software. I still live on the software side of that line, but feel right at home with an oscilloscope probe in one hand while the other is on the keyboard. I've worked with x86, ARM, 8051, V850 and m68k-based designs, written Linux device drivers, made uC/OS dance.
  • General Free Software / Open Source software maintenance. I can fix bugs, add features, configure, read documentation (seriously, at one of my former jobs the latter seemed to be one of my core functions - nobody else RTFMed).
  • Revision history gymnastics. Whether you need a rescue from a wedged git repository or you want to convert your CVS repository to something more modern, I can probably help you.
  • Poor-cousin legacy software maintenance. Because you have more important things for your own staff to do.
  • Reverse-engineering crappy code. I've never won the IOCCC though so you may reasonably question my fluency in crap.


  • Appropriate technology choices. Many of us feel that the Department of Basic Education erred in mandating Delphi as the teaching language for the school syllabus. Don't let this be you: I'll tell you to stay away from flash and to use Python instead of C, even though C is my personal favourite.
  • Code reviews. You know as well as I do that nobody does these unless at gunpoint. I'll hold the gun for you. Or, if you prefer, I'll review the code myself, letting you keep your developers focussed on writing instead of reading. But you really should set aside some of their time to read their own code. (Free, solid advice.)
  • Prioritizing work. You use bug tracking software (if you don't: start now) to keep track of what needs doing. Some things are worth doing before others. I'll help you get the important things done first. Together, we'll make it work, make it right, and make it nice - in that order.


  • Low-intensity sysadmin work on a retainer basis. The smart way to have a lawyer, the smart way to have a Unix wizard. Pay a regular, reasonable fee instead of having to scramble someone unknown at double-Sunday emergency rate.
  • Schematic capture. Send me a scan of the circuit you drew on a napkin, and datasheets for unusual ICs, and I'll turn it into a gEDA schematic for you, or even all the way to gerber files for a PCB.

I accept payment in bitcoin (preferred), cash (small jobs), and bank transfers (South African clients).