Bruce J. Bell -- extended resume bruce@ofb.net http://www.ugcs.caltech.edu/~bruce/ Education California Institute of Technology - Physics major - work also in EE, math - senior status, withdrew 1991 Technical Computers: Experience - fundamental skills algorithms: use, adaptation, and design system design: software engineering, OO/modular design quantitative programming: numerical methods/algorithms computer graphics: rasterization pipeline, ray tracing binary data and formats: spec reading and bit fiddling data/image compression: lossless or lossy coding - languages/other C: telemetry, parallel computing simulation, others C++: client/server networked application, others Perl: data digest & manipulation, system scripting shader languages: 3-D graphics, image processing Java: GUI design, image processing HTML/XML/CSS: nothing fancy, I edit with vi Postscript/PDF: digital prepress and related apps Haskell, assembly, Basic, Fortran, Postscript, shells: used as appropriate, when necessary - computer graphics experience game console development procedural shaders, OpenGL 3-D modeling/animation coursework in CG programming independent study and personal projects - cloud computing experience setup, administration, and maintenance of production services - sysadmin experience with Unix: Linux, SunOS, HP-UX, SGI, AIX, BSD heterogeneous clusters Apache, Sendmail, Samba server administration tech support - familiar with MS-DOS, MacOS: general tech support, hardware & software Electronics: - courses in analog and digital electronics (plenty of theory, minimal practice) Other: - semiconductor processing lab - drafting - machine tools Work Site Reliability Engineer Experience - for Google -- January `10 - January `11: I was part of a team responsible for running a set of Google's critical production services. Our responsibilities included resource planning, service configuration and migration, production software updates, monitoring and alert setup, and emergency response and repair. This last entailed periodic duty as primary oncall responder. graphics programming - for Blue Shift, Inc. -- November `07 - February `09: Blue Shift is a small videogame company; they did a lot of contracting and consulting to larger firms. Most of this was technical heavy lifting -- putting pixels on the screen, making your game run fast and look good. I built post-effects systems for the PS3 and Xbox360 consoles (real-time image processing using the graphics chip), and did some programming for the IBM/Sony Cell chip, on the PS3 console (also image processing, on a signal processor type architecture) The major games I worked on were: Ballers Blitz - The League 2 both Midway sports games. software QA support - for NVIDIA -- January - September `06: Modern video cards are programmable; the programs are called "procedural shaders", and are usually written in specialized shader languages. These programs need to be translated into the proprietary machine code used by the video chip, so a compiler for shader languages is an important part of the video card driver. I did software QA support for NVIDIA's compiler group; I helped set up automated performance and unit testing for internal use. [various things for various people] - summer `02 - winter `05 A variety of short-term jobs, including consulting, temping, tutoring, etc. Some of the consulting jobs were technically interesting -- for one, I advised a motion control company on how to control a hydraulic motion platform, for use in production of the movie, "Avatar". UNIX system administration - for Caltech ITS department -- December `99 - June `02: I was an internal contract sysadmin working for various departmental Unix clusters. I also worked the helpdesk, providing Unix/Linux expertise and general tech support. wrote telemetry software for Shuttle Radar Topography Mission (SRTM -- STS99) - for Telemetry Broadcast Corp. -- August `98 - December `99 TBC (now MissionSpace -- see www.missionspace.com) is a small contracting company that provided the telemetry software used by payload ground control on that mission. As required by specifications, we worked entirely in portable ("vanilla") C on Unix platforms. In large part, I worked on their telemetry decoder, which read the telemetry stream and distributed selected data to the workstations used by payload ground control. I also wrote various small programs that received, reformatted and relayed commands and data. For the telemetry decoder, I designed and wrote a state machine generator that was instrumental in efficiently synchronizing with the telemetry stream. game designer (on SGI workstation, for Sony Playstation) - for Rhythm & Hues -- October `96 - September `97 R&H is a medium-sized computer graphics company in the LA area (see www.rhythm.com). They do a lot of work on movies and commercials, but I was hired for a videogame project (their first). I was one of a team of "scripters" who built and animated game environments, specified gameplay, and in general translated between the directors and the game engine. We were not programmers per se, but the tools we used required both 3-D skills and computer expertise. (I never was sure whether or not the game engine was Turing-complete...) programming (C++, under Unix and Borland environments) - for Caltech Humanities/Social Science Dept. December `94 - September `96 I worked for a couple of different professors during this time. I worked on a game-tree program for Dr. McKelvey (implementing matrix and linear programming algorithms), and I wrote an interactive client-server system for experimental economics for Dr. Plott. Both of these were in C++. programming (Pick-Basic, Unix and Windows environments) - for Questor Systems -- March 4 - April 22 `94 UNIX system administration: - for Caltech computer graphics research group led by Al Barr -- winter `92 - summer `93 Al Barr's graphics group was (and still is) a fairly large, heterogeneous Unix cluster. I was one of 2 sysadmins, and they really needed more than us... As a CG group, they used enormous (for the time) amounts of data storage; they had an optical jukebox, for which I wrote a Perl program to manage mounting and unmounting requests by users. Summer Undergraduate Research Fellowship - research in micromachining under Dr. Y. C. Tai -- summer `91 I proposed a design for a room-temperature infrared detector. Unfortunately, it was really too ambitious for a summer project, and I didn't get much farther than materials characterization. Similar devices have since been developed and implemented by others. computer retail - PC repair, technical support, misc. -- late `89-`90 programming (C, under Borland environment) - game tree editor for Social Science professor `87-88 I wrote this program for Dr. McKelvey at Caltech. In the next few years, it would grow into a larger and more complex program that I would work on again starting in `94 (see above) programming for Caltech hypercube project (C/UNIX) - summers `86 and `87 As a summer student, I worked for the Caltech Concurrent Computing Project. They had a communications library for programming hypercube-connected parallel computers; I worked on an emulator for debugging and testing parallel programs on a standard Unix computer. Portfolio: http://www.ugcs.caltech.edu/~bruce/portfolio/ References: available on request