Jim Brooks
Melbourne, Florida USA
e-mail
brief resume

OBJECTIVES:

Seeking a role as a software engineer involving:
3D computer graphics, 3D engines, OpenGL, or video game programming.

PROGRAMMING LANGUAGES & SKILLS:

Programming languages:     C, C++ (STL,Boost), Python, Java
Programming tools:     GNU tools (gcc,gdb,gprof,Valgrind,etc), Subversion
Computer graphics:     OpenGL, OpenSceneGraph, 3D engine design
Game console programming:     Microsoft Xbox 360, Xenon SDK, Visual C++

OPEN-SOURCE PROJECTS:


Developed a flight simulator and 3D engine (link to screenshots and source code).
Designed and implemented its 3D engine which is specialized/optimized for flight simulation.
Its frame-rate and rendering capabilities has progressively improved as I gain deeper understanding
of graphics algorithms and their trade-offs and O() complexities.

GRAPHICS PROGRAMMING:

3D engines: designed/implemented/optimized 3D engine, scene graphs
math: linear algebra, vector, prefer matrix math over quaternion
data structs/algorithms: scene graphs, sort/cull/rendering with BSP trees, polygon culling
animation: state-machine, key frame, camera motion, BSP collision-detection
C++ style: STL, design patterns, prefer composition/mixin over derivation

ENGINEERING EMPLOYMENT HISTORY:

Software Engineer - [aerospace company] - Melbourne, FL - 2006...present
Summary: Graphics programming (OpenGL, OSG)
o Graphics programming for a flight simulator.
o Wrote code in C++ on Linux for OpenGL and OpenSceneGraph (OSG).
o Developed real-time rendering of weather, sky, and cloud models.
o Created visual effects.
o Configured flight simulation software to run on Linux PC.

Software Engineer II - Electronic Arts (Tiburon) - Orlando, FL - 2005...2006
Summary: video game programming (Microsoft Xbox 360)
o Software engineer for Madden 07 football video game (Xbox 360).
o Used Microsoft Xenon SDK and EA's game libraries/toolkits.
o Wrote C++ code for graphics presentation, online gaming, and networking with servers.
o Improved camera system. Fixed bugs in replay.
o Attended EA internal training classes (football AI, GPU shaders, Maya, etc).

Software Engineer (contractor) - CommerceQuest - Tampa, Florida - 2005...2005
Summary: C++/Java application programming
o Maintained code of a cross-platform data-transfer product.
o Written in C++/Java and based on IBM WebSphere MQSeries.
o Wrote Java RMI code to distribute execution across different systems.

Software Engineer (contractor) - Verizon Data Services - Tampa, Florida - 2004...2005
Summary: C++/Java application programming
o Developed middleware for sending messages across WAN networks
  that was capable of tolerating long periods of network failures.
o Middleware was written in C++/Java and based on IBM MQSeries.
o Designed load-balancer for deployment on UNIX systems.
o Developed a Java client that communicated with middleware.
o Wrote Java code using the Java NIO, socket, & stream packages.

Software Engineer (contractor) - (several companies) - Tampa, Florida - 2003...2003
Summary: Contract programming
o Short-term contracts writing software for Linux systems.

Sr. Software Engineer - Stonefly Networks - San Diego, California - 2001...2002
Summary: Embedded Linux development and network/socket/web programming
o Developed Linux system software for an iSCSI storage device.
o Wrote Linux code to transmit iSCSI packets directly in Ethernet frames.
o Wrote Linux drivers to monitor status of Ethernet link for system fail-over.
o To utilize an proprietary test tool, wrote a TCP proxy that translated iSCSI packets.
o Wrote Perl and MySQL code for web interface to storage device.

Kernel Engineer - LynuxWorks - San Jose, California - 2001...2001
Summary: Embedded Linux kernel and device driver development
o Developed LynuxWorks BlueCat embedded Linux kernel, device drivers,
  and cross-development tools according to client requirements.
o Was given hardware boards from clients that couldn't boot Linux:
  debugged, identified, and uncovered the root causes.
o Ported device drivers to other platforms.
o Wrote an IRQ handler in assembly language for the Linux ARM kernel.

Sr. Software Engineer - Ravisent (Axeda) - San Jose, California - 2000...2001
Summary: Embedded Linux kernel and device driver development, C++ application programming
o Developed a web browser Internet appliance written in C/C++.
o Reorganized existing source code to make it more modular and portable.
o Specified new function interfaces.
o Designed a platform-neutral device driver layer.
o Wrote Linux drivers for video, keyboard, flash memory, GPIO, and I2C devices.

Sr. Software Engineer - Chromatic Research (ATI Technologies) - Santa Clara, California - 1997...2000
Summary: Developed microcode for x86 microprocessor
o Designed and implemented the microcode of a dual-core x86-compatible microprocessor.
o During my tenure, the microprocessor and its microcode progressed from a prototype
  to a fully x86-compatible CPU capable of booting all popular operating systems.
o Participated with CPU architect and hardware engineering team in the CPU design.
o Proposed and designed new RISC microprocessor instructions.
o Implemented components of paged memory-management unit (MMU).
o Wrote functions in C/assembly of a microkernel (boot-strap, interrupt handlers, I/O).
o Found and fixed bugs in a microprocessor simulator written in C++.

Validation Engineer - Transmeta - Santa Clara, California - 1997...1997
Summary: Verification of x86 microprocessor
o Validated the x86 component of a proprietary microprocessor.
o Wrote directed and random diagnostic tests in assembly language.

Verification Engineer - Texas Instruments - Tampa, Florida and Dallas, Texas - 1994...1997
Summary: Verification of x86 microprocessor
o Verified the design and implementation of a Pentium-compatible microprocessor.
o A role was to be the on-site "x86 expert" on the 80x86 instruction set architecture.
o Project followed a formal verification methodology (not simply QA).
o Wrote tests according to test plans and coverage measurement data.
o Wrote directed tests and test generators for test automation.

PATENTS:

Co-inventor of U.S. patent #5,826,084 [HTML, PDF] in microprocessor architecture (Texas Instruments).

PUBLICATIONS:

Co-authored "Pentium's Virtual Mode Extensions Revealed"
Electronic Engineering Times, November 13, 1995 issue.

EDUCATION:

Have attended computer programming courses.
Continually study computer science textbooks.

keywords: resume, C++ programmer, C++ software engineer, OpenGL programmer, OpenGL software engineer, 3D software engineer, 3D graphics programmer, 3D engine designer, 3D engine architect, 3D graphics, 3D math, mathematics, linear algebra, 3D models, graph rendering, graphics programming GPU pipeline optimization, scene graph, scenegraph, OpenSceneGraph, OSG, OpenSG, SGI Performer, Open Inventor, game engine, game developer, game programmer, animation, 3D artist, 3D modeller, UNIX Linux programmer, Linux developer,