Brian "Moses" Hall 412-841-4693 moses@blugs.com www.blugs.com SUMMARY OF QUALIFICATIONS ========================= Computer programmer with a strong linguistics background specializing in: - POSIX platforms - Python, Perl, and the C family of languages - Linguistics - Client-server architectures - GUI design PROFESSIONAL EXPERIENCE ======================= Programmer/Linguist, Learning Research & Development Center University of Pittsburgh Pittsburgh, PA February 2002 - August 2008 - TuTalk Intelligent Tutoring System (2005 - 2008) - Implemented major portions of the Python-based TuTalk server -- a distributed architecture with functional modules as separate processes communicating XML-based service requests over TCP/IP. - Designed and implemented tutalkd -- a single-port access point for TuTalk clients and its secure communication protocol. - Wrote or collaborated on several client and administration interfaces for several GUI platforms (CGI, Java, Python/GTK+, Cocoa). - Implemented TuTalk and tutalkd extensions as needed for specific users and projects. - Independently conceived and created a minilanguage for TuTalk dialogue scripts, and a compiler/decompiler pair to translate to XML and back. This shorthand turned out to be popular with authors who did not care to hand-hack XML. - Wrote the "heavy lifting" code for data mining TuTalk log databases from a completed experiment, for machine-learning tutor policy. - Completed a major redesign in December 2007 that resulted in an order-of-magnitude reduction in load time, and eliminated race conditions and other anomalies caused by asynchronous communication in the original design. - MARS Project -- Contract Programmer (2006 Ð 2008) - Completed a ÒportÓ of ten early-90Õs vintage Macintosh applications for middle school science education to the Mac OS X Cocoa platform. Due to the age (and incomprehensibility) of the original source code this required a complete rewrite. Also because the original programs used a proprietary 3D library that had to be replaced with OpenGL. - Why2K-Atlas Intelligent Tutoring System (2002 - 2005) - Maintained and updated large-scale robust parsing grammar of English for student essay understanding. - Independently conceived of and implemented Perl subsystem "Carnivore" for efficient spelling correction, inflectional morphology, phrase-level segmentation, and equation identification. - Took responsibility for Unix system administration on project servers (Red Hat and Fedora): installation, maintenance, and security. Open Source Mac OS Programmer blugs.com 1997 - Present - Blugs List Management Engine (1997 - 2003) - Implemented an enhanced replacement for the Mac List Manager and DataBrowser for tabular data display. Produced a 146-page manual in the style of AppleÕs "Inside Macintosh" series. Blugs was used in several freeware/shareware, and at least one commercial product. - IPA Palette (2005 - Present) - Implemented a palette-class Input Method for Mac OS X, giving users point-and-click International Phonetic Alphabet entry within Unicode-compliant applications. Technology Manager Showcase Gardens, Inc. Coldwater, MI January - November 2001 - Installed intranet and point-of-sale hardware and software. Maintained sales and customer data in Microsoft Access SQL databases. Designed and wrote all customer newsletters; developed and documented automation procedures for bulk (snail-)mailing. Contract Programmer, Iron Volume Project Joel Sanderson Quincy, MI March - April 2000 - Implemented spreadsheet-like application to estimate material requirements for architectural blacksmithing. Given a series of geometric primitives composing the target object, estimated material oxidation, and starting material profile, this program displayed the length of stock to be cut, helping minumize raw material waste. Program had to (and did) run on a 1980's-vintage Macintosh Plus. Graduate Fellow, Sounds of English Project University of Michigan Ann Arbor, MI Academic Year 1997 - Contributed to design and content of educational software for training non-native speakers in American English articulatory phonetics. Created and edited vector diagrams of midsagittal sections of the vocal tract, and QuickTime radiographic movies. The pilot release of the software received a 1999 Computer World Smithsonian Award. Graduate Teaching Assistant, Linguistics 210 University of Michigan Ann Arbor, MI Fall Term 1995 - Assisted one semester of undergraduate introductory linguistics course. Conducted four one-hour discussion sessions per week, plus one-on-one tutoring sessions as needed. Attended and assisted in two lecture sessions per week. Prepared handouts and teaching materials. Graded tests and homework assignments. EDUCATION ========= M.A., Linguistics, December 2000 University of Michigan, Ann Arbor, MI B.A., Japanese Language and Literature, May 1992 University of Michigan, Ann Arbor, MI SKILLS ====== - Work with minimal supervision against tight deadlines and changing requirements. - Programming languages: (in roughly decreasing order of expertise): Objective-C, C, Python, Perl, Java, Lisp, SQL, LATEX, PowerPC assembly language, Ruby. - Network technologies and standards: socket programming, CGI, HTML, XML, Unicode, basic cryptography. - Natural languages: advanced Sanskrit, intermediate Japanese. - Advanced knowledge of finite-state NLP techniques. - Unix system administration (Linux, Mac OS X). - Strong writing, grammar, and linguistic skills. HONORS ====== - MacTech Magazine July 2002 Programmer's Challenge "One-Time Pad." Placed fourth out of six correct solutions. - MacTech Magazine December 2000 Programmer's Challenge "Costas Arrays." Placed eleventh out of thirteen correct solutions. CONFERENCE PAPERS ================= - P. Jordan, B. Hall, M. Ringenberg, Y. Cui, & C. P. Rose (2007). "Tools for Authoring a Dialogue Agent that Participates in Learning Studies." Proc. of AIED2007, Los Angeles, 2007. - C. P. Rose, A. Gaydos, B. S. Hall, A. Roque & K. VanLehn (2003). "Overcoming the Knowledge Engineering Bottleneck for Understanding Student Language Input." Proc. of AIED2003, Amsterdam, IOS Press. WORKSHOP PAPERS =============== - P. Jordan, M. Ringenberg & B. Hall (2006). "Rapidly Developing Dialogue Systems that Support Learning Studies." ITS06 Workshop on Teaching with Robots, Agents, and NLP. - M. Makatchev, B. Hall, P. Jordan, U. Pappuswamy & K. VanLehn (2005). "Mixed language processing in the Why2-Atlas tutoring system." Workshop on Mixed Language Explanations in Learning Environments, AIED2005, Amsterdam, Netherlands. - C. P. Rose & B. S. Hall (2004). "A Little Goes a Long Way: Quick Authoring of Semantic Knowledge Sources for Interpretation." Proc. of ScalNaLU, Boston. CONFERENCE PRESENTATION ======================= "SvaraLekha 16 (SL-16): A Binary Encoding for Phonology and Phonetics." Mid-Continental Workshop on Phonology, University of Michigan, October 1998.