Back to Experience

Software Engineering Intern — Cisco

June 2017 - August 2017 San Francisco Bay Area

Summer internship on IoT device management at Cisco, focused on over-the-air (OTA) firmware delivery for large device fleets using LwM2M. The work sat at the intersection of embedded connectivity constraints and campaign-scale software scheduling.

Key Achievements

  • Implemented an LwM2M-based OTA firmware scheduler for firmware and software-over-the-air updates across IoT device fleets.
  • Designed update prioritization around device criticality, connectivity, sleep cycle, and device capability.
  • Improved update-campaign efficiency for large-scale IoT rollouts by reducing redundant device-status requests during update campaigns.

Context

IoT fleets do not update like servers. Devices sleep, drop offline, and differ in capability. A naive “push to everyone” campaign wastes bandwidth and fails on constrained hardware. The internship goal was a smarter OTA scheduler that respected those constraints while still improving campaign efficiency.

What I Built

An LwM2M-based OTA firmware scheduler that prioritized devices by criticality, connectivity, sleep cycle, and capability. That reduced redundant device-status polling during campaigns and made large rollouts more predictable for operators running fleet-wide firmware updates.

Why It Mattered

Firmware campaigns on IoT fleets are operationally expensive when they thrash offline or low-capability devices. Prioritized scheduling is a practical systems problem—queues, telemetry, and policy—not just “call the update API.” That early exposure to constrained distributed systems still shows up in how I design agent runtimes and self-hosted inference queues today.

Technologies Used

Java LwM2M IoT Firmware Scheduling