Skip to content

Disciplines

There are several engineering disciplines I have cultivated over the years.

I earned a B.S. in Electrical Engineering from the University of Minnesota. From there worked on medical devices, enterprise software and nearly every Internet Of Things vertical in the industry.

These experiences had me filling roles in Application Engineering, Design Services, Platform Design and Engineering, Product Ownership, Software Engineering, Solutions Architecture, Customer Success, Support Services, Sales Engineering and even some DevOps.

Below, I have outlined some highlights.

Internet Of Things

I have worked in the IoT industry for ten years.

Embedded Systems

I got my start on the PIC18 writing assembly and C. From there I moved on to PIC32 (and a bunch of Microchip peripherals).

When developing embedded systems, 9.9 times out of 10, I prefer to write in Micropython. The methodologies and tooling is more fun and the project is under active development.

Gateways

I am an excellent Python developer and have made products and many solutions with Python on Linux gateways. In general, IoT gateway development is one of my premier strengths.

Platforms

There are many IoT Platforms to choose from and I am familiar with some very popular ones that range from massive/centralized to niche and self-hosted. When it comes to cloud solutions and engineering I am very comfortable and in some cases a SME.

  • AWS
    • IoT Core
    • Greengrass V2
    • Sitewise
    • TwinMaker
    • Timestream
    • IoT Events
    • IoT Analytics
    • IoT Core for LoRaWAN
    • Lambda
    • EC2
    • DynamoDB
    • S3
    • CDK / Cloudformation
  • Exosite
    • Murano
    • ExoEdge
    • Murano Client
    • ExoSense
  • The Things Network
    • Basicstation
  • Mainflux

Protocols And Buses

TCP/IP HTTPS MQTT CoAP
LoRa[WAN] Modbus CAN SPI
I2C RS-232/485 RTSP Onewire

Connectivity And Provisioning

How devices connect to servers over the internet is one of the most important considerations of an IoT solution, and how the devices are provisioned onto those servers is even more important. Connectivity and Provisioning describes much of the security posture of any IoT solution.

LPWAN

Low Power Wide Area Networks are radio network protocols that do not use the internet. These methods of device connectivity almost always require a gateway for internet traffic backhaul. Examples of these networks are LoRa, LoRaWAN, Bluetooth and Sigfox.

I have done a lot of work in LoRaWAN and I find it fun and rewarding. The LoRaWAN space has come a long way and there is a lot of competition between Network Server providers.

IP And Cellular

Sometimes internet connectivity is easy and you can just use ethernet or wifi. In many cases the use of cellular networks is required or simply preferred (corporate firewalls, rotating wifi passwords, etc.).

When dealing with contemporary cellular networks, there are typically Mobile Network Operators (MNO) and Mobile Virtual Network Operators (MVNO) to deal with. In both cases, there is a SIM card the device uses to gain access to the target network and increasingly an eSIM that contains its own MCU and possibly a secure element (ECC608).

I have worked with these technologies extensively both in the operational sense as well as doing Proof of Concept work on various provisioning workflows for pre-provisioning batches of eSIMs for target IoT platforms where there can be multiple device certificates for unique purposes.

Systems Architecture

I can design, review and collaborate on IoT, Cloud and On-Premise solutions. The tools I typically use for drawings are draw.io and plantuml.

Blockchain

I am a beginner Smart Contract developer. I am familiar with the Solidity language and the EVM, but am keeping a keen eye out for Smart Contract work in Polkadot, Cardano, Chainlink, smartBCH, Filecoin and Solana. Another blockchain project of interest is Diode.

In addition to proper blockchains, I am also reasonably versed in other decentralization, non-cloud technologies like UNRAID, IPFS and Urbit.

Languages

Language Level Of Mastery
Python Expert
Micropython Advanced
Go Intermediate
Solidity Beginner
C[++] Intermediate
bash Expert
Perl Please no

Extremely Useful Tools And Frameworks

  • Ansible
  • OpenSSL
  • Jupyter Notebooks
  • nginx
  • Markdown
  • SystemD
  • Diode.io