Pymakr 2

A complete dev environment for IoT devices, built for Pycom's 800,000+ dev community.

I architected and developed Pymakr 2 — a powerful, self-contained IoT development environment embedded directly in VSCode. It replaced a minimal toolbar plugin with a full-featured IDE for managing, testing, and deploying code across multiple connected devices.

Sole architect and lead developer. Designed UX and system architecture. Built testing tooling. Collaborated with firmware team, external devs and community.

Features
  • Integrated file manager for navigating and syncing with device storage
  • Multi-device project deployment with cross-device sync
  • Native runtime testing using custom-built framework (Probs)
  • Full CLI integration and workspace management
  • Hot reloading and live logs from device interactions
  • Clean, structured codebase designed for maintainability and community contributions
Technical
  • Built on VSCode Extension API and Node.js
  • Created 'Probs', a custom testing framework to handle native environment testing
  • Delivered full test suite for runtime validation and regression protection
  • Handled release management and versioning with Github Actions and semantic-release
Impact
  • Served a customer base of 800,000+ developers
  • Significantly reduced developer friction
  • Attracted consistent community contributions through GitHub PRs
  • Replaced legacy tooling with a robust, extensible solution
  • Improved stability and developer experience despite third-party hardware challenges
Device Explorer

1. Device Explorer

I added a file explorer that mounts IoT devices like USB storage, letting developers browse, open, and sync files directly.

Realtime Status

2. Realtime Status

To reduce uncertainty around device state, I added icons that show whether a device is offline, idle or busy. (the lightning bolt on the left)

Multiple connected devices

3. Multiple connected devices

This solved a pain point for developers, allowing them to connect multiple devices simultaneously and easily switch between them.

Project Management

4. Project Management

Supports multiple workspaces.
Multiple projects in one workspace.
Auto detection of projects based on config files.
Multiple devices per project, enabling batch deployments.

Reorganizing views

5. Reorganizing views

To accommodate different workflows, Pymakr 2's views were designed for seamlessly coexisting with existing views.

Terminal Sharing

6. Terminal Sharing

An experimental feature that allows sharing device output to the last active terminal, avoiding clutter across multiple views.

Type Completion

7. Type Completion

To improve the developer experience, I added type completion for the Pymakr API. This feature allows developers to write code faster and with fewer errors.