Ryan Reilly

404-1188 Howe St.
Vancouver, B.C.
(604) 221-6019
ryan@zyx.com

Objective

To design, develop, verify, and maintain quality software. To innovate. To explore new technologies. To seek out efficiency in design, practice, and scheduling.

Skill Set

Software Engineering

Experienced in design, implementation, debugging, verification, and maintenance across many platforms, including Linux, all versions of Windows, Solaris, and IRIX. At home in emulated and cross-compiled environments.

Familiar with several styles of object oriented design, from formalized models by Booch and Jacobson, to more ad hoc design models. Have achieved success with both waterfall and iterative methods of development. Have applied Visio and UML to design problems. Have survived an ISO 9001 certified software process and audit.

At home with large scale multi-language build environments, and version control tools such as CVS, RCS, SCCS, Continuus and SourceSafe.


Languages, Libraries, and Protocols

Highly proficient using C, Pascal, assembler (x86 and Motorola 68000), Scheme, and HTML (including CSS). Intermediate proficiency with C++, Java (including J2EE and servlets), JavaScript, Tcl/Tk, and SQL. Working knowledge of Perl, Python, XML, and csh.

Familiar with OpenGL, ncurses, STL, libmidi++, zlib, and pthreads. Also familiar with various proprietary libraries for threading, memory management, and basic data structures.

Practical knowledge of TCP/IP, HTTP, SMTP, POP, ICMP, and MIDI. Theoretical knowledge of SNMP, ssh, ARP, Ethernet, Token Ring, ATM, and ADSL.


Program Construction

Built, modified, and debugged both multi-threaded and multi-process programs. Experienced in the use of semaphores, monitors, and IPC through shared memory, and through pipes.

Have written thread-safe signal handlers and lock-file aware programs. In addition to standard file I/O, have used memory mapped file I/O.


Linux

Well versed in the compilation, installation, and configuration of X, PPP, sshd, telnetd, ircd, samba, ipchains (NAT/firewall), SMTP/POP/IMAP (qmail), cvs, ftpd, BIND, OSS, and isapnp.

Have installed several different distributions on a variety of old and new hardware, including RedHat, Mandrake, Debian, and Slackware. Also experienced with a variety of applications, including WordPerfect, StarOffice, Gimp, vmware, fvwm2, Gnome, and KDE.


Work Experience

British Columbia Institute of Technology, Burnaby, B.C.
Apr 2002 - Present

Instructed COMP 3705: Topics in Network Security, a required course for the LAN/WAN certification program. Prepared course material, lab exercises, and exams. Course covered in-depth discussions of security policies, network topology, encryption, viruses, and common attacks.


ZYX Communications, Vancouver, B.C.
Sep 1999 - Present

Engineered timely and effective solutions for ZYX clients, including web design/programming, security analysis, and network configuration/setup. Experienced in multi-platform integration, particularly between Linux and Windows 9x/NT/2000.

Executed a comprehensive internal and external security audit of the A&B Sound computer network. Examined factors such as network security, staff security policies, and estimated risk.


Moderngroove Entertainment Inc., Vancouver, B.C.
Oct 2000 - May 2001

Was instrumental in designing and implementing a multi-threaded ICP and HTTP based dispatcher for a multimedia caching network. The dispatcher was responsible for load balancing between caching servers as well as advising caching servers to populate from a calculated peer or from the content service provider.

Applied extreme programming techniques to the design of a traceroute-like algorithm to determine the network distance between two caching nodes. Independently implemented the algorithm at a raw packet level.

Designed and wrote a memory pool library that was used extensively in both the dispatcher and in a debugging tool for the Sony Playstation 2.

Pursued techniques for effective testing, including modifying networking tools to spoof the sender's IP address in order to comprehensively test the caching dispatcher.

Setup a Linux firewall in a time critical situation.


RP Options Ltd., Vancouver, B.C.
May 2000 - Sep 2000 (co-op)

Designed and built a drag and droppable application to schedule freight trains for BC Rail. Converted original VisualBasic concept to Java 2.0, utilizing Swing and JDBC.

Designed a series of optimized tables in a Microsoft SQL database. Interfaced with the database from Java using SQL queries and a JDBC to ODBC bridge.

Modified program design and structure according to frequently changing client requirements, following a highly iterative process.

Setup and administered a Linux firewall, CVS server, and mail server.


Brooks Automation Inc., Richmond, B.C.
May 1999 - Dec 1999 (co-op)

Became the build manager for the CTC team, using Visual C++, and a task-based version control system called Continuus. Investigated automation techniques to simplify the complex build process.

Followed test documents and black box tested real-time software for emergency patches, and scheduled software releases.

Revitalized the InstallShield installation script to lower the workload for field service representatives. Investigated and resolved DLL version dependency issues.


Glenayre R&D Ltd., Burnaby, B.C.
Jan 1998 - Dec 1998 (co-op)

Worked with the Architecture 2000 team converting Motorola 68000 assembler code to ANSI C for portability and ease of maintenance.

Converted the state machine code that interpreted DTMF sequences and triggered callback functions. Also converted the callback functions themselves.

After four months, became the team leader for the conversion effort, finding answers, solving problems, and coordinating development.

Learned how to debug a mix of assembler and C code effectively on a cross-compiled, real-time embedded system with a long compile cycle.

Thoroughly reviewed, tested, and documented converted code for ISO 9001 compliance.


Education

University of British Columbia, Vancouver, B.C.
Bachelor of Science in Computer Science
Sep 1996 - May 2001

Completed a wide variety of course work, including advanced courses in networking, computer graphics, image processing, and computational theory. Also completed intermediate courses in software engineering, algorithms, and operating systems. Interacted in two, four, and eight person teams, completing projects in distributed systems, databases under Oracle, and networking.

Studied mathematics courses such as statistics, numerical analysis, matrix algebra, and calculus. Worked as a lab TA marking assignments and aiding students with their labs. Focused arts credits in the spanish language.


Interests

Music is a large part of my life, with a focus in electronic music and jazz. I am currently a dj and am also getting more involved with music production. I am an avid ultimate frisbee player, both in league and tournament play. I like to travel, especially to spanish speaking countries.