Raven Black's Resumé or CV

(Also available in .RTF format.)

Contact Information
Title : Mr
Name : Raven Black (yes, really)
D.O.B. : 15-Feb-1977
Email : raven@ravenblack.net
Current address :
Naples, FL
Tel : (withheld)
Employment Status : Self-employed at RavenBlack Media
Previous Work Experience
Freelancing and self-employed; web-design, Perl, PHP, Java, C and C++ programmer. Massively multiplayer web-based games, client-server Java/C++ games, real-time and turn-based. February 2002 - present  
Sole C++ programmer for Deck Wizard for Pokemon, and Perl programmer for the associated website. (Product was completed.) February 2000 - September 2000 Miracle Play Ltd.
Centreville, VA (USA)
NT Network Admin, Database Admin, for an Employee Assistance Program provider. May 1999 - November 1999 PPC UK
Oxfordshire (UK)
Level Editor programmer for a real-time 3D game using Visual C++ under Windows July 1998 - October 1998 Genetics
Oxfordshire (UK)
Windows Board Game GUI (and occasional AI) programmer using Visual C++ under Windows May 1997 - July 1998 Oxford Softworks
Oxfordshire (UK)
Programming Languages
C ARM Assembler 68000 Assembler
C++ PHP 8086 Assembler
C# SQL Perl
  HTML5/CSS Java
Of these I generally prefer the low level of C, C++ and Assembler (though not so much assembler these days).
Programming Projects
Kindle Play(HTML, PHP, Javascript) A web-based turn-based game setup targeted at playing Boardgames on web-enabled E-reader devices - a simple Scrabble-like game is currently working there. The goal was to have the server largely "game-blind", so that games can be written entirely in Javascript and securely transmit turns to and from the server using minimal bandwidth.
Crabby Words(HTML5, PHP, nginx) A Scrabble variant playable as a Facebook app or on its standalone website - may be converted into a mobile device app. Scrabble rules redesigned to encourage longer words and less frustration over tile draws.
Javagames(C++, Linux, Java) A chat-server in C++ which can be communicated with via telnet, and which supports game-targeted commands for rooms and tables, along with Java framework for multiplayer games using the server.
RavenGive(C++, Windows) A minimalist webserver for Windows, securely supporting resuming connections and multiple simultaneous connections without unnecessary use of multithreading. Also supporting plugins which will later implement CGI and streaming video support (using multithreading). [http://www.ravenblack.net/programs/ravengive/]
RavenGet(C++, Windows) Minimalist resuming HTTP downloader, supporting queues and multiple simultaneous downloads. [http://www.ravenblack.net/programs/]
Magnify(C, Windows) Simplistic visual aid, also providing handy additional information to the user. [http://www.ravenblack.net/programs/]
Motepad(C, Windows) A popular replacement for Notepad; essentially a wrapper around a RichEdit control, supporting larger files than (non-NT) Notepad, row/column display, and configurable font. [http://www.ravenblack.net/programs/]
Warlocks(Perl, SQL and HTML; OS-unspecific) A fast and secure multi-user web-based game. [http://games.ravenblack.net/]
CheckPopPwd(C, *nix) Along with SMTPAllow, inserts into qmail's chain of pipes to securely implement POP-before-SMTP with no timeouts or unwieldy delving through logfiles. [http://www.ravenblack.net/programs/]
Further information
My main hobby is games - I have a passion for all kinds, from boardgames to computer games to paintball. While I generally prefer strategy-based games I still enjoy the odd party game such as Cranium. My favorite boardgames include Caylus, Carcassonne and Agricola, while in computer games my tastes range from the Thief series to Tetris Attack. I feel there is a considerable shortage in the modern games industry for multiplayer games (other than shooters of which there are plenty!)

Aside from working in programming, I also spend much of my spare time programming, both in Windows (mostly using C and direct access to the APIs) and in Unix (BSD and Linux: command-line and server tools, mostly C, some Perl, and the occasional kernel modification).

My programming tends to be particularly conscious of security, reliability and efficiency. Several of my works are written simply because, having seen the alternatives available, I insist on code more secure than what's offered.

My more security-conscious works include a modification to the Linux 2.2-branch kernel to make ipchains log TCP sequence numbers, to enable me to forge responses to blocked packets. Another project was a pair of inserts for the qmail SMTP and POP3 chain of pipes to perform POP-before-SMTP validation without the security flaws and clumsiness I saw present in other applications with the same purpose.

My minimalist Windows applications 'Magnify', 'Motepad', 'RavenGive' and 'RavenGet' (each smaller than 25K) demonstrate efficiency and familiarity with the Windows API. I am also reasonably proficient with Direct3D.

For Windows programming, I have constructed a debug wrapper library which warns of potential resource leaks and errors that most such checks omit. It tracks usage of most common resources, and warns if any creations or deletions fail for any reason, along with references to the point in code at which the mistake occurs.

My web-based game 'Warlocks' demonstrates my abilities with CGI, Perl and SQL, as well as my diligence in preventing (where necessary) cross-site-scripting and other popular CGI-targetting attacks.

Unlike most programmers, I rather enjoy working with arcane (but efficient!) binary file formats such as the Truetype 'ttf' format. Much of my predilection for efficiency comes from my programming history; I started on computers with 48K of RAM, and later moved on to (still slow) computers with 512K of RAM and no hard-drive - such hardware encourages creative ways of making code as fast and small as possible.

I also maintain my own webserver and firewall, previously using BSD and Linux, now using Linux only.
Keith Thompson
Miracle Play Inc.
PO Box 1449
Centreville, VA 20122-8449
Tel : 703 968 2652
Email : swinsols@aol.com
Contact me (raven@ravenblack.net) for other references.

[ Back to RavenBlack's Perch | Even more about me ]