By mswatcher

I’ve had a lot of success in my 20 year software engineering career with developing cross platform ‘C’ and ‘C++’ code. Most recently, at Backblaze we develop an online backup product where a small desktop component (running on either on Windows or Macintosh) encrypts and then transmits user’s files across the internet to our datacenters (running Linux) in San Francisco, California. We use the same ‘C’ and ‘C++’ libraries on Windows, Mac, and Linux interchangeably. I estimate it slows down software development by about 5 percent overall to support all three platforms. However, I run into other developers or software managers who mistakenly think cross platform code is difficult, or might double or triple the development schedules. This misconception is based on their bad experiences with badly run porting efforts. So this article is to quickly outline the 10 simple rules I live by to be achieve efficient cross platform code development.