Tim C. Schr der
Email: ***@*********.*** Skype: blitzcode LinkedIn Profile See www.blitzcode.net for further details
Experienced Software Engineer
System Programming / HPC / Computer Graphics Specialist
Solving challenging parallel programming problems, large datasets, realtime constraints, researching and
implementing algorithms on everything from a game console to a supercomputer. Writing maintainable
and efficient code for shipping software products. Diverse computer graphics background ranging from
games to physically based rendering. Experience with functional programming and AI techniques.
Skills
Programming Languages
Strong C/C++ (Many different platforms and environments, C++11, STL, Boost, Parallel
extensions like CUDA and OpenMP, Projects with >1M LoC, 10+ Years)
Working knowledge of C#, C++/CLI, Lua and Vim Script
Haskell (GHC), Various GPU and GPGPU Languages, HTML & CSS, XML
Linux / UNIX
Development experience on Linux and others like Darwin / BSD, SGI IRIX / Altix etc.
Working with standard tools, Makefiles, Vim power user, Highly networked environments (ssh,
X11, GNU screen, rsync, cURL, VPNs, etc.), pthreads, sockets and other POSIX APIs, Cygwin,
GCC and GNU Binutils, ELF file format, Build optimizations for CellBE SPUs
Debugging of complex multithreaded applications with TotalView Debugger, knowledge of gdb and
its various front ends, also familiar with SGI ProDev WorkShop Debugger (cvd)
Valgrind, Intel VTune Performance Analyzer for Linux
Macintosh
OS X power user with development experience, mostly from a UNIX perspective using multi-
platform tools and APIs, Apple Shark profiler, Mach kernel APIs, etc.
Windows
A decade of Windows programming practice (deep knowledge of tools and platform)
Win32/64 Expert (Processes & Threads, Memory Management, DLLs & Binary Compatible
Interfaces, Networking, .NET Environment, DirectX, Porting to / from UNIX etc.)
User interface development with Windows Forms, MFC and the raw Windows APIs
Visual Studio power user
Graphics Programming
Everything from realtime 3D for games to physically based rendering, techniques such as
Path Tracing, Photon Mapping, Surface Parameterization, Spherical Harmonics, Progressive
Meshes, Shadow Maps / Volumes, Spectral Rendering, Tone Mapping, Environment Map Lighting,
Image Compression (DCT based), BRDFs, Hardware Shaders, Precomputed Radiance Transfer,
10+ years of experience with Direct3D and OpenGL
Graphics experience on multi CPU / GPU systems, Game Consoles, CellBE and GPGPU platforms
Vertex and Pixel Shaders (Assembler, Cg, CgFX, GLSL, HLSL and FX Files)
mental ray HW Shaders, Phenomena and .mi Scene Description Language
Additional Algorithms / Techniques / Data Structures
Monte Carlo Tree Search / UCT, (Quasi-) Monte Carlo Integration, Out-of-Core Processing, Lock-
Free Programming, Data Compression (Burrows-Wheeler Transform, Huffman Codes, etc.), BVH &
kD Trees, Hash Tables, Stencil Codes, Functional Programming, ...
Additional Software
VMWare, Doxygen, VTune, Quantify, SVN / CVS, Perforce, SourceSafe, FogBugz, Bugzilla, Jira,
Visual Assist, IncrediBuild, Pulse, BoundsChecker, NVIDIA Visual Profiler, nvidia-smi,
PLAYSTATION 3 SDK & GameOS tools (including PA Suite, ProDG debugger), IBM and Sony Linux
CellBE SDKs, Classic XBox SDK, Basic knowledge of the 360 SDK
Professional Experience
NVIDIA (November 2010 Present, Senior Compute DevTech Engineer)
Opening up new domains of application for GPUs by researching and developing GPU computing
algorithms, driving their adoption with key application developers, and ensuring the best possible
performance of GPU computing applications on current and next-generation architectures
Supported HPC experts and domain scientists during GPU port of a major Numerical Weather
Prediction package. Software included stencil metaprogramming library in CUDA C++ and PGI
Accelerator instrumented F90 code. Deployment on Tesla GPU machines from Cray and HP.
Customer training through webinars, conference presentations, on-site visits and seminars
Gave feedback based on customer codes to internal driver, architecture, compiler and tool teams
Developed CUDA SDK samples (Peer-to-Peer, Unified Virtual Addressing etc.), Documentation
NaturalMotion (January 2010 April 2010, Senior Runtime Engineer)
Engineer on the PC and console (PS3 / 360) runtimes for morpheme / euphoria game animation
middleware (optimization, refactoring, development of new animation nodes, C++ / Lua,
Direct3D based renderer (characters, shadows, outdoor lighting) for demonstration application
mental images (May 2004 December 2009, Senior Graphics Software Engineer)
Autodesk ProMaterial shader support for iray renderer
Optimization work on mental ray's BSP2 renderer (memory, intersection)
Early development of a relighting tool, including algorithm / data structure design,
implementation of the GUI and file formats (project put on hold for business reasons)
Researched raytracing algorithms for CellBE processor using simulator / IBM Blade, successful
prototype led to contract for a CellBE port of mental ray
Worked with a large range of CellBE platforms: IBM QS20/22 Blades, Sony BCU-100 and
PLAYSTATION 3 (GameOS & Linux), implemented advanced concepts such as cooperative
multithreading for SPEs, a pipeline for loading and executing MetaSL SPE shader code, a C++
template library for DMA transfers, trained and supported team members in all things CellBE
Developed and documented strategy to port raytracing algorithm from proprietary chip to NVIDIA
CUDA platform, including implementation of a CPU based prototype
Maintained and enhanced mental ray's OpenGL / Cg rendering backend while doing a Direct3D /
HLSL / FX File port of it
Developed scalable rendering software on multi-GPU machines from SGI and PANTA Systems
Worked on next-generation rendering platform for RealityServer 2.0:
GLSL / Cg, Tile Rendering, OpenGL, Texturing, DDS Support, Shadowmaps, Anti-Aliasing,
Cubemaps, ...
Assisted in MetaSL / mental mill development (Cg backend, Direct3D rendering, early evaluation
of an VM platform, builds for external employees, CellBE port)
Early design and implementation of 2D annotation renderer for RealityServer 2.0
Supported hardware shader writers for 3ds Max and SolidWorks
Created testsuite to ensure quality of mental ray hardware rendering
Developed in a UNIX-centric environment using Linux / IRIX / Cygwin
Freelancer (March 2004 - May 2004)
Implemented Photon Mapping for walkthrough applications as C++ library for KPB
Created a lightmap compiler and viewer using C++ and OpenGL for S&P Software
Presented 'Realtime Shadow Techniques' at JOIN04 Conference
Crytek (March 2001 - August 2003, Software Engineer)
Developer on tools, game and engine code for Far Cry / CryENGINE
Worked on WYSIWYG game world editor (MFC application, procedural tex. generation & object
placement, heightfield editing & lighting, game engine integration,
Did basic rendering R&D and a proof of concept port of CryENGINE on the Xbox
Wrote game logic code in C++ / Lua (had to work in multiplayer scenarios)
Implemented Lua script code debugger integrated in game & editor (including GUI)
Programmed lightmap system that combines classic lightmaps with bumpmapping
Portfolio
Please visit my website www.blitzcode.net for examples of my work.