About Jason Ernst

I'm currently Principal Software Engineer at a startup working on mobile networks on phones. At the University of Guelph in Canada I hold adjunct Professor status and serve on the committee of several graduate students who are studying wireless networks and occasionally still co-publish research papers.

Prior to this I was a Senior Software Engineer at a two different robotics startups in San Francisco (Rapid Robotics and Osaro). I was also the CTO and first developer at a startup in Vancouver called RightMesh which was building a mesh networking library for Android phones. During this time I was also an adjunct professor at the University of Guelph and was the industrial PI of a $2.13M MITACS grant to improve connectivity in Northern Canada, specifically Rigolet. RightMesh raised $30M in an ICO in 2018.

Before that I was the CTO of Redtree Robotics which was working on a robotics hardware software platform to enable plug-and-play swarm robotics. I started this company with a friend during grad school and we raised some seed funding from Real Ventures.

I've won, sponsored, and mentored hackathons. I love to give talks and present papers.

I also enjoy driving, working on cars, video games, contributing to open source, cycling, running, and travel.

Tags Archives

Most Recent Post

Multicast Ipv4 and Ipv6 in Java / Kotlin

I recently ran into a peculiarity of multicast in Java / Kotlin. I was using a MulticastSocket: [https://docs.oracle.com/javase/8/docs/api/java/net/MulticastSocket.html](https://docs.oracle.com/javase/8/docs/api/java/net/MulticastSocket.html) and trying to ensure that it winds up bound to either an Inet4Address or Inet6Address. It turns out that even if I did something like: ``` val multicastSocket = MulticastSocket(InetSocketAddress("0.0.0.0", MULTICAST_DEFAULT_PORT)) assert(multicastSocket.localAddress is Inet4Address) ``` The assertion could fail. Similarly if I did: ``` val multicastSock ...