Custom Hardware

Need a custom control system? The workhorse behind our success in the meek Raspberr Pi 0W. With an MSRP of $10 (though current shortages mean finding them can be a trick), these credit-card sized machines are just enough to run a checkin system, or control a sign, or similar single-purpose applications. Need a prototype gadget? The built in wireless and ready-to-use GPIO pins make most things easy. At the top of the product line is the Pi 4B 8GB, which has an MSRP of $100, and is about as powerful as a mid-rage phone (but with the same open source OS and GPIO pins as the Pi0). When they’re in stock, you can replace most office computers with one and devote less money, space, and maintenance to them than a conventional “tower PC”. At the other end of the spectrum sit the Arduino nano. These are not general purpose computers, but if tiny size and low cost are the goals, they’re an excellent prototype board.

Need something even more custom? We can design and oversee production of fully custom PCBs with low cost system-on-chips capable of video playback, acting as a file server, controlling a gadget, or most any other simple task, starting at about $2 per unit.

Custom Software

With over a decade of experience writing software, in more than a dozen programming languages, whatever your challenge, we can help. If you have an existing code base you need modified or maintained, odds are good it’s in one of the languages we use (see below). If you need something new, trust our expertise to pick the best language for the particular task.

Supported Languages

These are the languages we like using, and the sorts of purposes to which they are suited. If you need help with something not on this list, odds are good we either know it well enough, or know something similar enough that we can still use it, so feel free to ask.


Need a language that’s fast enough to handle most projects, while fast to write, flexible to handle changing requirements, and clear enough for your in-house “IT guy” to maintain? Python is our first pick for most programs, because it makes solving difficult problems easy. Heard it’s slow? It is, but it’s usually fast enough, and once a project is mostly complete, speeding up the slow parts with another language is usually easy.

javascript / css / html

Want your code to display or run on a web browser? Javascript is the only game in town, it’s not really great at anything, but it’s also not the worst language out there. CSS and html give you a similarly not-great-not-terrible way to do it in a browser.


Need your code to run on a computer the size of your finger? Need to get every ounce of battery life or performance out of your system? C and C++ are the thinnest layer over the raw hardware you usually want.


Have a legacy code base, or need to use WordPress, NextCloud, or a similar all-in-one platform? They’re written in PHP, and so are plugins for them.

C# / Java

Need your code to “compile once, run anywhere”? C# and java have decent performance (better than Python, worse than C), are relatively easy to write (worse than Python, better than C), and compile to a intermediate language that can run just about anywhere.

Notable Mentions

These languages are ones I have used in the past, and sometimes still do, but which are not suitable for many modern projects. If you have a code base using them, it’s generally best to keep using them, but not start new projects in them.


Like PHP, but for system programming. You generally want the clarity of Python or the speed of C, leaving perl with no niche.


Bash is slow, it’s also messy. For simple “batch files” of 10 lines or less, it’s fine. Beyond that, move to Python.

Scheme / Common Lisp

For a handful of problems, a list-processor cannot be beaten. Unfortunately, the lack of standard-libraries for them means you write everything from scratch yourself, or implement your own mini-lisp when you need it.


Lua started as a configuration language, and it’s fine for that. It is lightweight, and easy to write, but heavier than C and not as easy to write as Python. With few exceptions, one of those is a better choice.