This is just copy/paste from my old resume

------------------------ ------------------------ ------------------------ ------------------------ ------------------------

 

CO-OP EXPERIENCE – 17 months    (ATI & AMD)

5 months experience Software Engineer Co-op at  ATI.  Marlborough, MA (6/20/2005 – 11/11/2005)

ATI Research, 62 Forest Street, Marlborough, MA 01752, (508) 303 3900, www.ati.com

 

ATI Research (Full-time Software - DirectX Drivers & Shader Compiler teams)

Develop DirectX10 Ref Rast shader (VS/GS/PS) interpreter – connect to DX10 alpha MS Ref Rast code.  Use Ref Rast to compile HLSL (or DX10 Asm) into DX10 tokens (then strip header info); use ATI code to convert DX10 tokens into DX10 disassembly and IL tokens; send IL tokens to SC for machine-specific binary.  DX10 tokens input to DX10 interpreter.  Results are compared to other interpreters, which include GPU machine level byte code interpreters and an intermediate shader language (IL) interpreter.  Random input is consistently generated for comparison with other interpreters.  Code organized to easily merge with MS Ref Rast updates.

 

Improve existing shader interpreter code (not DX10).  Compare results for all interpreters each test run (“cycle”) instead of at end (required break up run interpreter code into Init & RunCycle methods for each interpreter).  Refactor interpreter code (includes: move run interpreter & interpreter utility code into separate files; C++ wrappers for C code interpreters; share code in interpreter class parent & shader class parent).  Find & fix minor interpreter bugs.

 

Integrate SoftIL (special case) interpreter with the new changes and add improvements (to output results and doc).

 

Develop DX10 functionality tests to exercise functionality of DX10 drivers (then integrate into func test framework).  Basic func tests included “return input" VS/GS/PS, and texture min/mag/mip tests.  Write using pre-release DX10 Ref Rast.

 

(Part-time after hours nights/weekends secondary job - assistance with X-Box 360 hardware testing)

X-Box 360 GPU chip testing and console testing (vary settings such as clocks & temperatures & chip types to find pass/failure results)

 

1 year experience Software Engineer Co-op at AMD, (SRD - Software R&D).  Austin, TX (1/12/2004 – 1/7/2005)

AMD, 5204 E. Ben White Blvd., Austin, TX 78741, (512) 385-8542, www.amd.com

 

AMD SRD DirectX (Performance, Multimedia) Co-op Software Engineer, Austin, Texas (8/23/2004 – 1/7/2005) Fall Term:

ScullyMark (DirectX 9.0 Vertex Shader performance benchmark):

C++ DX-9 VS (Assembly & HLSL) performance benchmark program to test AMD’s DX software VS (PSGP).  Allows scripting and modular creation of DX VS app-level dll plug-ins, VS Asm/HLSL text files, and test options files (specify meshes, vert batch size, num frames, etc).

 

Smaller projects… automate DX tests; data analysis for ScullyMark output; wrote some VS Asm for benchmarks, simple managed DX tests/research (C#, windows console scripting, Excel, C++, DX VS Asm).

 

AMD SRD BIOS Co-op Software Engineer, Austin, Texas, (5/24/2004 – 8/20/2004) Summer Term:

BIOS AutoBuilder (prototype):

Automate nightly BIOS tests on a set of target hardware platforms.  Pull/Build current BIOS; Copy binary/etc to appropriate ABTT testing control; Remote flash target platform BIOS; Run ABTT tests; Return results to master control.  Multiple ABTT test suites run in parallel; fully automated nightly tests.  Control reports results of these tests (from the hardware “rack”) to the BIOS team via email – PASS or FAIL or ERROR (and link to detailed log).  Software/hardware integration:

 

Software: C# and .NET applications (Client on Master Control; Hosts on testing control systems).  Configuration files for each “test suite” (references to particular scripts and local/remote file paths).  Console cmd batch files linked to automate each SourceSafe pull, BIOS build, BIOS & hardware specific remote flash utilities, and ABTT tests.  Some ABTT scripts for coordination.

 

Hardware: Setup and integrated two ABTT testing sites: 1 master control system, 2 ABTT testing control systems, 2 KVM over IP and Remote Reboot Units, 2 target to-test platforms, and 2 hardware-specific remote BIOS flash hardware.

 

AMD SRD BIOS Co-op Software Engineer, Austin, Texas (1/12/2004 – 5/21/2004) Spring Term:

ABTT (Automated BIOS Testing Tool):

ABTT - graphical object-based scripting system/language for rapid dev of test scripts; fast/easy to learn (compared to code scripts)

 

Primarily automates user actions (respond to screen images, enter keyboard/mouse input, etc).  Also interact with KVM over IP hardware (file transfer, remote reboot, etc) and perform other functionality (flow control, script modularity, screenshot logs, comments, etc).

 

Scripts are created in the graphical editor by inserting graphical “block” objects, connecting outputs to inputs (flow control), and specifying properties for each script “block”.  Features include robust editor (load/save, undo/redo, copy/paste, hotkeys, robust script blocks, etc), simple user mode with script-specific options, debug/trace mode, command-line batching capability, and mouse click/search screen capture utility.  Code designed for easy extension (such as new script “blocks”)

 

ABTT Documentation was created for 3 target audiences: script user (simple GUI; and command-line), script developer, and application developer/maintainer.  ABTT was shared with other groups (including QA and BIOS California).

 

Implementation and code design - individual project.  Worked with 2 partners for requirements/goals, planning, documentation, other issues (such as code design).  (C# and .NET, GDI+ 2D graphics, internal (AMD) API for mouse/keyboard actions and image processing)

 

Courses in Software Development

* See transcript or www.rit.edu/~pem1491/courses.html for full course listing

Computer Science General: CS I-IV, Digital Design (CE), Assembly (CE), Data Communications, Programming Language Concepts, Operating Systems Scripting, Operating Systems, Intro to CS Theory
Software Engineering:
Software Engineering, Professional Communications, Software Verification & Validation, Engineering of Software Subsystems

Computer Science Specialized: C# & .NET Programming, Database Concepts, Scientific Programming, Computer Graphics 1, Graphics Game Programming 2D, Graphics Game Programming 3D, Computer Graphics 2 (“Image Synthesis”)

May also take before graduation: Computer Animation (Algorithms & Techniques), Procedural Shading

 

Programming Languages and Major APIs

Most Significant: C/C++, DirectX, MS VS .NET, Qt, C#, Java, Python, XML

Major Experience: OO Dev/Design, Comp Graphics, Applications, Hardware Simulation (software for hardware products), GUI, Automated Testing

Significant: Qt testing, OpenGL, Assembly, Networking & Sound C/C++ APIs, Unix (BASH, sed, awk, etc), SQL, Lisp, Prolog, Pascal, PHP/HTML, Adobe Flex (Flash)

 

Software Development Skills (Other than Programming Skills)

SD Process and Design: Planning, Requirements, Global Design, Detailed Design, UML (Visio, Rational Rose), Sequence, Protocol, Network, Database (ER), UI Design, Testing/Maintenance, Coding Standards, Code Doc, Presentations, User Doc, Algorithms

Project Coordination: SourceSafe/Perforce/CVS/RCS; FTP/web; Team (college & Co-op); Project coordination & recruiting

Platforms Exposure: Windows/NT/XP (console batch scripting), UNIX (emacs, console shell scripting, X-win32, SSH, Telnet, etc), Solaris, Redhat, Mandrake, Gnome, KDE, CDE, Knoppix

 

RIT Project Examples   * See www.rit.edu/~pem1491/projects.php3 for links to more info, screenshots, etc

“Mega Monkey Mayhem” (Team): C++, DirectX-8.1.  RIT extra-curricular project (entered in IGF at GDC 2004 Student Showcase).  Complete graphics and game logic refactoring of isometric “Super IsoBomb” into 3D.  Implement: game logic changes, graphical effects, particles, custom culling & drawing optimizations, A* homing bombs, projectile bomb physics, camera views, GUI, more. Recruited and organized contributions - all original content (art, textures, sound, music, maps, GUI, and models).  Console style action cartoon monkeys theme.  http://www.rit.edu/~jpw9607/m3/index.htm

 

“Xundar” (Team): 3D game and engine – C++, DirectX-8, some windows, fmod sound system.  Technical features include: outdoor random terrain generation, indoor map file dungeons generation, 1st & 3rd person movement cameras, culling and optimization methods, collision detection, 2D elements (font engine, HUD), textures, lighting, custom imported models, animation, particles, custom sound effects and music, indoor item types with interactivity, and other special effects.  www.rit.edu/~pem1491/Xundar

 

“Super IsoBomb” Net (Individual): C++, DirectX-8.  Real-time net protocol design & implementation (using RakNet API) added IP multiplayer to preexisting 2-player split screen local version.  Also 2D graphic and game logic features.  www.rit.edu/~pem1491/IsoBomb/

 

Tile Map Editor Individual, extra-curricular, C# & .NET, dynamic Windows Form, map files for “Xundar” dungeons and “Super IsoBomb” maps, design patterns.  Isometric Game (“Water Island”) 3-person, DirectX-8, DirectSound, C++, 2D action RPG, loads map file, displays isometric tiles, 2D-collision detection, combat, bitmap text output, class system design, animations, music, sound effects, levels.  Ray Tracer 2-person, OpenGL, C++, spheres, checkerboard floor, lighting, reflection, refraction, shadows, post-process Tone Reproduction.  Drawing Editor Team Project, Java, 2D shape graphics, design patterns, dev in stages.  Checkers Project Team Leader, Java, GUI, TCP/IP, modular design, process in stages