Location: Remote | Duration: 01/2016 – 02/2019
Featured Summary: As a Senior Software Engineer in Cisco's IoT Innovations department, I engineered core platform components for Cisco Asset Management (CAM) and Cisco Kinetic IoT platforms. My contributions encompassed building a high-performance Node.js virtualization runtime to mock the Rhino JavaScript interpreter for rapid plugin simulation, developing open-source C++11 embedded DSLink adapters for Distributed Services Architecture (DSA) edge gateways, and managing an active IoT experimentation lab with Raspberry Pi 3, Z-Wave ZStick, and smart sensor nodes.
Project Scope and Industrial IoT Vision
Cisco Asset Management (CAM) and Cisco Kinetic provide enterprise customers with real-time visibility, predictive maintenance, and edge-to-cloud telemetry across thousands of connected industrial sensors, fleet vehicles, and smart facility controllers. The primary engineering challenge was enabling rapid developer onboarding and robust device communication over low-bandwidth, distributed edge networks.
Core Engineering Innovations
Node.js Virtualization Layer for Rapid Plugin Emulation
The legacy CAM platform executed device plugins inside an embedded Rhino JavaScript interpreter, which made local testing slow and cumbersome. I engineered a Node.js-based virtualization harness that mocked CAM's internal APIs and execution sandbox. This allowed third-party hardware vendors and internal developers to develop, test, and debug IoT plugins locally in seconds.
C++11 Embedded DSLink Adapters for DSA Gateways
To enable low-memory microcontrollers and industrial edge gateways to communicate with Cisco's Distributed Services Architecture (DSA), I authored high-performance C++11 DSLink protocol adapters. These lightweight adapters handled sensor serialization, protocol translation (MQTT, Z-Wave), and local data buffering during network disconnects.
Hardware Prototyping Lab
I established an in-house IoT lab utilizing Raspberry Pi 3 hardware, Aeotec ZStick USB controllers, and smart power sensor plugs to validate real-world mesh networking, packet drop recovery, and latency characteristics under high telemetry load.
Frequently Asked Questions (FAQ)
What was the purpose of the Node.js virtualization layer at Cisco?
It mocked CAM's Rhino JavaScript execution environment, allowing engineers to develop and verify IoT device plugins locally without deploying full industrial server stacks.
What protocols were used for edge device communication?
Edge communication utilized C++11 DSLink protocol adapters over DSA (Distributed Services Architecture), MQTT, and Z-Wave sensor networks.
