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.
You can follow me on twitter or e-mail me at phil@philjordan.eu.
Services offered
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 added the social network integration (using OpenSocial) of the children's web MMO game At.lant.is (JavaScript on both client and server, using Rhino to bind against a Java core, and jQuery in the browser)
- 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)
- I have helped out with front-end work (JavaScript, HTML/CSS) on various smaller web projects (e.g. Volume).
Examples of technology I have used to build projects of significant size
- Programming languages/environments: C, C++, Objective-C/Objective-C++, Clojure, C#, JavaScript, Java (and many more for smaller projects)
- 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)
Previous experience
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.