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