Resume of Raven Black, Senior Programmer
Contact Information	
Title : Mr		
Name : Raven Black (yes, really)		
D.O.B. : 02-15-1977		
Email : raven@ravenblack.net		
Current address :
Naples, FL
Tel : 239 603 6932		
Employment Status : Freelancing - available for contracts. 		

Previous Work Experience	
Freelancing; web-design, Perl and C programmer.	February 2002 - present		
Sole C++ programmer for Deck Wizard for Pokemon, and Perl programmer for the associated website.	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 98	July 1998 - October 1998	Genetics
Oxfordshire (UK)	
Windows 95 Board Game GUI programmer using Visual C++ under Windows 95	May 1997 - July 1998	Oxford Softworks
Oxfordshire (UK)	
Temporary WP operator, using Amipro, and spreadsheet operator, using Lotus 1-2-3, under OS/2 Warp.	August / September 1996	Acclaim Employment Bureau
Leicester (UK)	

Programming Languages	
C and C++	Visual Basic	68000 Assembler	
HTML/CSS	PHP3	8086 Assembler	
Java	SQL	Perl	
Of these I prefer C, C++, Assembler and Perl.	

Programming Projects	
Javagames	(C++, Linux, Java) A chat-server in C++ which can be communicated with via telnet, and which supports game-targetted 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	
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 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. 	

References	
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.