- Expert software engineer with over twelve years' experience.
- Highly transferable skillset, able to work with new languages and technologies on-the-job.
- Very strong across the stack, from client to server and back again.
- Enthusiastic, innovative problem solver, service always comes with a smile!.
- I love the jobs other programmers hate (working with legacy code, maintaining old systems etc).
- Excellent written and verbal communication skills.
- Also offering music and sound design services.
Phone: (+1)415 864 9118
Kodable is a product that aims to introduce young children to programming concepts through simple games which introduce problem-solving concepts and styles from the world of programming, as well as showing the code in action under the hood.
You can play Kodable at the link below.
Choose Your Own Adventure
This is a simple "Choose Your Own Adventure" engine created using React JS.
You can play a rather silly and short adventure story involving Francis Muffin, space detective, and click "Edit" to play with the text, add new connections and create your own story.
The current release is an alpha-build. This project will be updated frequently in the coming weeks!
You can play the adventure at the link below (GitHub full open source release coming soon).
Evaporate is an open-source system for content creators written in PHP.
It allows small-scale content creators to sell or give out physical products such as CDs or fanzines, each with a unique download code for the purchaser to download the equivalent content digitally.
Evaporate easily manages content uploads, issuing of codes, and printing out codes using the popular Adobe PDF file format.
You can find out more and inspect the project source here:
It was a great honor for me to work for over four years on one of the longest running and most successful free-to-play games out there - Kixeye's Battle Pirates!
My main responsibilities were as a senior gameplay programmer working in Actionscript 3 for the Flash platform. However my work for Kixeye came to encompass a hugely varied and rewarding set of responsibilities, including server side work, mostly in C++ but with some PHP, and development of in-house design tools using Python scripting and Abobe AIR.
The game is updated every week, without fail. Development involved carefully balancing rapid feature development with long term initiatives such as workflow improvements and refactoring legacy code. In this fast-moving environment, an enthusiastic, can-I-help-you attitude and a sense of humor are essential. I enjoyed great relationships with product, design and art teams in a highly functional team which has consistently delivered for many years.
I was able to progress to a highly transferable set of generalized programming skills which I can now use with any technology, whether one of the ones I have experience with or something new.
You can play Battle Pirates at the link below.
Read more and check out the current state of the project at the link below.
Bandit Skies is my most recent passion project. It's a retro-styled scrolling shoot-em-up with an RPG structure.
It's built on the engine from a Unity tech demo I made called "Infinite City" (also available on the iOS App Store and Google Play). For this game I wanted to take the base elements of that demo and flesh them out into a more substantial game.
I employed the excellent artist and animator Gareth Axford to draw the characters and backdrops for the 2D dialog scenes. He also animated the explosions. The app icon was created by Jade Melhuish. The rest of the graphics were put together by me using Wings 3D, Photoshop and Flash.
The scrolling shoot-em-up genre has become more and more of a hardcore niche over the years, and modern examples can be baffling to genre newcomers. The intention with Bandit Skies was deliberately to make it a lot easier than genre contemporaries, and link together mission objectives based on quests allocated by NPCs. There's still a high-scoring/achievement element, but it's toned down.
Extensive platform reach is also important. Using Unity's diverse range of export platforms, the game is available for iOS, Android, PC, Mac and Ouya. It's also coming soon to the Windows 8 App Store, Windows Phone and Linux.
Developed using Unity (C#), Wings 3D, Photoshop and Flash.
You can view the game on iTunes here:
Jennie Francis Hypnosis
This is a hypnotherapy app created for iOS in Objective C. Users receive four audio sessions by the hypnotherapist Jennie Francis for free, and can download additional sessions as in-app purchases.
I also managed the migration of the app to iOS 7, both in look and feel and bug fixes.
The most crucial piece of experience gained on this job was learning to implement in-app purchases in the Apple-approved way. This can have developers tearing their hair out but it does make for an excellent customer experience for all apps that implement this functionality.
Developed using Objective C and Photoshop.
Apologies, this app is now discontinued from the App Store.
The MoonGoons is a casual/childrens' puzzle platform game for iOS and Android developed by Aqua Moon Games.
As part of a team of four, I did about 75% of the programming for the game. Towards the end of the project it was decided that the gameplay wasn't exciting enough, so I also re-designed the levels. Most of the moving fireballs and platforms were added by me just before launch to spice things up.
This game used an in-house built 2D solution for Unity, although for subsequent projects we've used third-party solutions. I developed a proprietary level editor which also compiled and optimised sprite sheets for the game. Most of the physics in the levels are actually "faked" as we wanted to always be able to predict where objects and characters would land etc. so that we could control the challenge level.
Developed using Unity (C#), Flash, Photoshop and Image Magick.
Apologies, this app is now discontinued.
Spellathon is a charity/educational spelling tournament game run by Mencap. Schoolchildren take part in spelling games and compete to raise money for Mencap and/or their schools.
I was brought into the project as a contractor for the updated rollouts on the game for 2011 and 2012. The software had already been completed but changes were needed to word sets, game rules and other minor areas.
The project had been built using the "Bedrock" middleware which exports to multiple platforms from a Java and Lua base. It was an interesting challenge as I hadn't worked extensively with either language before. There was also work required rolling Flash Actionscript into the web builds to add preloaders etc.
Developed using Bedrock (Java/Lua), Actionscript 3, Photoshop and Image Magick (PNG optimisation).
Apologies, this app is now discontinued.
It runs best in Firefox or Google Chrome. Internet Explorer 9 should also be fine. If you have any issues running the game in your browser, please let me know at firstname.lastname@example.org.
Play the game here:
The modular nature of the framework supports switching between different and/or updated back-end APIs without needing to change the original game code, or re-compile the game SWF, which facilitiates cost savings when working with third parties who do not wish to license their game source. We ask them to add our API hooks to their game, then after that we can swap out modules at our end without going back to them and getting charged for more work.
I've also worked on a lot of the games themselves. Many of these were old Actionscript 2 games that IPC wanted to re-skin and update for the target demographic. In most cases we would work with an external artist to re-skin the graphics, and I would usually end up refactoring a lot of the code and creating a lot of UI transitions, using Tweening engines like Greensock TweenMax and Tweener. A lot of older Flash games tend to use a lot of timeline-based code and switch between game states by changing the active frame or scene which leads to messy transitions and code that is difficult to maintain. I would tend to create singleton "manager" classes and move key parts of the code out of the timeline in steps, so that if the deadline loomed we could still launch the game without necessarily having to complete the entire refactoring project.
Many of the games on the site now have a corresponding "skill" version which can be played for cash. This usually required changes to the game play, mainly because for this game format games need to be kept at or below a certain length.
Most excitingly, due to our licensing deal with Popcap games I've also been able to work on making changes to some of their most prestigious web games, such as Plants Vs Zombies and Bejeweled 2.
Apologies, this site is now discontinued.
This was a personal project: an old-skool 2D racing game in the style of 8 and 16-bit classics such as Micro Machines. My good friend Gareth Axford has kindly provided pixel art for the cars, but apart from that I've been creating all of the graphics and sound, which, combined with this being a "spare time" project, throws up some interesting challenges for time management! To address these I've written algorithms which procedurally draw the backgrounds. The track data just contains the shape of the road, then the game automatically positions the tree graphics, draws the fence and tiles and masks the road and grass textures for me.
There are so many interesting challenges to developing a driving game - physics, AI and accurate collision detection to name a few, and I plan to update the game regularly with new features and refinements, both planned by myself and based on user feedback. There's also a quite slick track editor using the Flex framework which I've used to create and easily tweak the track shapes, which will be up here shortly when it's had a bit more spit and polish to make it production quality.
Developed using Actionscript 3
Play the game here:
Run Fatboy Run
One of a number of collaborations I did with the hugely respected team at weebls-stuff.com - the official viral game for this highly successful film. At the time Actionscript 3 was still very new but I knew it would reap considerable performance benefits, especially useful as for the time (Summer 2007) the screen area for the game was quite large for Flash and therefore pretty demanding.
Adobe were still working out some notable bugs in Flash Player 9 at the time, and there were quite a few last-minute workarounds needed to get it over the line in time for the film's release. The result is fun to play, and also used AMFPHP to enable an online leaderboard, and facilities to e-mail your score to your friends.
Developed using Actionscript 3.
Apologies, this game is now discontinued.