FiNew York City, NY | 2021 to present
I'm a senior software engineer at Fi, based out of NYC (I am fully remote). We make the world's smartest dog collar, tracking activity and giving alerts if your dog escapes.
I'm a senior software engineer at Fi, based out of NYC (I am fully remote). We make the world's smartest dog collar, tracking activity and giving alerts if your dog escapes.
I was a senior software engineer at Verily, in Cambridge, MA. I wrote firmware for a range of small embedded devices, consumer and medical.
I was a senior software engineer at Google, in Cambridge, MA. I worked on networking infrastructure, and was involved in the QUIC project: developing a next generation transport protocol over UDP.
In 2017 I was a primary author of Google's paper about QUIC, published at SIGCOMM.
We present our experience with QUIC, an encrypted, multiplexed, and low-latency transport protocol designed from the ground up to improve transport performance for HTTPS traffic and to enable rapid deployment and continued evolution of transport mechanisms. QUIC has been globally deployed at Google on thousands of servers and is used to serve traffic to a range of clients including a widely-used web browser (Chrome) and a popular mobile video streaming app (YouTube). We estimate that 7% of Internet traffic is now QUIC. We describe our motivations for developing a new transport, the principles that guided our design, the Internet-scale process that we used to perform iterative experiments on QUIC, performance improvements seen by our various services, and our experience deploying QUIC globally. We also share lessons about transport design and the Internet ecosystem that we learned from our deployment.
In 2016 I wrote the HTTP-over-QUIC spec, which has become the basis for HTTP/3 at the IETF.
The QUIC transport protocol has several features that are desirable in a transport for HTTP/2, such as stream multiplexing, per-stream flow control, and low-latency connection establishment. This document describes a mapping of HTTP/2 semantics over QUIC. Specifically, this document identifies HTTP/2 features that are subsumed by QUIC, and describes how the other features can be implemented atop QUIC.
In 2014, I got the chance to talk about QUIC as part of the Google Developers Live series.
In 2012 I successfully defended my DPhil (PhD). I was a member of the Mobile Robotics Group at Oxford University, under the supervision of Prof. Paul Newman. My thesis focused on autonomous exploration, and developing novel approaches to solving this problem for robots capable of three dimensional movement. Most successfull is a method based on solving a partial differential equation across a voxelised representation of the robot's workspace: choosing suitable boundary conditions ensures complete exploration.
For a mobile robot to engage in exploration of a-priori unknown environments it must be able to identify locations which will yield new information when visited. This thesis presents two novel algorithms which attempt to answer the question of choosing where a robot should go next in a partially explored workspace. To begin we describe the process of acquiring highly accurate dense 3D data from a stereo camera. This approach combines techniques from a number of existing implementations and is demonstrated to be more accurate than a range of commercial offerings. Combined with state of the art visual odometry based pose estimation we can use these point clouds to drive exploration.
This paper is about the autonomous acquisition of detailed 3D maps of a-priori unknown environments using a stereo camera - it is about choosing where to go. Our approach hinges upon a boundary value constrained partial differential equation (PDE) – the solution of which provides a scalar field guaranteed to have no local minima. This scalar field is trivially transformed into a vector field in which following lines of max flow causes provably complete exploration of the environment in full 6 degrees of freedom (6-DOF). We use a SLAM system to infer the position of a stereo pair in real time and fused stereo depth maps to generate the boundary conditions which drive exploration. Our exploration algorithm is parameter free, is as applicable to 3D laser data as it is to stereo, is real time and is guaranteed to deliver complete exploration. We show empirically that it performs better than oft-used frontier based approaches and demonstrate our system working with real and simulated data
This paper is about the automated discovery and mapping of surfaces using a stereo pair. We begin with the observation that for any workspace which is topologically connected (i.e. does not contain free flying islands) there exists a single surface that covers the entirety of the workspace. We call this surface the covering surface. We assume that while this surface is complex and self intersecting every point on it can be imaged from a suitable camera pose and furthermore that it is locally smooth at some finite scale – it is a manifold. We show how by representing the covering surface as a nonplanar graph of observed pixels we are able to plan new views and importantly fuse disparity maps from multiple views. The resulting graph can be lifted to 3D to yield a full scene reconstruction.
In this paper we describe a body of work aimed at extending the reach of mobile navigation and mapping. We describe how running topological and metric mapping and pose estimation processes concurrently, using vision and laser ranging, has produced a full sixdegree-of-freedom outdoor navigation system. It is capable of producing intricate three-dimensional maps over many kilometers and in real time. We consider issues concerning the intrinsic quality of the built maps and describe our progress towards adding semantic labels to maps via scene de-construction and labeling. We show how our choices of representation, inference methods and use of both topological and metric techniques naturally allow us to fuse maps built from multiple sessions with no need for manual frame alignment or data association.