About

Hello. You have reached the personal homepage (remember those- they were cool in the ’90s) of Joseph Duchesne. As I have not yet managed to upload a copy of my consciousness onto this web server, I will not be directly interacting in real time, but feel free to poke around and leave comments if you feel the need.

I’m a Computer Engineer in Canada (Bachelor of Computer Engineering, and Professional Engineer designation) who enjoys web technology, trying to process massive data, electronics, robotics, automated fabrication, open software+hardware, and game development. I enjoy solving big problems with sneaky and ideally downright silly solutions that also have the audacity to function properly. In recent years I have grown fond of unit tests, mandatory pre-merge code review, modularity, and spending far more time thinking about how to solve a problem properly than implementing the solution. This is probably a sign of old age.

On the web

Many people fear their many online identities being correlated with each other or their offline persona, however I try to present myself respectfully at all times so this isn’t a huge concern of mine. You can find me in the following places:

Projects

Back in university I competed in ACM programming competitions, the MATE underwater ROV competition. These days I am the Infrastructure Team Lead at Avidbots. Previously, I was Development Manager at SimplyCast. In my free time, I use my 3d printer (prusa mendel V2) and 3 axis CNC milling machine to produce parts for electronics projects. I have built a few iterations of quadcopter, some smaller robotics and LED lighting projects, and a few toys for my oldest son. I also write tech demos, simulations, and little games which I plan to post here on my site from time to time.

Programming

When programming I enjoy a whiteboard or a notebook as my primary prototyping language, but I also enjoy:

  • C for its transparency, simplicity and power
  • Assembly for much the same reason. While it’s rarely a good idea to write pure ASM these days, it is important to know about how the underlying architecture works.
  • C++ for game development because of classes, and also because StdLib does many things a good deal better and faster than my own code. Doubly so with C++11 or Boost.
  • PHP because despite its endless list of poor design choices, it is easy to use, on most servers and has a badly named function for almost anything (with the arguments in the opposite order you would expect)
  • JavaScript speed (?), power (??), and the fact that people keep putting it in stranger and stranger places (An image format, server side, in Java, etc).
  • Processing or Python for quickly spitting out a GUI or visual representation of something
  • I have also been known to write Java, ObjC, C#, Bash scripts, Perl, Ruby, BASIC, and R when appropriate