James D. Haley
P.O. Box 551
Tecumseh, OK 74873
A job that will require my skills in cross-disciplinary programming, team work, organization,
and communication, as well as my diverse talents and creativity.
SUMMARY OF SKILLS
- Computer Languages: Fluent in C, C++, Java, and DHTML with
assembly, x86 assembly, 6502 assembly, and PL/SQL.
- Libraries and Programs: Extensive experience using SDL
and supporting libraries to create multi-platform game engines. Experience with OpenGL
for 2D and 3D graphics. Experience using Microsoft Visual C++, DJGPP, and MinGW. Experience
creating graphical user interfaces with Windows MFC and Java Swing. Experience using
Subversion to maintain online source repositories.
- Methodologies: Firm knowledge of object-oriented design
principles. Familiar with software engineering techniques for scheduling, cost estimation,
metrics, documentation, and prototyping.
Bachelor of Science in Computer Science, December 2002
Oklahoma State University, Stillwater, OK
GPA: 3.4 / 4.0
High School Diploma, May 1998
Tecumseh High School, Tecumseh, OK
GPA: 4.35 / 5.0 (Honors Diploma)
RELATED COLLEGE COURSEWORK
- Computer Graphics: Established a strong
understanding of three-dimensional computer graphics, including use of the OpenGL
library in C++. Final project was the development of a complete binary space tree
rendering engine and supporting utilities.
- Data Structures and Algorithms: Learned dozens of
algorithms and how to implement them independent of language used. Acquired skills for
selecting the appropriate solution to a problem based on factors such as input size,
efficiency, and practicality.
- Object-Oriented Programming and Visual C++: Developed
skills in object-oriented program design. Established proficiency in use of the Visual
Studio development environment. Created numerous programs using both console and
Windows MFC interfaces. Final project was a complete edutainment game with database
- Linear Algebra: Established familiarity with vector
and matrix algebra. Addressed applications to computer graphics and physics simulation.
- Software Engineering: Addressed industry-standard
software design practices and issues. Included term-length team project to specify and
prototype a web-based Java source code database. Project included interaction with an
Tecumseh Public Schools -- Tecumseh, OK; October 2005 - Present
Assumed full responsibility for day-to-day operations of the high school library, including
circulation, shelving, overdue list processing, sale of supplies to students and teachers,
card catalog maintenance, user records maintenance, discipline, and care of books. Full
experience with LibraryPro acquired. Significant portion of job centered around maintenance
and upgrades to computer systems both within and outside of the library; as part of this
effort, the LibBlock application was developed to facilitate fast and easy blocking of
inappopriate websites from school computers in a manner not available from normal filtering
software. Other improvements made were the installation of VNC to monitor remote workstations
and tightening of Windows 2000/Windows XP security settings to disallow alterations to computer
and web browser configurations.
Tecumseh Public Schools -- Tecumseh, OK; September 2003 - October 2005
Monitored classrooms of various size at the elementary and secondary levels. Assigned
work and taught lessons provided by licensed teachers. Performed assistant duties including
operating copying and duplicating machines; monitoring halls, recess, and dismissal; classroom
paperwork; and reading with students to satisfy Accelerated Reader program requirements.
Operated LibraryPro software to check books in and out of school library.
Pratt Foods -- Shawnee, OK; May 1999 - August 1999
Operated cash registers, bagged groceries, restocked merchandise, performed janitorial duties,
and assisted customers.
Pratt Foods -- Shawnee, OK; October 1997 - December 1997
Bagged and carried out groceries, restocked merchandise, and performed janitorial duties.
Hobbies and Activities
I am an avid gamer and enjoy games of all types. I program games in my free time, including
the Eternity Engine and RayCaster. I also write poetry and compose music. I was involved in
music throughout junior and high school where I played percussion and sang tenor in choir.
I was a member of the 1998 All-OMEA Honor Chorus, as well as various other honor music groups.
Freelance Programming Work
These are projects on which I have worked either in my free time or for contract.
- The Eternity Engine
Based on id Software's DOOM, the Eternity Engine is an evolution of the game that
provides exciting new features for both players and editors. Programming work on this
codebase in excess of 120,000 lines of code has included addition of the Small
scripting language, integration of the libConfuse library to provide a custom data
specification language (EDF) for game entity classes and finite automaton states, porting
the code from DOS to Windows with use of the SDL library, repair of many stubborn and
hard-to-crack bugs including issues specific to the Windows XP platform, and close
attention to user requests for new gameplay and interface features. The Eternity Engine
is a team effort with programmer Stephen McGranahan.
- Eternity Frontend
The Eternity Frontend is a complete Win32 application for launching the Eternity Engine
written in C++ and using the Windows MFC library. All game engine commandline options are
available through a tab-based interface. Many settings are stored in the registry, and
process communication is achieved through a generalized, extensible system for writing
options from dialogs into a response file. This program is also capable of running an
external utility called SLIGE to generate a set of randomly constructed game levels.
RayCaster is a retro game project using an update of technology employed in games such
as Wolfenstein 3D and Rise of the Triad. It employs a ray casting engine to draw a
texture-mapped world and supports looking up/down and change of viewing height. The game
engine is written from scratch in C++ with object-oriented design, and it uses the SDL
library for video, input, sound, and image loading. This is a work still in the early
stages of progress. It will eventually function as the platform for a complete 3D RPG
game, the first episode of which will be available as shareware.
Fachtier was a 2D tile-based game similar to Pokemon which was a project lead by an
acquaintance. The project was canceled, but before it ended I implemented various subsystems
for the game engine including font display, dialog boxes, world tile array, and movement
clipping. This project required teamwork and the modification of previously existing code.
LibBlock is a Win32 application targeting Windows 2000/Windows XP systems which allows
the user the ability to edit the local machine's "hosts" file in order to block access
to websites which are deemed inappropriate under CIPA or local usage policies. Hosts
are read from and written to the file on application open and close, and they are stored
in a hash table with double-linked buckets during execution. Buttons allow the addition
or subtraction of individual sites from the list, as well addition or removal of a list
of sites from a text file.