Benjamin J Collar 632 Monroe NE (505) 265 0885 Albuquerque, NM 87110 bcollar@cs.unm.edu Objective To find a challenging programming position where I can learn to use new technology and programming techniques. I am especially interested in algorithm or protocol design and implementation, and language processing. Qualifications Language: I am very knowledgeable in C++ and Object Oriented programming, C on real time systems, Python, Lisp, and shells. I have had experience with Scheme, ML, Java, Prolog, Oracle Pro/C, and Matlab. I know CSS and HTML. Environment: I am skilled in configuring and administering AIX and Linux workstations. I am familiar with Solaris, Windows 95, and Windows NT. Leadership: I was elected President of student chapter of the Association for Computing Machinery. I led the officers in providing many important services for Computer Science undergraduates, including the purchase of a computer lab. Creative: I enjoy meeting new and interesting challenges and refining my problem-solving skills. Experience Public Service Company of New Mexico February 2001 - present Open Source Consultant Albuquerque, New Mexico Examined the operating system and software situation at PNM. Making recommendations as to how PNM can effectively utilize free and open source operating systems and software. Performed proof of concept work including configuring an SMTP server (qmail, OpenBSD), an authentication web server for e-commerce (Apache/SSL/radius), an e-commerce test environment, a security workstation (Snort, Shadow) and other projects. Trained employees in using open source development tools like Emacs, and languages like Python. Presented my findings of current and possible uses of open source at PNM to the IT department. Public Service Company of New Mexico August 1998 - February 2001 Programmer/System Administrator Albuquerque, New Mexico Developed electrical engineering, Oracle database, and system administration applications in C, SQL, Python, and Motif for a real time energy management system. Provided computer support for operators who controlled the generation and transmission of electricity in New Mexico. Developed and implemented Linux security plan. Configured Apache Web Server. Involved in critical system upgrade project. Provided RS6000/AIX hardware and software support. DNS, NIS, NFS, RPC, TCP/IP, Cisco, OSPF, firewall, dual network card workstation management, SNMP, HACMP, PDA programming. Configured dual ethernet 100 Mb LANs (cat 5, switched 100bt). SONET ring connections to Cisco routers. IBM January 1998 - August 1998 Technical Support Specialist Dallas, Texas Phone support for AIX versions 3.2.5, 4.1.5, 4.2.1, 4.3.0. Provided RS6000/AIX hardware and software support. Solved system-critical computer failures for IBM customers. Solved disk partitioning and filesystem, operating system installation and configuration, and booting problems. Assisted customers with patch installation and management. Education University of New Mexico August 1996 - December 2000 Bachelor of Science in Computer Science Albuquerque, New Mexico Emphasis: Compiler Construction, Adaptive Computation, Machine Architecture, Programming Paradigms, Object Oriented Programming, Operating Systems Design, Computational Linguistics Minor in English. Studied linguistics as well. Awards and Honors General Honors Outstanding Freshman Rana Rose Adler Scholarship University of New Mexico Presidential Scholarship Honor Roll, School of Engineering, UNM, Fall 1998 Certification AIX Version 4 System Administration Extra Curricular Activities President, UNM Association for Computing Machinery Student Chapter Member, Engineering Student Council Member, Golden Key National Honor Society Member, Phi Eta Sigma National Honor Society Projects Frobworld: An ecological simulation written in C++. ``Frobs'' lived in a 2D world, fed on grass, reproduced and fought. Similar to but more simple than Holland's Echo project. The behavior of individual "Frobs" changed over time. Each had a pseudo neural network that described its behavior. Each individual was subject to evolutionary forces through reproduction and selection. RoachWars: A more complex implementation of Frobworld in Lisp/CLOS and Java. The Lisp code was the engine of the simulation; output of the engine was piped through a Tcl script and read by the Java code. The Java code provided a gui which showed the actions of the individuals in the simulation. There were more than one participant in this experiment: multiple ``species'' of roaches competed for food. The individuals were subject to the same evolutionary forces as in Frobworld and were composed of a similar behavior network. Compiler: Implemented a compiler in C++. Did not use compiler-compiler tools. LR(1) parser. Could handle variable declarations, type declarations, enums, variable assignments, and control structures. Syntax of compiled language had aspects of C, C++, Pascal, and ADA. CFGGA: Context Free Grammar Genetic Algorithm experiment. Designed an experiment that will explore whether a genetic algorithm can induce a context free grammar given samples of natural language. Design document available upon request. GA to find polynomial orderings: A terminal rewriting system can be proven to halt if a set of coefficients are found that satisfy a group of polynomials that are derived from the rules in the terminal rewriting system. Used a genetic algorithm to find these coefficients. Performed two experiments: one searching for integer coefficients and one searching for reals.