The Expertise You Need

C++

We've been working with C++ since its release in 1986. From C-with-objects to the TR1 extensions, object-oriented, functional and meta-programming, we're experts with all styles of C++. »»

Multi-threading

Electric Magic has been developing robust and efficient multi-threaded client and server software for over a decade. »»

Communications and Networking

Communications once meant RS-232, and now it's encrypted data streams over TCP/IP, encapsulated and packaged in myriad ways. Whether you need to control a robotic arm or screen-scrape a legacy system, put a transparent RPC proxy between your systems, or... »»

Library Design and Development

A lot of our more recent work has been in realm of library development, creating expressive and powerful foundations on which the real work is built. »»

Graphics

We can apply our deep understanding of Mac, Windows and UNIX graphics APIs, file formats and in-memory representations to provide transformational and generational code to meet your needs. »»

Graphical User Interface

GUI generally means frameworks, and we've worked with and extended them all. QT, GTK, MFC, PowerPlant, the venerable MacApp and TCL, and our own ZooLib. And if you have an in-house system, our broad experience let's us get up to... »»

Other Languages

Although our main strength is C++, we're familiar with other languages, ancient and modern, and use them when appropriate. »»

Assembly Language and Machine Code

Even in a sophisticated high-level system, assembly language or machine code is sometimes needed for its semantics, performance or direct access to hardware features. For x86, PowerPC, 68K, 6502, Z80 and more, we know when and how to make effective... »»

Quality C++ Software | Electric Magic

Electric Magic creates elegant and robust C++ software for Linux, Mac and Windows.

Our experience runs the gamut, from embedded micro-controllers to multi-CPU servers, from user-interface down to pixel-twiddling, communicating over bare copper wire, through TCP/IP and custom protocols.

We've implemented database engines, file systems, cross-platform application frameworks, real-time hardware drivers, the first low-bandwidth VOIP application, video games and more.

What can we do for you?

Our Services Work for You

Porting Code

Let us help you leverage your existing investment by porting your code to a new operating system or library suite. We can create an abstraction layer so your code just works in its new home, modify your code to use an existing abstraction layer, or we can simply reimplement the parts that have dependencies. »»

Bug Fixing

If you've got buggy code, we can fix it, and provide guidance and affordances to reduce the incidence of bugs in the future. »»

Extending High Level Languages

Your team is productive using a high level language, but you need access to features only available from C or C++, or indeed another high level language. Be it Java, Perl, Python, Ruby or Lua, we can create the glue to make external functionality a fully integrated part of your software toolkit. »»

Plugins

You already have most of what you need in an off-the-shelf application, it’s just missing some key feature. We can implement that feature and incorporate it into your graphics or development workhorse. »»

Refactoring

If your code works and is feature complete, but is hard to grow or understand, then refactoring may be in order. »»

Code review

Maybe you're concerned about the quality of some code you've inherited, or you just need a fresh set of eyes on your own code. We can give you an independent assessment and generate a detailed plan to improve or extend it. »»

From Our Project Portfolio

Mac/BlackBerry SDK

The lack of an official SDK has left Mac users with few applications that can work with their BlackBerry. We've released as Open Source code that allows the development of BlackBerry-enabled Mac applications, and for multiple Mac/Black apps to run simultaneously without interference. »»

iMobimac Modem

The Research In Motion Blackberry is famous for its connectivity. iMobimac Modem runs on a Blackberry and the Mac to which it is connected, and lets Mac applications access the Internet using the Blackberry's connection. »»

Embedding Lua in Zen

Lua is a very nice little programming language, which combines a clean C-ish syntax with the power of Scheme. My interest in it is to provide customizability of behavior in the Zen home automation system. »»

Knowledge Forum 4.6

Knowledge Forum 4.6 is a major revamp of the innovative classroom collaboration tool, using a tuplebase as its underlying engine and adding a rich client application that runs alongside the web interface. »»