Resume for Keith Dart

email: keith.dart@gmail.com

Skill Summary

Key words.

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, Javascript, C, shell scripting. Git, and Perforce SCM. Object-oriented design.
Networking, LAN: IEEE-802 family, hubs, switches, cabling, VLAN, Wifi. Routing, topologies, IPAM.
Networking, WAN: Frame relay, leased T1, T3, X.25, ISDN, ATM, VPN, PPP, IPsec, modems.
Operating Systems: UNIX, Linux, MacOS, iOS.
Network Management: SNMP management, reporting; CLI, SSH, Telnet, Expect, custom tools in Python.
Network Security: Intrusion detection (Snort), Vulnerability Assessment (Nessus), OS hardening, SQL injection.

Work History

01/2018 to Present

Q Analysts, LLC.
4320 Stevens Creek Blvd,
Suite 130
San Jose, CA 95129

QA Engineer at Q Analysts. Q Analysts is a company that specializes in outsourcing QA talent. I have been assigned to the following clients.

05/2017 to 01/2018

Tech Mahindra, Inc.

Automation and Tools Engineer. Worked at outsourcing company, at Google, Inc. for the entire duration. I working in the Comms Group, developing test cases and tools for Android dialer.

05/2015 to 05/2017

Apple, Inc.
1 Infinite Loop
Cupertino, CA 95014

Automation and Tools Engineer. Work within a Devops team in an organization called CoreOS. I develop testing strategies and test automation frameworks for iOS and MacOS devices.

09/2012 to 05/2015

Dartworks

2848 Regnart Way.
Santa Clara, CA 95051

Principal Consultant. Formed sole proprietorship to provide QA and test automation services.

Contracting Clients

Thales e-Security

09/2012 to 04/2014

I designed and deployed a QA framework, wrote test tools and APIs, and implemented test cases. Primarily focused on KMIP protocol testing and crypto-key management product. Wrote a Python module to provide KMIP client functionality for automation scripts. Implemented a proprietary API for interfacing to the product for automation. Wrote database user interface to simplify lab data management. On-going regression testing, lab management (DHCP, DNS, etc.) and finding root-cause of bugs.

Google (Android)

04/2014 to 08/2014

Working through Embedded Resource Group, I designed a new QA automation framework for the communcations subsystem for Android. Primary focus was WiFi connectivity and feature testing. Framework interfaced to Android via a Python implementation of ADB that I also wrote, and a modified Scripting Language for Android (SL4A) interface.

Automated interfacing to OpenWRT WiFi routers via JSON-RPC, and wrote custom JSON-RPC client module for Python.

Apple (core OS)

09/2014 to 03/2015

Working through Oxford International at Apple's Core OS unit. Developed Arduino micro-controller interface to control small devices such as magnets, LEDs, and servo motors for the purpose of simulating real-life environmental inputs. The system also exposes the controller as a shared client-server service to test cases, written in Python.

02/2012 to 07/2012

InStart Labs

480 San Antonio Road #210
Mountain View, CA 94040

Software Engineer in Test. Designed and built a complete, end-to-end, test lab for testing web-based service delivery. This includes automated HTTP client and server operations. Based on VMWare vSphere infrastructure and custom Linux controllers with shared storage and virtual LANs (VLANs).

Wrote low-level protocol test modules and test cases in Python. Wrote tools to make ad-hoc testing quicker and easier.

12/2010 to 02/2012

Oxford Global Resources
20450 Stevens Creek Blvd.
Cupertino, CA 95014

Contract work to various clients.

Sr. Software Engineer in Test. Working on Kindle product at Lab126. Contractor from Oxford. Developing tests for over the air update testing.

Automation Consultant. Working on crypto-key management product at Thales e-Security. Wrote a Python API for configuring, controlling, and inspecting the device under test. Re-designed and implemented a new lab network utilizing virtualization technology (VMware vSphere and VLANs). Wrote many test cases for stress testing and testing DUT behaviour with various simulated WAN impairments. Automation controllers for various equipment like tape libraries (for stimulating crypto-key requests) and network simulators.

08/2010 to 11/2010

FireEye, Inc.
1390 McCarthy Blvd.
Milpitas, CA 95035

Sr. Software QA Engineer. Developed fully automated appliance remanufacture tests. Developed fully automated forwarding latency test using Ixia product and TCL API. Designed and built network test bed with controllable network traffic sources comprised of background traffic and known malicious injection. This was done to test device forwarding latency under load and malware detection reporting.

11/2008 to 08/2010

HyTrust, Inc.
1975 W. El Camino Real
Suite 203
Mountain View, CA 94040

QA Engineer. I designed and built a "corporate model datacenter", that is designed to model a real corporate datacenter using current best practices (e.g. redundant switches, failover paths, etc.) to identify issues involved with product deployments. Performed testing as required to file bugs and identify usability issues. Reviewed code, and make suggestions for improvements to the design and implementation.

12/2006 to 11/2008

Google
1600 Amphitheatre Parkway
Mountain View, CA 94043

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/2006 to 12/2006

Google (through Adecco)
1600 Amphitheatre Parkway
Mountain View, CA 94043

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/2006 to 04/2006

NetZentry
3408 Hillview Aveenue, Suite 150
Palo Alto, CA 94304

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/2005 to 01/2006

Stratalight Communications
2105 S. Bascom Ave., Suite 300
Campbell, CA 95008

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/2005 to 9/2005

Securify, Inc.
20425 Stevens Creek Blvd.
Cupertino, CA 95014

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/2004 to 05/2005

NeoPath Networks, Inc.
2171 Landings Dr.
Mountain View, CA 94043

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/2002 to 10/2003

Ironport Systems, Inc.
1100 Grundy Lane
Suite 100
San Bruno, CA 94066

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/2002 to 10/2002

Pivia, Inc.
10670 North Tantau Ave.
Suite 200
Cupertino, CA 95014

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.

Reason for leaving was a 33% reduction in force, due to company's change of focus (original product was not selling).

9/1999 to 10/2001

Cosine Communications
1200 Bridge Parkway
Redwood City, CA 94065

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/1999 to 9/1999

Globix Corp.
2807 Mission College Blvd.
Santa Clara, CA 95054

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/1997 to 5/1999

Cisco Systems
170 W. Tasman Dr.
San Jose, CA 95134

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/1995 to 7/1997

International Network Services
1213 Innsbruck Dr.
Sunnyvale, CA 94089

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:

Mervyns

Installed, debugged and administered Internet firewall and other Internet services. Set up internal (fake rooted) DNS system. Managed corporate token-ring LAN.

MFS Datanet

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.

Hyundai

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.

Cisco Systems, Access Business Unit

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/1995 to 10/1995

West Valley Engineering,
1183 Bordeaux Drive
Sunnyvale, CA 94089

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/1994 to 8/1995

Airtouch Communications,
Airtouch Corporate Center,
One California St. San Francisco, CA 94111

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/1992 to 8/1994

GTE Mobilnet,
4410 Rosewood Dr., Pleasanton, CA 94588

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.

Education

Institutions

9/1991 to sometime 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/1988 to 9/1991 De Anza Junior College, Cupertino, CA. Courses in electronics, chemistry, and math.

Specialized

Various corporate training in quality assurance, Cisco products, general data networking, cellular voice systems, and telephony.

Military

US Navy for six years. Various training in basic electronics, radio direction finding systems, satellite communications, photography.

Open-source Projects

I am the primary author of the following open-source projects.

Personal Links

Valid XHTML 1.0 Strict