ALEXEY FEDOSOV
2130 Fulton Street
San Francisco CA 94117
Phone: 415.422.5185 work
E-mail: fedosov at usfca dot edu

 

Objective

To obtain a position in System Administration or Software Development with emphasis on parallel / distributed systems.

Summary of Qualifications

Experience: 7 years in System and Network administration with emphasis on Linux clusters, and in Software Development
Languages: C, C++, Python, x86 assembly, Java
Operating Systems: Linux, Windows*, Mac OS X
Networking: TCP/IP suite, Ethernet, Myrinet, Infiniband, Routing, Firewalls
APIs: BSD sockets, pthreads, MPI, QT, pcap, Win32, DirectX, OpenGL, SDL, Winsock, CGI
Network Applications / Services: nfs, dhcpd / bootp / pxe, iptables, iproute2, sendmail, postfix, mailman, BIND, samba, netreg, amd, autofs, CUPS, Apache, OpenLDAP, MySQL, Perforce, AMANDA
Experience with kernel and device driver development under Linux
Experience with SMP and multithreaded programming
Thorough knowledge of PC hardware

Professional Experience

University of San Francisco, San Francisco, CA
System Administrator, College of Arts and Sciences (08/01 - present)

Cluster Next Generation (2006-present)
* Team lead on specification, and support of three Linux clusters of various sizes (from 8 to 24 nodes)
* Infiniband, Myrinet, Gigabit
* Specified power and cooling requirements to support the new infrastructure
* Interface with system vendors to obtain and evaluate quotes and proposals
* Assembled and deployed a cluster from scratch

Flashmob Supercomputer (2004)
* Set up a test environment to run experiments and preliminary benchmarks
* Contributed code to the custom Linux kernel used on the FlashMob CD
* Oversaw the setup of the computers and network equipment before the event
* Tested sections of the cluster by running Linpack on a subset of nodes, troubleshooting as necessary
* Oversaw execution of the Linpack benchmark once the machine was assembled and ready

Keck Cluster (2001-2006)
* Set up (2001) 64-node Beowulf cluster connected by a Myrinet and a Fast Ethernet networks
* Currently (2006) upgrading the cluster to dual Opteron machines, including the specification of additional power and cooling requirements
* Set up various supporting hardware for the cluster (BayTech power distribution units, APC UPS)
* Installed Red Hat/Fedora Linux on the cluster via kickstart
* Installed and configured various MPI implementations (MPICH, MPICH-GM, LAM)
* Installed and configured different scientific software packages, such as ATLAS, BLAS, LAPACK, SCALAPACK, PLAPACK, PETSC, and ParMetis
* Built a server to provide NFS, DHCP, DNS services for the cluster
* Developed a node management tool (in C and Python) to control node allocation

Kudlick Classroom (2001-present)
* Participated in the design and specification of the technical aspects of the Kudlick Classroom (a multimedia teaching facility)
* Oversaw the computer equipment budget
* Designed and specified the network infrastructure and the student workstations

Department of Computer Science (2001-present)
* Currently overseeing 64 lab workstations, 64 cluster nodes, and 20+ servers in addition to faculty personal and research systems
* Currently maintaining the department's mail, web, DNS, LDAP, and Samba servers
* Set up and currently maintaining the department's network infrastructure, including a Gigabit Ethernet network, firewall and routers
* Assisted Internet Archive in establishing a wireless network link to the University and setting up a freecache server
* Built and deployed disk images for the Computer Science lab machines via kickstart under Linux and Symantec Ghost under Windows.
* Set up and maintaining LDAP servers and accounts for 1000+ users
* Provided end-user support (Linux and Windows) for faculty and students
* Taught courses in Assembly Language and Systems Programming * Developed a web application to facilitate in the hiring process

University of San Francisco, San Francisco, CA
Research Assistant, Systems Research Group (06/99 - 05/01)
* Participated in a research project on memory performance, cache coherency, and computation granularity on the Pentium family of processors
* Developed Linux kernel modules for programming Pentium performance counters and an API for user-level access to them
* Created a suite of tools (in C & Perl) to facilitate program monitoring using performance counters

* Designed and implemented a new user-space thread package for Linux with support for Scheduler Activations
* Implemented new Linux system calls for the Scheduler Activation mechanism and added support for it to an existing pthreads package


Education

University of San Francisco, San Francisco, CA
M.S., Computer Science (currently enrolled)
Expected graduation date: 12/07
GPA: 4.0

University of San Francisco, San Francisco, CA
B.S., Computer Science, Mathematics minor (5/01)
Magna Cum Laude

Publications

A. Fedosov, G. Benson Communication with Super-Flexible Messaging. Proceedings of the Parallel and Distributed Techniques and Applications Conference (PDPTA 2007). June 2007.
G. Benson, A. Fedosov Python-Based Distributed Programming with Trickle. Proceedings of the Parallel and Distributed Techniques and Applications Conference (PDPTA 2007). June 2007.
G. Benson, M. Butner, A. Fedosov, S. Padden The Virtual Processor Interface: Linux Kernel Support for User-level Thread Systems. Proceedings of the Parallel and Distributed Computing and Systems Conference (PDCS 2003). November 2003.

Building a Better Netreg. An article on creating a custom wireless registration system with Linux.
Python/QT Tutorial. A tutorial on building Python GUI appplications with QT.

Projects

Master's Thesis: Reliable Virtual Resources (09/05 - current)
* The RiVeR framework is a programming model and run-time environment that provides a simple interface to fault-tolerant compute and storage resources. Our goal is to provide a unified view of shared memory mulitprocesors and distritbuted memory clusters for a wide range of application developers. While there exist several languages and libraries for parallel scientific computing, they are not appropriate for general purpose productivity applications due to programming complexity and significant administrative requirements. River allows an application to easily exploit multiple CPUs and mulitple storage components for increased performance and reliability.

MathCandy (6/06 - 12/06)

Node Control System (12/01 - 6/02)

pyRyll (4/05 - 5/05)
* As part of a two-person team, rewrote the Ryll game (see below) in Python and SDL (with pygame). The network layer was written from scratch and uses peer-to-peer networking, based on multicast, instead of a client-server model.

td2000 (3/05 - 4/05)
* A file sharing program implementation (written in Python and QT) supporting decentralized (no central server) operation using multicast.

AXEmail (10/04 - 12/04)
* As part of a two-person team, implemented a fully-featured web-based e-mail system in Java with a mySQL backend

Book Shopping Agent (03/03 - 05/03)
* Created a book shopping agent in Python with CGI that used Amazon Web Services to perform book searches and make intelligent suggestions based on user's choices.

Parallel Compiler (08/01 - 12/01)
* Implemented a parallel compiler for the mySAL programming language that generated Python MPI code

Return to Ryll: A Multi-player game (08/00 - 05/01)
* As team leader on a game project sponsored by Blizzard North, designed and implemented the infrastructure for a cross-platform multi-player persistent-world online action game. Developed a multi-threaded server application to support up to 1024 players. Also developed the graphics and sound libraries using DirectX API under Windows and SDL under Linux

Linux device driver for 3COM 3C905 NIC (08/00 - 12/00)
* Created a device driver for the Linux kernel for the 3COM 3C905B network card based on specifications published by 3COM. (Not to be confused with the real kernel driver; this was merely my own attempt at writing a Linux network driver.)

References available upon request.