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: 10 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
Director of Scientific Computing (08/08 - present), Manager of Scientific Computing (06/06 - 08/08), Cluster Administrator (08/01 - 06/06), College of Arts & Sciences

Current projects and responsibilities (2008-present)
* Overseeing and maintaing the computing infrastructure of the College, including several clusters and specialized scientific equpment
* Serving on various IT committees and participating in drafting IT policies for the entire University
* Created and implemented a disaster recovery plan for the College data by setting up data mirroring at an offsite location
* Managing 2 full-time staff and 10+ student workers
* Developed various web applications needed by the College (see below)

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
* 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-2002)
* 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
* 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


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 (12/09)
GPA: 4.0

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

Publications

A. Fedosov A Python-based Framework for Distributed Programming and Rapid Prototyping of Distributed Programming Models. Master's Thesis. December 2009.
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: A Python-based Framework for Distributed Programming and Rapid Prototyping of Distributed Programming Models (09/05 - 12/09)
* River is a Python-based framework for rapid prototyping of reliable parallel and distributed run-time systems. The current quest for new parallel programming models is hampered, in part, by the time and complexity required to develop dynamic run-time support and network communication. The simplicity of the River core combined with Python's dynamic typing and concise notation makes it possible to go from a design idea to a working implementation in a matter of days or even hours. With the ability to test and throw away several implementations River allows researchers to explore a large design space. In addition, the River core and new extensions can be used directly to develop parallel and distributed applications in Python.

Faculty Development Fund (9/09 - present)
* Designed and implemented a web app to aid in the Faculty Development Fund application submission process and review using Python and mySQL backend.

MathCandy (6/05 - present)
* Designed and implemented a web app to aid in faculty hiring process and application review using Pythong and mySQL backend. Currently used de facto for all faculty searches in the College of Arts & Sciences.

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.

Node Control System (12/01 - 6/02)
* Designed and implemented a node reservation / check-out system for USF CS computing clusters.

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.