Resume

TECHNICAL DIRECTOR, SOFTWARE ENGINEERING

I am a Senior Software Engineer working at a major game company in Shanghai (China). In the past I have worked at various other big companies in the Netherlands including Guerrilla Games (Amsterdam) and ICT (Rotterdam). I am passionate about Technology. Apart from C++/C# I have special interest in high performance and embedded systems as well as P2P technologies.

PERSONAL INFO

Gender: Male
Date of Birth: June 19, 1971
Nationality: Dutch
Residence: Shanghai, China (China Permanent Residence Card holder)
Address: 3-1506, 34 South Yili Road, Shanghai, China
Mobile: 18616793279
Website: website
Email: email me

Language Skills

  • Dutch (Native)
  • English (Fluent)
  • Chinese (Intermediate)
  • German (Beginner/Intermediate)

TECHNOLOGY SUMMARY

Languages/Programming:

  • C/C++
  • C# (.NET 2.0 to 4.6)
  • Golang
  • Assembly (AVX/SSE, MC680x0, DSP560x0, Zilog and PIC micro controllers)
  • LUA
  • Python

Systems:

  • PSP/PS2/PS3/PS4
  • Xbox-360/Xbox-One
  • Nintendo DS/WII/Switch

Cryptography:

Experience with and understanding most of the following:

  • SHA-1, SHA-3 (Keccak)
  • Skein
  • Merkle-Tree
  • Block-Chain

Network:

  • TCP/IP, Ledbat
  • Protocols; packet/messaging custom protocols, pub-sub, req-rep
  • P2P; DHT (Chord, Kademlia, Symphony), BitTorrent protocol
  • ZeroMQ
  • MessagePack / Protocol Buffers

Databases:

  • Redis
  • MongoDB

PROFESSIONAL EXPERIENCE

Shanghai Virtuos Software Co., Ltd. – Shanghai China

Technical Director (Software), 2005 to Present

Develop, maintain and support tools and systems for the infrastructure of projects, console and mobile platforms using C/C++, C# and related tools. Analyze code for system testing and debugging; create tests to find, isolate and rectify issues; create and use tools to find performance and memory isues and create solutions to optimize and reduce memory usage. Managing a team of 8 to 30 engineers.

Highlights:

  • SCRUM, Hansoft, JIRA
  • Exposed to many consoles; Sony PSP/PS2/PS3/PS4, Xbox 360/One/One X, Nintendo DS/3DS/Wii/Switch
  • Team Management, from small teams ~5 to teams consiting of ~20 programmers
  • Learned many version control systems, from CVS/SVN and Perforce to Mercurial and Git
  • Dealt with many game engines, from commercial engines like UE3/UE4/Havok-Vision as well as AAA proprietary engines
  • Worked with many commercial SDK’s; Bink, Scaleform, Havok Physics & Animation, PhysX, FMOD & WWise
  • Full development for SpeedRacer for Nintendo DS, writing everything from scratch. Project and game where quite succesfull

GUERRILLA GAMES – Amsterdam, NL

Senior/Lead Programmer, 2000 to 2005

Led project programming tasks including enhancements, maintenance and support for products and tools. Engineered software systems, handling detailed analysis and intricate programming to meet project requirements.

Highlights:

  • Killzone (PS2)
  • 1st person shooter
  • Perforce
  • Cooperation with Artists and Level/Game Designers
  • PS2 VU0/VU1 programming
  • Lots of debugging
  • Very strong technical team
  • Programming Team had great synergy
  • International team

Digital Infinity – Haarlem, NL

Programmer, January 1999 to December 2000

Highlights:

  • Worked on Katharsis; a 3D engine, universally applicable 3D engine for various platforms.",
  • Developed a radiosity lighting system for the Katharsis 3D engine and experimented with software rasterization techniques like S-Buffer, Span-Buffer, Edge detection etc.",
  • Company merged into Lost Boys Games that later became Guerrilla Games”

ICT GROUP – Rotterdam, NL

Programmer, March 1998 to December 2000

  • Worked in a small team of 8 professional software engineers developing a public transport bus system as a combination of software and hardware. Using UML and Rational Rose to design new or modify existing system designs, followed by implementation or refactoring complemented with test suits and documentation.
  • Received training in communication and assertiveness, software engineering and management.

LOSTBOYS GAMES – Amsterdam, NL

Programmer / Programmer II, 1996 to 1998

  • Progressed through promotions, culminating in responsibility for 2d and 3d-based application programming focused on multi-media. Became adept in optimizing code for performance as well as standardizing libraries for enabling system testing and debugging.

PANNEKEET MACHINE TECH – Alkmaar, NL

Industrial Machines Company, Programmer, 1995 to 1996

  • Worked as an individual on supporting machinery with PLC software to automate machines using sensors and actuators to control their flow and operation. Introduced the use of finite state machines (FSM) and hierarchical FSM to the process of developing software where before there was no structured approach, by adding additional debugging information to state-machines as well as solid documentation on the states and their transitions ‘debugging’ was greatly improved for engineers but even for customers.

Education & Credentials

HTS – Alkmaar, NL
BS in Electrical Engineering, 1990 to 1994
Graduated in Measurement and Control Systems

MTS – Den Helder, NL
Electrical Engineering, 1986 to 1990

Certifications

  • SCRUM Alliance, SCRUM Master, 2008
  • Workshop in Object-Oriented Analysis and Design

Projects

L.A. Noire (Xbox 360 to Nintendo Switch)

Porting L.A. Noire from Xbox 360 to Nintendo Switch

Virtuos Games

  • Wrote runtime component to save profile and memory allocation events with stack-trace and scope, frame number and timing information from multiple threads
  • Wrote a tool to convert the profile information to a format that could be read by FramePro
  • Wrote a GPU memory allocator based on best-fit algorithm
  • Integrated UMBRA into the data building pipeline and runtime
  • Part of the realtime MPG streams where converted to use Bink to increase CPU performance
  • Refactored a lot of global scope object instances to ‘create on initialization’
  • Made the decision and changes to have all streaming data uncompressed to increase CPU performance
  • Assisted Senior Engineer to analyze/profile file-IO to write an optimum FileReader
  • Assisted Senior Engineer to port old FMOD-Ex to FMOD Studio for Nintendo Switch

Assassin’s Creed The Ezio Collection (PS4, XBox One)

A port to the Playstation 4 and Xbox One

Virtuos Games

  • Managing a team of 10+ engineers
  • Extending the data building tools to support Xbox One Porting the runtime to Xbox One
  • GPU Profiling and optimizations
  • Constant Buffer usage optimization

Heavy Rain (PS3 to PS4 port, proprietary engine and tools)

Porting Heavy Rain PS3 to PS4

Virtuos Games

  • Replaced custom memory allocator with DLMalloc and refactored the whole code-base to use a standard memory allocation API. This allowed us to swap from a final allocator to a debug allocator very easily during development.
  • Wrote the PS4 render engine and made many render passes multi- threaded
  • Working with Artists and Graphics Engineer to integrate ‘cubemap based environment lighting’
  • Integrated Bink to provide us with movie frames in an asynchronous manner
  • Wrote a lock-less JOB system used for multi-threading animation and render-passes
  • Did a lot of CPU optimizations to get the game at 30+ FPS

Batman: Return to Arkham (PS4, Xbox One, PC, Unreal Engine 4)

A challenging port by merging engines, UE3 and UE4 and moving to a PBR pipeline

Virtuos Games

  • Setup many details on how to merge UE3 core engine into UE4
  • Extended Mercurial (Hg) to be able to handle large amount of binary data
  • Designed an Artist PBR workflow to automate and ease the validation of PBR assets

Fable Anniversary (XBox 360, Unreal Engine 3)

A port of an XBox game to Xbox 360 using Unreal Engine 3 merged with the old game engine

Virtuos Games

  • UE3
  • WWise
  • Merging UE3 and proprietary game engine
  • Designed the interface layer between proprietary engine and UE3
  • UE3 package analysis and re-distribution of objects to match story line
  • FaceFX
  • Wrote a batch convertor for Audio/Voice to Face FX animation for all supported languages
  • Localization compression
  • Scaleform

Generator Rex: Agent of Providence (PS3, 360, Wii)

Full development of Generator Rex using a custom engine and tools

Virtuos Games

  • PhysX
  • Visual Scripting
  • Cross platform custom engine Custom Editor
  • Managing a team of 25 engineers FMOD

MonsterJam: Path of Destruction (PS3, 360, Wii)

Full development writing a custom cross platform engine and tools

Virtuos Games

  • Managing a team of 20+ engineers
  • Integrated Bullet Physics
  • Terrain collision was done in a custom ‘grid’ manner to speed up raycasts
  • Full Particle System and Editor
  • WII render engine and material system

Motorstorm: Arctic Edge (PS2)

Co-development, responsible for the PS2 version of the game

Virtuos Games

  • VU0/VU1 skinning job
  • Adjust data-building pipeline to also build PS2 graphic data PS2 render-engine
  • Did a lot of implementation and refactoring of the PS2 render engine
  • Automated performance testing
  • CI/CD using Team City
  • Perforce

Pimp My Ride: Street Racing (PS2, NDS)

Full development of a Pimp My Ride game for PS2 as well as Nintendo DS

Virtuos Games

  • Re-used and extended the C# based data description and build pipeline.
  • Support for the data-pipeline to be incremental, caching converted assets and using a dependency tree
  • Big-file re-ordering based on file-order-access logged by the game
  • Designed and assisted with the implementation of a UI authoring pipeline using Microsoft Blend

SpeedRacer (NDS)

Full development, game engine, AI, Tools, UI framework and networking

Virtuos Games

  • Designed and Implemented the (Render) Engine to run at 60 FPS
  • Designed the technical aspects of the 3D track structure and how cars would drive/navigate
  • Written a full C# based data description and build pipeline
  • Worked with VFX artist to make all of the VFX just scaling effects instead of actual particle simulation
  • Big-file and index-file generation

Asphalt 2 for Nintendo DS

Porting of Asphalt 2 (N-Gage) to Nintendo DS (2006-2007)

Virtuos Games

  • Ported Render Engine to Nintendo DS
  • Optimized (the hell) out of the UI rendering to get 30 FPS Integrated distance based fade-in/fade-out

Street Riders PSP

Porting of Street Riders PS2 to PSP (2005-2006)

Virtuos Games

  • CodeWarrior, C/C++
  • CI/CD, CruiseControl
  • Wrote the complete Render Engine for PSP
  • Extended data-building tools to write out PSP graphic and texture formats
  • Optimized the skinned mesh parts (bone constraint) using minimum spanning trees
  • Optimizations, C/C++

Killzone PS2 (2000-2005)

Full Development of Killzone for PS2

Guerrilla Games

  • SN-Systems C/C++
  • Perforce
  • LUA Scripting <-> Game Systems
  • 1st Person Locomotion/Animation
  • Damage design for all weapons, working together with designers Pickup System
  • Bullet and Hit Detection
  • Developed a Particle System with LOD logic and smart memory (re-)use
  • Melee Attack
  • Optimizations of entity::update()