About Phil Jordan
I'm an independent English–Austrian software developer. I have a wide range of interests in my field, but I particularly enjoy functional programming, concurrency/parallelism challenges, kernel hacking and anything close to the hardware, such as working with game consoles, GPUs and embedded devices.
Where possible, I try to put my code on github.
I offer custom software development services on a contract/freelance basis. I typically work remotely but I can also legally work on-site within the European Union (I'm happy to travel outside the EU but you will need to organise the relevant permits).
Examples of past work
Some of my past customers have requested confidentiality as I acted as a subcontractor or built internal, non-public software for them, so please understand that I cannot mention them here. Please get in touch if you'd like more specific information.
- I have developed various OS X kernel extensions and have done some Linux kernel work as well. Commercial examples available upon request; open source projects: an OSX driver for the "virtio" paravirtualised ethernet adapter (PCI), LEGO Dacta 9771 driver for Linux (ISA); soon to be released: SSDCache, for using an SSD as a cache for hard drives.
- I wrote large parts of the graphics engine used by Mi'Pu'Mi games in their Nintendo DS games - the Animal World and Animal Life series, and Fit For Fun. (C++, register-level GPU access)
- I worked on two of Die Socialisten's social network app projects:
- I built the multiplayer game server for a flash-based Facebook game (using Clojure)
- I did both the front-end and back-end programming for an OpenSocial based quiz game.
- Native iOS (iPhone and iPad) apps of varying complexity, including an app requiring efficient synchronisation of large amounts of data for offline use. (Objective-C and C++, Cocoa Touch and OpenGL ES)
- I've built and still maintain a business content distribution system for an enterprise customer. This system efficiently updates gigabytes of data on a large number of remote clients on slow connections. (mainly C#/.NET)
Examples of technology I have used to build projects of significant size
- Mac OS X kernel/driver programming using the I/O Kit (public example: Virtio-net ethernet device driver for OS X)
- Realtime 3D graphics at various levels (register-based game console GPU access to high-level OpenGL/ES and Direct3D APIs)
- GUI applications using platform-specific APIs such as Cocoa Touch (iOS), Cocoa (Mac OS X), Windows Forms and MFC (Windows)
Prior to contracting, I worked at Kuju London (now Headstrong Games) as an engine & tools programmer. During my time there I mostly worked on Battalion Wars 2 for the Wii, updating the engine, creating graphical effects and improving the artists' and designers' tools.
I studied Physics with Computer Simulation at the University of York, UK, graduating with a 1st class honours MPhys degree. I focused my studies on the mathematical/theoretical side and high performance computing (HPC) using MPI and multithreading.