Fred Kuhns
St. Louis, Mo.
fkuhns@gmail.com • cell 314-422-5029
Research and Development Engineer
(systems engineer and software architect)
Senior R&D engineer in internationally recognized systems laboratory known for its innovative high-performance architectures, robust prototypes and extensible frameworks. In addition to our success in the research community the intellectual property developed in the lab has been used to launch successful startups (e.g. Growth Networks - acquired by Cisco - and Global Velocity), develop open source platforms (Open Network Lab, Gigabits kits) and to produce extensible core networking platforms (GENI core network platform, currently under development). I have also worked closely with the Distributed Object Computing group as part of the open source software effort for ACE and TAO (middleware and real-time CORBA). ACE and TAO are now supported commercially and can be found in a range of products from telecommunication to avionic systems.
Areas of Expertise:
|
|
Experience Summary (recent):
Project Leader: Technical and project leadership (10yrs), agile development practices, rapid prototyping, system oversight, mentoring, balancing trade-offs, conducting technical reviews.
System Engineer: Refining concepts and resolving business requirements into top-level functional, behavioral and quality requirements (10yrs). Architecture and documentation.
Software Architect: Convert system level requirements and concepts into concrete software architectures at varying levels of details (15yrs). Document detailed SW requirements.
Developer: Hands-on HW and SW development at all levels (20+yrs). Excellent analytical, diagnostic and problem-solving skills. Able to generate new ideas and work independently.
Technical Expert: Computer systems, system software, networking/protocols, virtualization, hardware/software boundary, embedded environments and the underlying physical principles.
Communication skills: Able to communicate throughout the technology ladder. Author of 30 technical papers and instructor of undergraduate and graduate courses at a major University.
Technical Proficiencies (recent):
C (20+yrs), C++ (15yrs), Python(3yrs), UNIX shells(20+yrs), Perl(15yrs) and Java (3yr).
Expert object-oriented paradigm (OOAD/OOP – 15yrs); design patterns; experience with agile development practices; C++ generic programming and the STL; working knowledge of UML.
Expert knowledge of packet switching technology, network protocols (IETF/IEEE/ISO-12yrs).
Expert OS kernel programming for Linux/UNIX (15yrs). Windows driver framework (3yrs).
Embedded systems experience Linux(6yr), NetBSD (5yr), eCos(1yr) and VxWorks(2yr).
Assembly programming: IA32/64(20yr), PowerPC(2yr), XScale/ARM(3yr), 68000(1yr).
Experience with VHDL programming several Xilinx FPGAs (xcv100, xcvp30 and Spartan).
Professional Experience:
Washington University: Department of Computer Science, St. Louis, MO 1997-Present
Senior Research Associate, Applied Research Laboratory
Worked directly with the laboratory director and other investigators to propose new research initiatives, pursue funding and oversee system implementation and deployment.
Part of a core team of researchers that defined the overall system functional requirements, architecture and development goals (hardware and software) of funded projects.
Role included taking lead in software architectural specification and directing the design and implementation phase (and performing major portions of implementation).
Identify and conduct research into novel approaches and solutions to important and unresolved problems in networking and systems software.
Manage software development team, create milestones, assign tasks, and oversee internal integration while adhering to program office’s (funding agency’s) project schedule.
Specialize in resource management strategies, system software, high-performance I/O, network protocol development and distributed control frameworks.
Current project: Systems engineer, principal software architect and developer for the GENI Core Network Platform an Internet-scale overlay hosting platform capable of supporting platform- and network-level virtualization with guaranteed quality of service (QoS). This research projects extends the idea of cloud computing to include the virtualization of network-level devices and enabling users to deploy new and possibly disruptive technology and protocols. In other words you could replace TCP/IP with your own internetworking protocol suite within your isolated virtual network without disrupting any existing virtual network (which includes the existing Internet).
Distributed control framework developed in C++; embedded software on XScale/ARM in C/C++; Linux kernel module in C; initial Prototype used Linux and eCos on PowerPCs embedded in an SoC with custom logic; resource manager developed in Python; used XML-RPC and a custom messaging protocol; MySQL for resource management; PlanetLab infrastructure software (PostgreSQL, Apache, XML-RPC API, etc.).
Preceding project: Project Lead for the Multi-Service Router project, a high-performance, programmable, integrated services router supporting resource guarantees (core component of the Open Network Laboratory networking test bed). This platform also enabled users to embed application logic directly within the router using embedded per port general purpose processors.
Developed a novel end-to-end resource reservation protocol (Lightweight Flow Setup) for managing flow-specific network state providing a core mechanism for QoS guarantees.
Most of the software was developed in C for an embedded x86 platform running NetBSD and Linux. Utilities and management software written in C++, Perl and C. Implemented the Queue management and packet scheduling on a Xilinx FPGA using VHDL.
Early project: Software Architect and developer for a high-performance, real-time I/O subsystem in Solaris that provides QoS guarantees. Modified Solaris STREAMS subsystem, IP driver/module, CPU scheduler, and the FORE ATM driver. Used C/C++.
Instructional responsibilities as affiliate faculty for undergraduate and graduate curriculum:
CSE522S Advanced Operating Systems: Classic papers, internals, real-time, virtualization.
CSE472S Introduction to Computer Networks: traditional networking course.
CSE422S Operating Systems Organization: traditional Operating Systems course.
CSE361S Introduction to Systems Software: machine representation, assembly and sys SW.
CSE332S Object-Oriented Programming: C++, patterns and OO design methodology.
Washington University Medical School: Mallinckrodt Institute of Radiology 1992-1997
Research Associate in Radiology
Managed the Radiation Sciences’ computer support group. Supervised staff responsible for software development, computer/network administration, database administration, information resource management, equipment maintenance and other computer support tasks.
Major development projects: image archive server, a distributed application used for scheduling and billing medical scanner usage, web server back ends and the design and implementation of a security policy. Software written in C/C++, perl. Used Sybase, CGI scripts, network proxy.
McDonnell Douglas Aircraft Company, St. Louis, MO 1989-1992
Senior Engineer
Member of the Aircraft Support Engineering Advanced Studies Group. Lead architect and developer for an expert system to analyze the testability of analog circuits and systems. Developed using model based reasoning and object oriented programming in the Lisp programming language.
Built-In Test Engineering, Inc., Fort Wayne, IN 1988-1989
Senior Engineer
Lead engineer for the specification and design of the In-Flight Performance Monitor (IFMP), the run-time portion of the embedded built-in-test software. CASE tools, VxWorks, Ada, C and Assembler.
Naval Aviation Depot, Jacksonville, FL 1987-1988
Test Engineer
Designed and developed Test Program Sets for subassemblies of the APS 137 radar set.
Education:
GPA 4.0/4.0
Washington University – St. Louis, MO.
GPA 3.87/4.0
Memphis State University – Memphis, TN.
Select Publications:
For a complete list of publication see http://www.arl.wustl.edu/~fredk/pubs.html
Supercharging planetlab: a high performance, multi-application, overlay network platform
The open network laboratory: a resource for networking research and education
A conference control protocol for highly interactive video-conferencing
Empirical Differences Between COTS Middleware Scheduling Strategies
Supporting High-performance I/O in QoS-enabled ORB Middleware