|
Jim Brooks |
Seeking a role as a software engineer involving:
3D computer graphics, 3D engines, OpenGL, or video game programming.
| 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++ |

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.
| 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 |
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.
Co-inventor of U.S. patent #5,826,084 [HTML, PDF] in microprocessor architecture (Texas Instruments).
Co-authored "Pentium's Virtual Mode Extensions Revealed"
Electronic Engineering Times, November 13, 1995 issue.
Have attended computer programming courses.
Continually study computer science textbooks.