Curriculum Vitae

John McFarlane, MSc

Contact

Email

Web

http://john.mcfarlane.name/

LinkedIn

http://www.linkedin.com/in/johnmcfarlane

Personal

Name

John Stuart Alastair McFarlane, MSc

Date of Birth

2nd September 1973

Nationality

UK

Work Status

Authorised to work in US and UK

Driver's Licence

Full, clean US & UK licence

Vocation

2016 - Present

A9.com, Palo Alto, CA, USA

101 Lytton Ave, Palo Alto, CA 94301

SDE, Search Infrastructure

2015 - 2016

Zoox Inc., Menlo Park, CA, USA

325 Sharon Park Dr #909, Menlo Park, CA 94025

Senior Programmer, Simulation and Visualization

2014 - 2015

MetaBrite Inc. (formerly CookBrite), Seattle, USA

206 1st Ave S, Suite 230, Seattle, WA 98104

Senior Programmer

February '14 - April '15

CookBrite consumer cooking app

2012 - 2014

Z2, Seattle, USA

1601 2nd Ave, Suite 800, Seattle, WA 98101, USA

Senior Game Programmer

February '12 - January '14

MetalStorm: Aces

iOS

2007 - 2011

Surreal Software / WB Games, Seattle/Bothell/Kirkland, USA

3131 Elliott Ave., Suite 300, Seattle, WA 98121, USA

19801 N Creek Pkwy, Bothell, WA 98011, USA

12131 113th Avenue Northeast, Kirkland, WA 98034, USA

Senior Game Programmer

November '07 - December '09

This is Vegas

PC/PS3/XBox360, WBIE

January '10 - February '10

Lord of the Rings: War in the North

PC/PS3/XBox360, WBIE

March '10 - November '11

Middle-earth: Shadow of Mordor

PC/PS3/PS4/XBox360, WBIE

2006 - 2007

Kuju Entertainment, Brighton, UK

Kuju Brighton, Tower Point 44, North Road, Brighton, BN1 1YR, UK, hr@kuju.com

Senior Programmer

April '06 - January '07

TraXion

PSP, (unpublished)

2004 - 2006

Lionhead Studios, Guildford, UK

Black and White Studios, 3-7 Frederick Sanger Road, Surrey Research Park, Guildford, Surrey, GU2 7YD, UK, hr@lionhead.com

Senior Programmer

June '04 - September '05

Black & White 2

PC, Electronic Arts

October '05 - April '06

Battle of the Gods

B&W2 expansion pack, PC, Electronic Arts

2003 - 2004

Euro RSCG Interaction UK, London, UK

Cupola House, 15 Alfred Place, London, WC1E 7EB, UK

Technical Game Designer

December '03 & March '04

Intel IT Manager Game

Macromedia Flash, Promotional, Intel

2002 - 2003

Computer Artworks, Brighton, UK

The Grain Store, 127 Gloucester Road, Brighton, East Sussex, BN1 4AF, UK

Senior/Lead Programmer

Spring '02 - Spring '03

A Sound of Thunder

PC/PlayStation 2/Xbox, (unpublished)

Spring '03

Alone in the Dark 5

PC/Xbox, Atari (unpublished)

 

Tidejackers

PlayStation 2, SCI (unpublished)

 

Prototype Projects Team

PC/PlayStation 2/Xbox, Internal

Summer '03 - Autumn '03

DJ: Decks & FX

(completed at off-shoot studio, Relentless Software), PlayStation 2, SCEE

1997 - 2002

The Creative Assembly, Southwater, UK

Weald House, Southwater Business Park, Southwater, Horsham, West Sussex, RH13 9JB, UK

Junior Programmer / Programmer

Winter '97 - Spring '00

Shogun: Total War

PC, Electronic Arts

Summer '00 - Summer '01

The Mongol Invasion/Warlord Edition

Shogun: Total War expansion pack/special edition, PC, Electronic Arts

Summer '01 - Spring '02

Medieval: Total War

PC, Activision

1994 - 1997

Intelligent Research Ltd., London, UK

89 Constantine Road, London, NW3 2LP, UK

Degree Placement / Contracted Programmer

1990

AVP, Chepstow, UK

School Hill Centre, Chepstow, Monmouthshire, NP16 5PH, UK

Programmer / Helpline support

1986 - 1987

BEEBUG, St Albans, UK

BBC Micro user's club and magazine

Contributor

 

Roller Rally / Roller Coaster

Top-down scrolling Marble Madness clone

 

Egg Head

Boulder-dash/Repton clone

Papers

2015 - Present

ISO C++

Contributor to SG14, SG6 and LEWG

2015 - 2016

P0037 - Fixed-Point Real Numbers [R0] [R1] [R2] [R3]

2016

P0381 - Numeric Width [R0] [R1]

2017

P0554 - Composition of Arithmetic Types [R0]

2017

P0675 - Numeric Traits for Type Composition [R0]

Presentations

2016

ACCU (San Francisco Bay Area)

2016-06-08

Fixed-Point Arithmetic (slides)

2016 - 2017

CppCon

2016-09-19

fixed_point Library (video/slides)

2017-09-26

CNL: A Compositional Numeric Library

2017

C++Now

2016-09-19

Composite Arithmetic Types Are > the + of Their Parts (video/slides)

2017

Silicon Valley Code Camp

2017-10-07

Better Numeric Types in C++

Affiliations

2016 - Present

ACCU

Member

2017 - Present

BSI

C++ Panel member

Extracurricular

January - June 2004

Magpie Recycling Cooperative Limited, Brighton, UK

Saunders Park Depot, Saunders Park, Brighton, East Sussex, BN2 4AY, UK

Recycling Collector

  • Kerbside collection and sorting of household recyclables
  • Office collection from commercial premises and local university sites
  • Various on-site responsibilities such as unloading vehicles and bottle baling

April - June 2004

EBITS - East Brighton IT Support, Brighton, UK

Wellsbourne Centre, Whitehawk, Brighton, BN2 5FL, UK

Volunteer

  • Diagnosing and fixing hardware and software issues on computers brought in by local residents
  • Assembling parts from old, donated systems into cheap, working computers for people on low incomes
  • Giving free IT advice in person and over the phone

Education

1996 - 1997

University of Sussex, Brighton, UK

School of Cognitive and Computing Science (COGS)

MSc in Evolutionary and Adaptive Systems

Autumn '96

Formal Computational Skills; Introduction to Computer Science; Artificial Life; Adaptive Behaviour in Animals and Robots

Spring '97

Adaptive Systems; Simulation of Adaptive Behaviour; Neural Computation; Development in Human and Artificial Life

Summer '97

Dissertation: Morphogenesis in the Evolution of Control Architectures for Autonomous Agents

1992 - 1996

Middlesex University, Enfield, UK

AI Department, School of Psychology

BSc. (Hons) Artificial Intelligence with Psychology, 2:1

AI

Neural Networks, Artificial Life, Logic and Prologue, Knowledge Engineering, Lisp, POP11; AI Techniques; Recursive Search; Natural Language Processing

Psychology

A selection of AI-related topics including: Language and Thought; Visual Perception and Consciousness of Mind

Placement

A year working for Intelligent Research Ltd. (see above)

Technology

Languages

Assembler (6502, 80286/7), BASIC (Amstrad PCW, BBC B, Borland Turbo, Visual 6.5), C/C++(98, 03, 11, 14)/(Borland Turbo, Clang, GCC, GLSL, Intel, MS-VC++), C#, Cg, D, HTML/XHTML/CSS, Java, JavaScript, Lisp, Lua, Objective-C, PHP4/5, POP11, Prolog, Python 2.x (CPython, Stackless), Shell script (Bash, DOS), SVG, XML/XSLT

APIs/Libs

Android ADT/NDK, AWT, Boost, Boost.SIMD, Bullet Physics, Cocoa, DirectX, Eigen, GLFW, GLM, Google Benchmark, Google Test, KDE, LEDA, MFC, ODE, OpenCL, OpenGL/GLES, Pyramid, Qt, Quake 3 Game, ROS, SDL, SFML, Sockets, SQLAlchemy, UIKit, Unreal Engine 3

IDEs/Tools/Services/Source Control

Android Studio, AppVeyor, Bamboo, Bazel, Borland Turbo (Basic, C), CLion, CMake, Eclipse (ADT, CDT, Java), Git, IntelliJ IDEA, KDevelop, Metrowerks (PS2 C++), Mercurial, MS-VC++ v1.0 - 2013, Perforce, ProDG (PS3/PSP, Tuner/Debugger), PyCharm, SourceSafe, Subversion, Travis CI, VTune, Unreal (3, 4), Xcode

Platforms / Operating Systems

Android, AWS (EBS/EC2/S3), BBC Micro, CPM, FreeBSD 5/6, GNU/Linux (Debian/Raspbian/Ubuntu, Gentoo, Mandrake, Centos/Red Hat), HP-UX, MS-DOS v3 to 7, MS-Windows v2.1 - 10, OS X, Palm OS, PNaCL, Solaris, Symbian, VAX/VMS

( used as a development platform)

Recreation

Most of my spare time is divided between teaching my children bad habits and various software projects. I swim, cycle, walk and play soccer but never at the same time.