email: keith.dart@gmail.com
phone: 408-296-5806 mobile: 408-348-6488
2848 Regnart Way
Santa Clara, CA 95051
| Quality Assurance: | Write test plans, perform tests, use test tools, automate, script, report bugs, suggest improvements. White-box, black-box methods. Primary focus has been data communications technologies. |
| Quality Assurance Automation: | Design and develop frameworks and toolkits for automated testing of software and hardware. Automate instrumentation using GPIB/IEEE-488, serial protocols, SNMP, HTTP/CGI, etc. |
| Software Development: | Python, C/C++, Tcl/tk/Expect, shell scripting. CVS, Subversion, and Perforce SCM. Object-oriented design. |
| Network Architect: | Architect of voice and data networks. Install cabling, switches, servers, etc. Usually associated with development labs. |
| LANs: | IEEE-802 family, hubs, switches, cabling, VLAN, Wifi. |
| WANs: | Frame relay, leased T1, T3, X.25, ISDN, ATM, VPN, PPP, IPsec, modems. |
| Telecom: | PBX admin, T1/T3, CSU/DSU, VoIP, cellular mobile, radio. |
| Network Equipment: | Cisco, Extreme, APC, HP, Netgear, Sun. Installation, configuration. |
| Operating Systems: | UNIX, Linux, MS Windows, Macintosh, Netware. |
| Network Services: | HTTP (web), FTP, DNS, RADIUS, SMTP (email), NTP, DHCP, etc. |
| Network Management: | SNMP management, reporting; CLI, SSH, Telnet, Expect, custom tools. |
| Network Security: | Intrusion detection (Snort), Vulnerability Assessment (Nessus), OS hardening. |
| 11/08 to present |
HyTrust, Inc. |
QA Engineer. Startup. Shhh.
| 12/06 to 11/08 |
Google |
Test Engineer. Performed test and QA of Android product. This is an open-source software stack for mobile phones. Also tested reference hardware. Responsibilities include the following.
In support of test and measurement I wrote a Python framework and tools for measuring power consumption and radio. The primary equipment used were Agilent products including a programmable power supply, N4010 test set, Fluke 45 multimeter, and 8960 communications test set. This was controlled via IEEE-488 bus and RS-232 interfaces, using 488.2/SCPI command set. The Python framework provides abstract interfaces to these and other instruments and measurements. Also wrote plotting and analysis software.
| 5/06 to 12/06 |
Google (through Adecco) |
Software QA Engineer (temp). Working at Google through a contract agency (Adecco). Primary developer of the Mobile group's test automation framework. This framework provides the following features:
This test automation framework is largely based on the Django web application framework and the Pycopia network application framework. The basic design is one used successfully at other companies. At Google it is known as Gtest.
| 3/06 to 04/06 |
NetZentry |
Senior QA Engineer. This company makes a network security product. The product detects and mitigates denial-of-service attacks. I was responsible for bug fix validation. Started an automation framework. Learning product internals when QA department was eliminated due to financial difficulties (failed to receive a round of funding). I was here only about six weeks.
| 10/05 to 01/06 |
Stratalight Communications |
Software Developer (Test Tool Developer). Implemented a new Manufacturing Test automation system. This was used to validate product before shipping. The system included the following features:
| 05/05 to 9/05 |
Securify, Inc. |
Software Quality Assurance Engineer.
Designed and built automation framework specifically for testing network
intrusion and vulnerabilities. The framework utilized remote method calls to
distribute simulated hosts for various roles, such as victims,
attackers, and defenders. A Snort
machine was used
as a reference. The device under test supports Snort
compatile
rule definitions and custom rules had to be created for negative testing, The
nessus
software was also used to verify IDS functionality. The
framework is capable of arbitrary TCP and UDP protocols and exploits.
| 02/04 to 05/05 |
NeoPath Networks, Inc. |
Software Quality Assurance Engineer. Write test plans, perform testing, and report bugs in the product. I designed and implemented an automated test framework. The framework included a testbed abstraction so that tests could be run with any available set of hardware, and test writers can implement test cases more abstractly. Designed a persistent object database schema and objects. Implemented a remote method invocation server for MS Windows and Linux for remote control of clients and servers. Wrote documentation on how to use the framework. This system was adopted by the company as the automation framework for QA and unit testing for engineers.
| 12/02 to 10/03 |
Ironport Systems, Inc. |
Test Tool Developer. Primary designer and author of test automation library and automated test cases. Most of the framework was written in the Python language. The framework provided a rich and consistent API for test automation. Solid Object Oriented design principles were used throughout resulting in a very modular, reusable, and maintainable code base. I implemented many test cases using this framework. Other members of the automation team also used the framework. Some notable contributions include the following.
| 3/02 to 10/02 |
Pivia, Inc. |
QA Engineer. Primary designer and author of test automation library. This was written in the Python language. Performed tests and automated regression testing of Pivia's Dynamic Web Cache product. Also contributed supporting utility programs for the product.
compilesDTDs to Python source form.
expectthat can control other processes. This works similar to the Expect language itself, but implemented as a pure Python module.
Reason for leaving was a 33% reduction in force, due to company's change of focus (original product was not selling).
| 9/99 to 10/01 |
Cosine Communications |
Senior QA Engineer. Initially, I worked in the Systems Management System (SMS) group. This group was responsible for the management software for the product, which was a carrier-grade IPsec-based VPN device. I designed an object-oriented automation framework for the SMS system using the provided CORBA interfaces. The implementation language was Python. This framework provided for easy system configuration and automated testing from Python scripts. The object model for this was later translated to Java by SMS developers for the next version of the SMS software.
| 5/99 to 9/99 |
Globix Corp. |
Senior Network Administrator. I joined this tier-1 Internet service provider, that was just starting a global expansion, in order to help them become a world-class ISP. Here I performed various duties, including interviewing and hiring additional operations staff, installing and configuring Cisco routers and switches, built the network operations center computing environment (Linux workstations and servers), performed technical consultation with prospective customers, and anything else required to grow the business. Due to management's change of strategy this position was short-lived. They decided to keep engineering staff at their headquarters in New York, rather than the regional offices, as originally planned. Since I worked in a regional office, and the job and compensation became less than originally discussed, I left after a few months.
| 7/97 to 5/99 |
Cisco Systems |
Devtest (QA) Engineer. Devise test procedures and write test plans for various Cisco products. Wrote scripts in Tcl and Python languages for automated functional and regression testing. Conduct performance testing using custom, in-house built, and commercial tools (such as Smartbits). Assisted junior engineers in doing the same. I worked with Voice over IP (VoIP) related gateways and gatekeepers most of this time. The primary focus was on testing authentication, authorization and accounting, using a customized RADIUS server and driver programs.
| 10/95 to 7/97 |
International Network Services |
Network Systems Engineer. International Network Services (INS) was a consulting company specializing in information technology. Generally, I would work with customers to design, build, deploy, and maintain data networks. While at INS I was deployed to several customer engagements, as follows:
Installed, debugged and administered Internet firewall and other Internet services. Set up internal (fake rooted) DNS system. Managed corporate token-ring LAN.
Second level support for MFS Datanet's managed frame relay and ATM network. Trained MFS employees in Cisco router troubleshooting. I wrote a custom training course for Cisco products tailored to MFS. I Resolved customer trouble tickets. Analyzed network data patterns, located problems, and effect solutions in their global frame-relay network. Acted as professional services consultant on behalf of MFS to MFS customers.
Assisted Cisco SE's in building new LAN infrastructure at a new site using Cisco VLAN technology. Wrote some simple VLAN test and verification tools using Tcl/Scotty scripting. Installed intranet services such as DNS, network management stations, etc. Reported some bugs to Cisco I found in their Ethernet switch products.
Initially brought into Cisco to form a tiger team
to liaison between
Cisco engineers and customer's engineers supporting a new Cisco product
(the AS5200).
Later, I worked with devtest group to analyze performance, and verify
functionality, of Cisco network access (NAS) products. In support of the
goal to create more real world
test scenarios for large-scale network
access products (specifically, the AccessPath), I designed and built a call
simulator. This system measured call-answer rate and data throughput rates.
It was comprised of a cluster of Linux PCs with multi-port serial
and ISDN daughter cards. It could provide up to 644 modem and ISDN dial-in
sessions (T3 capacity). This required devising methods of large scale
system control in order to precisely control timing, call mix, and traffic
flow during test runs. Most of the software was written Tcl, with some C
utilities and shell scripting.
After this, I joined Cisco as a full-time employee.
| 8/95 to 10/95 |
West Valley Engineering, |
Consultant. West Valley Engineering is a contracting brokerage company that places skilled technical workers at corporations needing specific skills. During this time I was assigned to Adobe Systems to install a remote access system using Ascend products. While here I also analyzed and made recommendations for improving their Ethernet LANs, and NFS performance. I helped monitor and support their LAN infrastructure while the primary IT group transitioned to their new San Jose site.
| 8/94 to 8/95 |
Airtouch Communications, |
Network Data Services Specialist . Part of Airtouch's CDPD Data Group. We were primarily responsible for building and maintaining Airtouch's new wireless data service network.
| 6/92 to 8/94 |
GTE Mobilnet, |
Information Systems Analyst. I planned and implemented the overall computing environment in the GTE Mobilnet Western region, in collaboration with three other analysts and the IM Manager. I also performed LAN administration, application integration and development, and troubleshooting. I managed UNIX, MS-DOS, MS-Windows and Macintosh operating systems and software.
Equipment Engineer. As part of the engineering department, I planned the layout and specified parts lists for GTE Mobilnet cellular base sites. Later, I was part of a team to change system infrastructure from Motorola to AT&T switches. I designed the floor plan, cable runs, power systems, and general support of the sites. I wrote the cut-over plan for several of the sites my team was responsible for. This operation required careful planning and coordination, and we succeeded without any major problems.
Designed a cellular phone call pattern analysis tool that graphed cell and sector utilization. This was comprised of MS Excel macros and Oracle middleware, running on MS Windows. It could report call traffic intensity and trunking capacity, reported in Erlang or CCS per site, sector, or channel.
| 9/91 to present | Various courses at UC Santa Cruz Extension and UC Berkeley Extension in network engineering and software engineering. These are taken on a continuing basis to enhance my knowledge and skills in the telecommunications, software engineering, and data networking fields. |
| 9/88 to 9/91 | De Anza Junior College, Cupertino, CA. |
Various Corporate training in Quality Assurance, Cisco products, general data networking, and time management.
US Navy for six years. Various training in basic electronics, radio direction finding systems, satellite communications, photography.
Primary author of the Pycopia open source project. This is a software framework, written in Python, that provides modules for SNMP, SMI, Internet protocols, process control, XML, XHTML, remote control via CLI, CLI framework, and more. It is primarily a framework for writing network management tools for network engineers, system administrators, and QA automation.