Links
#!/usr/bin/perl # use strict; # use CGI::Carp qw(fatalsToBrowser); print "Content-type: text/html\n\n"; my @sidebar_items = ( {title => 'About Me', class => 'aboutme', url => 'index.html', children => [ {title => 'Academics', url => 'index.html#academics', class => 'aboutme'}, {title => 'Interests and Hobbies', url => 'index.html#interests', class => 'aboutme'} ]}, {title => 'Projects', class => 'projects', url => 'projects.html', children => [ {title => 'The Right Decision: Justifications of Morality', url => 'projects/suff/index.html', class => 'projects'}, {title => 'Attribute-based File Management (Coming Soon)', class => 'projects', disabled => 1} ]}, {title => 'Essays', class => 'essays', url => 'essays.html', children => [ {title => 'Coming Soon', class => 'essays', disabled => 1} ]}, {title => 'Gaming', class => 'gaming', url => 'gaming.html'}, {title => 'Resume', class => 'resume', url => 'resume.html'}, {title => 'Contact', class => 'contact', url => 'contact.html'} ); # If they're at a directory, assume they want the index.html file there: if ($ENV{REQUEST_URI} =~ /\/$/) { $ENV{REQUEST_URI} .= "index.html"; } # If we're viewing pages of a document, associate them with the index.html file in that directory: if ($ENV{REQUEST_URI} =~ /(.+?)\/(.*?\/)page(\d+?)\.html$/) { $ENV{REQUEST_URI} = "$1/$2index.html"; } my $sidebar_string = "
\n"; foreach my $item (@sidebar_items) { $sidebar_string .= "\t\t\t

{class}"; if ($ENV{REQUEST_URI} eq "/~phoenix/$item->{url}") { $sidebar_string .= "sel"; } $sidebar_string .= "\">{url}\">$item->{title}

\n"; if (exists($item->{children})) { $sidebar_string .= "\t\t\t
    \n"; foreach my $child (@{$item->{children}}) { if (exists($child->{disabled}) && $child->{disabled} == 1) { $sidebar_string .= "\t\t\t\t
  • $child->{title}
  • \n"; } else { $sidebar_string .= "\t\t\t\t{url}") { $sidebar_string .= " class=\"$child->{class}sel\""; } $sidebar_string .= ">{url}\">$child->{title}\n"; } } $sidebar_string .= "\t\t\t
\n"; } } print "$sidebar_string\t\t
";
Résumé

Brian Ellis

User Interface Designer and Software Engineer

5521 Wilkins Avenue, Apartment 4
Pittsburgh, PA 15217
firebird@andrew.cmu.edu

Objective

To design, write, and enhance quality software applications, improve the quality and usability of software interfaces, and in the process make the world a slightly better place.

Motivation

I have always cultivated a great desire to create, to apply my mind to something without form and shape it into something elegant and useful. I have spent much of my time exploring the media of creation, ranging from written language to graphic design, from software engineering to system dynamics, and early on I realized the enormous potential of the computer as a creative tool. Since then, my focus has been almost entirely on creating software, Web pages, and digital graphics, and I have developed a particular interest in the principles of good human interface design. I've released several pieces of software for the Macintosh platform, and have devoted myself to learning many programming languages and paradigms in order to maximize my adaptability. In addition, I have experience with databases and Web-driven interfaces, and my familiarity with Oracle and mySQL, as well as PHP and Perl, would enable me to develop such solutions as well. I have also endeavored to keep my interpersonal and communications skills on par with my computer skills, leading me to seriously undertake the study of philosophy and foreign languages.

I am currently seeking an opportunity to put to use my understanding of object-oriented analysis and design, software engineering, human-computer interaction, and programming in a professional environment. I am also intensely interested in any opportunity to continue developing software for the platform I find most suitable to writing good software with usable interfaces: the Macintosh. I consider myself very focused and self-motivating, and have extensive experience working in project teams: I am comfortable both with taking a leadership role and delegating responsibility, and with completing tasks that are assigned to me.

Work Experience

6/2005 – present:
Software Developer — ESM Project, Carnegie Mellon University; Pittsburgh, PA
Single-handedly designed, developed, and documented the ESM Broadcaster application for Windows and Macintosh. Also participated in testing and user studies for this software.
8/2004 – 5/2005:
Senior Assistant — Computer Science Department, Worcester Polytechnic Institute; Worcester, MA (Departmental Work Study)
Performed duties relevant to the teaching and administration of a high-level object-oriented design class for the computer science department, including project grading.
9/2003 – 5/2004:
Web Architect — Callidus Consulting, Inc; Worcester, MA
Designed, deployed and maintained standards-compliant Web sites for clients of Callidus Consulting.
6/2000 – 12/2000:
Technical Support Engineer — Envisionet, Inc; Brunswick, ME
Provided technical support for users of the Microsoft Network.

Other Experience and Qualifications

August 2001:
Designed and released Classic Icons set for Mac OS X, featured on Xicons.com.
2001:
Designed and released Premultiplier, a Mac OS/Mac OS X application for the Mac OS theming community.
2002:
Designed and released Beachball, a Mac OS X application for customizing system cursors.
2002:
UI consultant for Snak 4.9 by Kent Sorenson.
January 2003:
Beachball distributed in Macworld CD, APC Magazine CD, and CMMUG CD.
April 2003:
Classic Icons set shown in Mac OS X Hints, a book by O'Reilly Publishing.
2003:
Interface tester for CSSEdit 1.0 by MacRabbit Software.
2003:
Designed UI icons for CSSEdit 1.5 by MacRabbit Software.
2004:
Designed UI graphics for TextMate 1.0 by Allan Odgaard.
2003 – present:
Beta tester for ThemePark by Geekspiff Software.
2003 – present:
Beta tester for ShapeShifter by Unsanity and Geekspiff Software.

Education

September 2007:
Master of Science in Human-Computer InteractionCarnegie Mellon University (In Progress)
Cumulative QPA: 4.00
May 2005:
Bachelor of Science in Computer Science, minoring in Philosophy (with High Distinction)Worcester Polytechnic Institute
Cumulative GPA: 3.96
In-major GPA: 4.00
Project Work:

The Right Decision: Justifications of Morality (Sufficiency).

The Role of Software in Educational Role-Playing (IQP).

Query-Based File Management (MQP).

Relevant Courses:

Human-Computer Interaction (2003)

Cognitive Psychology (2003)

Object-Oriented Analysis and Design (2003)

Software Engineering (2002)

Affiliations

5/2004 – Present:
Member, Upsilon Pi Epsilon (ΥΠΕ)
5/2004 – Present:
Member, Association for Computing Machinery (ACM)
9/2003 – Present:
Member, Tau Beta Pi (ΤΒΠ)

Skills

Skill Name Expertise Last Used Experience
Java Expert Currently used 4 years
C Expert Currently used 3 years
C++ Expert Currently used 3 years
REALbasic Expert Currently used 8 years
Mac OS (Classic) Expert Currently used 10 years
Mac OS X Expert Currently used 5 years
Windows 95 - XP Expert Currently used 7 years
HTML Expert Currently used 6 years
CSS Expert Currently used 3 years
Adobe Photoshop Expert Currently used 8 years
Microsoft PowerPoint Expert Currently used 4 years
Microsoft Word Expert Currently used 7 years
Icon Design Expert Currently used 8 years
User Interface Design Intermediate Currently used 4 years
Adobe Illustrator Intermediate Currently used 3 years
Adobe PageMaker Intermediate 3 years ago 2 years
Graphic Design Intermediate Currently used 4 years
Linux Intermediate Currently used 3 years
Macromedia FreeHand Intermediate 1 year ago 2 years
Page Layout Intermediate Currently used 3 years
Perl Intermediate 1 year ago 2 years
PHP Intermediate 1 year ago 1 year
Scheme Intermediate 3 years ago 1 year
Typography Intermediate Currently used 3 years
Visual Basic Intermediate 2 years ago 1 year
XHTML Intermediate Currently used 2 years
XML Intermediate Currently used 2 years
Objective-C Intermediate Currently used 2 years
MySQL Beginner 2 years ago 1 year
Oracle Beginner 2 years ago 1 year
Prolog Beginner 3 years ago 1 year
Python Beginner Currently used 1 year

References

Available upon request.