The opinions expressed on this website are solely my own and do not reflect the views or opinions of any other party,
including my current and former employers.
PHP logo by Colin Viebrock, under CC 4.0 BY. Icons made by Smashicons, Elegant Themes, Freepik, and Daniel Bruce from Flaticon, under CC 3.0 BY.
Hello, my name is Anant Narayanan, and you’ve reached my small slice of the web! I’m a software engineer by trade, and love using technology to solve problems in people’s lives.
If you’re here to download the slides for (or view) a talk I’ve given head over to the talks page. Or, you may want to check out some of my blog posts. Here are the top 5 posts mixed by recency and popularity:
- » Project Assemble Redux (24 May 2020)
- » Introducing ThinMusic (29 Dec 2018)
- » Teaching Ozlo about Pokémon GO (04 Aug 2016)
- » AES-256 using PHP-mcrypt (22 Jul 2008)
- » An alternative to shared libraries (19 Jun 2008)
I’m currently employed by Facebook, working on AR/VR and knowledge graph efforts at the company.
Enterprise Scale Knowledge Graphs
I was an early employee at Ozlo, a startup focused on building an AI-powered digital assistant. My main area of focus was building large-scale data pipelines to build a structured model of the world for the assistant to utilize. Ozlo was acquired by Facebook in 2017.
As an early employee at Firebase, I ran the developer evangelism, support, and framework integration efforts. I authored the original version of AngularFire, among other JS framework integrations like Ember and React.
I also prototyped the first version of static hosting during a hack week, which is still a core part of the Firebase offering. Firebase was acquired by Google in 2014, integrated into Google’s cloud services portfolio.
Mozilla holds a special place in my heart: they were my gateway into Silicon Valley. I worked on a number of Mozilla projects in various capacities, first as a volunteer, then as an intern, and finally as a full-time employee for Mozilla Labs.
Perhaps my most significant contribution while at Mozilla was WebRTC, where I served as Mozilla’s rep to the W3C and IETF during standardization efforts. I was co-editor for two W3C specifications: “WebRTC” as well as “Media Capture and Streams”. Additionally, I led implementation efforts for getUserMedia in Firefox. Interestingly, this may also have been my most impactful contribution in the industry to date: WebRTC is in very wide use, ranging from Messenger to Discord, a significant portion of internet video/audio calling traffic uses parts or whole of the WebRTC spec and codebase.
I also spent a lot of my time working on various parts of Firefox Sync, which was still called “Weave” during incubation at Mozilla Labs. Sync is a privacy-first browser data synchronization solution. Aside from this, I made minor contributions to other active Mozilla Labs projects at the time, which included the Mozilla web app marketplace and Persona (a decentralized identity and sign-in solution).
WebRTC: A Practical Introduction , WebRTC: An Overview , Error Handling in WebRTC, WebRTC Demystified , Apps for Firefox OS, WebRTC: User Security & Privacy , Firefox Architecture Overview , Mozilla Weave , about:labs , Innovating with Mozilla Labs and Mozilla Project Day: XPConnect
I was enraptured by Plan 9 ever since I first heard of it: the idea of an operating system built for the networked world, and designed by the creators of Unix (who had surely learned a lesson or two from it), was too enthralling to ignore. I host a page on this site with more information and links if you’re interested. Here is another short write-up on Plan 9 by esr, the article also includes links to a little bit of history regarding UTF-8, which was invented for the OS.
I’ve tinkered with Plan 9 in a few different ways. The biggest endeavor was probably Glendix, a set of Linux kernel modules that enables the execution of Plan 9 “a.out” binaries natively. It isn’t maintained any more — plan9port is a much more practical way to run Plan 9 programs on modern UNIXes — but the code is probably instructive to anyone interested in understanding how to write Linux kernel modules or execution formats (like Plan 9’s a.out) at the lowest level.
I was also lucky enough to work with Sape Mullender at Bell-Labs, Antwerp on making improvements to the 9P network protocol. This resulted in a thesis and protocol implementation of what we called πp.
One of the nice side effects of being involved in the Plan 9 community was following the adventures of Ken Thompson, Rob Pike and Russ Cox, who all eventually ended up at Google and made the Go language. Unsurprisingly, Go borrows many ideas from Plan 9, a language I use almost exclusively for all my personal and professional projects these days.
Google’s Summer of Code program was the first time I was paid to write software, open source no less! It was a very exciting opportunity and experience. I participated in 2006 and 2007 as a student, working on projects for Gentoo and Plan 9.
The Summer of Code is a wonderful program and I’m very grateful to Google for having run it and keeping it going for all these years. If you are eligible and interested in software development or open source, I highly recommend applying!
PHP-GTK was my first foray into open source. It initially caught my eye while trying to build a UI application for my university, and I eventually ended up contributing tutorials and documentation for the project.
I am so grateful to the maintainers of the project: Christian Weiske, Andrei Zmievski, Steph Fox, and Scott Mattocks. I couldn’t have asked for a better set of people to onboard me into the world of open source and professional programming more broadly.
Gentoo was my primary choice of Linux distribution for many years. I eventually waded into helping out by maintaining a few packages and writing a web-based editor for GuideXML, Gentoo’s documentation format.
I owe a lot of my understanding of Linux to Gentoo. I would still recommend anyone interested in the operating system to install Gentoo at least once, you learn so much because the distribution doesn’t hide the internals from you. To this day, I wince slightly when installing new “binaries” on my computers — on Gentoo you compile everything from source — how can you really trust binaries built by someone else on their computers?
Over time, I found myself with lesser free time, so the practicality of Ubuntu on the Desktop and a MacBook Pro on-the-go eventually won over.
After contributing code for proper signal handling in GNU Parted, I was briefly the maintainer of the project for a little over a year. Parted is a partition manager and is widely used on most Linux distributions, notably in the default installer for Ubuntu.
Thanks are due to Leslie Patrick Polzer for his encouragement and help with my involvement in the project.