Podcast Episode 24

Episode 024 36 min

Aman LaChapelle, Early Engineer at Modular AI, on Redefining AI Infrastructure

with Aman LaChapelle · Modular AI

0:00 / 36:00

Also on Spotify, Apple Podcasts, YouTube, Podbean, Player FM

Episode 24 of The Security Podcast of Silicon Valley, published November 1, 2022. Host Jon McLachlan talks with Aman LaChapelle, an early engineer at Modular, who met Jon at UnifyID. Aman explains how physics taught him first principles, the morning a compiler wouldn't vectorize his loop, why walking data that nobody can change pushed him to process data on the device, and his guiding principle of holding as little data as possible. They cover the pull to ship fast, how much a gigabyte holds, training on data without seeing it, why code on a device is hard to update, privacy at Apple, the string to int interview question, interviews built on passion, a wish for one lightweight runtime with fine-grained permissions, a single function allowed on the network, no shell and signed code, and three questions before every pip install.

Episode notes

In this episode of a YSecurity.io production, we delve into the innovative world of Aman LaChapelle, whose fresh engineering perspective is shaping the future of security, privacy, AI, big data, and scalable compute infrastructure. As a key figure at Modular, Aman is at the helm of a transformative project aimed at rebuilding AI infrastructure to make it accessible and privacy-conscious for all.

Aman shares his insights into the complexities of balancing the need for robust data privacy with the demands of building scalable AI systems. His approach, deeply rooted in a nuanced understanding of both the technical and ethical dimensions of AI, highlights the critical importance of privacy in the age of big data.

The conversation takes an exciting turn as we explore what Aman perceives as the missing elements in the current tech ecosystem. His observations challenge conventional wisdom and spark a lively discussion on the gaps and opportunities for innovation in AI infrastructure. The revelations shared by Aman are not only thought-provoking but also underscore the urgency of addressing these shortcomings to advance the field.

Listeners will be captivated by Aman's vision for a future where AI infrastructure is democratized, ensuring that advancements in technology are leveraged responsibly and inclusively. His passion for integrating privacy considerations into the fabric of AI development is a powerful reminder of the need for a holistic approach to technological innovation.

Tune into this YSecurity.io production for an enlightening conversation with Aman LaChapelle. Whether you're an engineer, a tech enthusiast, or someone interested in the intersections of AI, privacy, and infrastructure, this episode offers a fresh perspective on the challenges and possibilities that lie ahead. Join us as we uncover the missing pieces in the tech ecosystem and explore Aman's groundbreaking work at Modular.

Hosted by Jon McLachlan — co-founder of YSecurity.

The deep dive

Bring the code to the data

Aman LaChapelle, an early engineer at Modular, with Jon on physics and first principles, a compiler that wouldn't vectorize, walking data that nobody can change, holding less data, the pull to ship fast, how big a gigabyte is, training on data you never see, code that is hard to update once it ships, privacy at Apple, the string to int interview question, one runtime from an Arduino to the cloud, a single function allowed on the network, and three questions before your next pip install.

Episode 24 of The Security Podcast of Silicon Valley aired on November 1, 2022, with Jon McLachlan hosting. The guest was Aman LaChapelle, an early engineer at Modular (Podbean, Apple Podcasts, Spotify). The episode is called “Aman LaChapelle, Early Engineer at Modular AI, on Redefining AI Infrastructure.” The two met at UnifyID, where Aman did machine learning work.

Aman put his case this way:

“Instead of moving the data around, let’s move around the computation, let’s move around the programs”

Aman LaChapelle, at 16:35

This page follows the conversation in order: a section for each part of it, fifteen figures, twenty clips from the tape, a post from Modular on X, the full transcript, and five tools: a quiz, a scorecard for the data you hold, a calculator for your dependency tree, a timeline, and a to-do list. Where the decodes of the tape disagree on a word, the transcript puts its best guess in brackets, and the page doesn’t quote or retell those words.

From a physics lab to Modular

Aman gave his path at the start of the show. In college he did physics, and he spent about a year and a half as a research assistant in a physics lab. He planned to get a PhD, then decided against it once he found that software engineering was pretty awesome. He spent about a year at UnifyID doing machine learning, adjacent to security, which is where he met Jon. Then came SambaNova, where he built compiler backends for CGRAs, and Apple, where he built compilers and runtimes for heterogeneous systems.

“And now I’m at Modular, rebuilding AI infrastructure for the entire world.”

Aman LaChapelle, at 0:49

Listen · Aman LaChapelle on episode 24, from 0:15
About 40 seconds: Aman on his path to Modular. The clip stops on its own. Read the full transcript.

Aman’s LinkedIn fills in the dates. Research assistant at the University of Chicago from March 2015 to June 2017, at the James Franck Institute, on an effort to create topological, strongly interacting microwave circuits. Machine learning engineer at UnifyID from July 2017 to June 2018, as the primary engineer for the core machine learning backend and product. Software engineer at SambaNova Systems from June 2018 to August 2019, on a compiler backend for a new CGRA architecture, with a focus on place and route. Senior software engineer at Apple from August 2019 to February 2022, on a compiler and runtime stack for deploying neural networks on heterogeneous hardware with hard real-time constraints. Then Modular, from February 2022 (LinkedIn). His degree is a BA in physics from the University of Chicago, with general and department honors.

Wikipedia describes SambaNova Systems as an American AI and semiconductor hardware company, founded in November 2017 by Kunle Olukotun, Christopher Ré and Rodrigo Liang. It designs accelerators it calls Reconfigurable Dataflow Units (Wikipedia). Modular was founded in 2022 by Chris Lattner, the original architect of LLVM and the Swift language, and Tim Davis, who had worked at Google. Its first products were the Mojo programming language and an inference engine (Wikipedia, Wikipedia).

A timeline. March 2015: University of Chicago, research assistant in a physics lab at the James Franck Institute. July 2017: UnifyID, machine learning engineer, adjacent to security, where he met Jon. June 2018: SambaNova Systems, software engineer on a compiler backend for a new CGRA architecture. August 2019: Apple, a compiler and runtime stack for neural networks on heterogeneous hardware. February 2022, filled: Modular, an early engineer, rebuilding AI infrastructure, on this show in November 2022. April 2024: Apple again, staff software engineer on machine learning infrastructure. December 2025: NVIDIA, principal software engineer on compilers, tools and infrastructure.
From a physics lab to compilers for AI. Sources: the episode and Aman's LinkedIn.

Hard work and first principles

Jon asked which parts of that path shaped him. College did, Aman said. Elementary, middle and high school didn’t ask for much effort, and then:

“all of a sudden, I had to work really hard.”

Aman LaChapelle, at 1:27

That taught him to sit down and put in the work. College also taught him to derive things from first principles, to understand them at a deep level, and to build complex ideas from simple ones. He credits his major:

“I feel like I have my physics background to thank for that”

Aman LaChapelle, at 2:04

In physics it always made sense to take something simple and build up to more complex concepts, and he carries that into his software engineering. Jon liked getting into the grit. Aman added that to build something awesome at a high level, you have to understand how the layers underneath work.

“You can’t pretend it’s a black box, ‘cause it’s not.”

Aman LaChapelle, at 2:38

Jon agreed. Small decisions in the guts of the machine have huge effects on how the whole system behaves.

Listen · Aman LaChapelle on episode 24, from 2:30
About 25 seconds: Aman on black boxes, and Jon on the guts of the machine. The clip stops on its own. Read the full transcript.
Three boxes joined by arrows. First principles: derive it from the start. Deep understanding: how the layers work. Complex ideas, filled: built from simple ones. Below, a list. School asked little of him. College asked him to work hard, and he learned to put in the work. Physics taught him to take something simple and build up to more complex concepts. Filled: in software, small decisions deep in the machine shape how the whole system behaves, so every layer is worth understanding.
Simple pieces, built up. Source: the episode.

More of a compiler person

Jon asked whether Aman brands himself as a security person. No, he said. He doesn’t brand himself as anything in particular. He runs into a lot of security problems, and he cares about security and privacy.

“I care about preserving people’s choice with what they do with their data.”

Aman LaChapelle, at 3:15

Data is all around us, so no matter what he works on, he runs into these issues and spends a lot of time on them. If he had to pick a label, he said, he’d be more of a compiler person, though he likes everything.

The compiler that wouldn’t vectorize

Jon told a story from UnifyID. He and Aman went into the office early, and they had a ritual of making coffee. One morning Aman came in upset about an optimization pass in one of the compilers they used for UnifyID’s code. Jon couldn’t remember what it had done. Aman could:

“I wanted it to unroll and vectorize”

Aman LaChapelle, at 4:36

The compiler wasn’t doing it, and it wasn’t giving him helpful diagnostics. Over coffee, Jon teased him a little, with all the love in the world:

“that poor compiler is just a piece of software like anything else that we write”

Jon McLachlan, at 4:54

It only does what someone told it to do, Jon said. It’s also an open source project, so Aman could go in, improve it, and make it better for everyone. Aman remembered a line Jon used to say:

“computers only do exactly what we tell them to.”

Aman LaChapelle, at 5:16

Listen · Jon McLachlan on episode 24, from 3:58
About 30 seconds: Jon on the morning at the coffee machine. The clip stops on its own. Read the full transcript.

A few days later, Aman came to Jon’s desk with something to show him. He had written the compiler’s intermediate code by hand, to unroll a loop and then generate the vectors. He doesn’t think he ever committed it upstream. Jon was impressed anyway. In his words, nobody had ever taken him up on

“the challenge to go dig into a compiler.”

Jon McLachlan, at 5:53

It fit the first principles thinking Aman had described, Jon said: understanding the world from the ground up.

Listen · Aman LaChapelle on episode 24, from 5:36
About 20 seconds: Aman on the fix he wrote by hand. The clip stops on its own. Read the full transcript.

Loop unrolling is a transformation that trades a larger binary for faster execution, and either the programmer or an optimizing compiler can do it (Wikipedia). Automatic vectorization converts code that processes a single pair of operands at a time into code that applies one operation to several pairs at once (Wikipedia).

Two rows. Scalar, one addition per step: four boxes joined by arrows, a1 plus b1 in step 1, a2 plus b2 in step 2, a3 plus b3 in step 3, a4 plus b4 in step 4. Vector, one instruction, four pairs: four filled boxes side by side, all four additions in step 1. Below, a list. Unrolling repeats the loop body, and trades a larger binary for faster execution. Vectorizing applies one operation to several pairs of operands at once. Filled: Aman's compiler wouldn't do it, so he wrote the intermediate code by hand.
One pair at a time, or four at once. Sources: the episode and Wikipedia.

Walking data nobody can change

Jon asked for a time Aman faced a hard security or privacy question. After UnifyID, he said, his jobs didn’t deal directly with user data. At SambaNova and at Apple he had no direct access to any, and he’s cool with that. At UnifyID, they stored some pretty personal data. He understood that the business needed raw data from people’s phones. Jon asked what kind. Accelerometer and gyroscope data, Aman said, which tracked how people walk. That made him uncomfortable.

“Like you can change a password, you can rotate a key, but you can’t like change the way you walk.”

Aman LaChapelle, at 8:09

“this biometric data is something that’s super sensitive that we really need to be careful about.”

Aman LaChapelle, at 8:17

Listen · Aman LaChapelle on episode 24, from 7:58
About 20 seconds: Aman on data you can't rotate. The clip stops on its own. Read the full transcript.

Wikipedia makes the same point about biometrics: “One advantage of passwords over biometrics is that they can be re-issued.” A lost or stolen token or password can be cancelled and replaced, which isn’t naturally available for biometrics. Cancelable biometrics, first proposed by Ratha and colleagues, distort the features in a repeatable way, so that if one is compromised, the distortion can be changed (Wikipedia).

Three cards side by side. A password: change it after a leak. A key: rotate it, and the old one stops working. The way you walk, filled: nobody can change it. Below, a list. UnifyID collected accelerometer and gyroscope data from people's phones. A lost or stolen password can be cancelled and re-issued. Biometrics don't offer that on their own. Filled: cancelable biometrics distort the features in a repeatable way, so a compromised version can be changed.
What you can replace, and what you can't. Sources: the episode and Wikipedia.

Hold less data

That discomfort was part of why Aman pushed to do the processing on the device. It has been his guiding principle since:

“you can’t leak data that you don’t have.”

Aman LaChapelle, at 8:48

“So, like, the goal is to have as little as possible.”

Aman LaChapelle, at 8:51

He started to say that nobody leaks data on purpose, then corrected himself. Some people do. Most people are good, he said, and Jon agreed.

“Most people fundamentally don’t want to leak data.”

Aman LaChapelle, at 9:09

When it happens, it’s an accident, and you can’t guard against accidents:

“The only way to protect against that is to not have it.”

Aman LaChapelle, at 9:16

Listen · Aman LaChapelle on episode 24, from 8:45
About 35 seconds: Aman on the data you don't hold. The clip stops on its own. Read the full transcript.

In privacy law, data minimization is “the principle of collecting, processing and storing only the necessary amount of personal information” for a specific purpose. The OECD Privacy Guidelines call it the Collection Limitation Principle, and it is the second of the six principles of the GDPR (Wikipedia).

Three boxes joined by arrows. Collect only what you need. Process on the device. Hold, filled: as little as you can. Below, a list. Most people don't want to leak data. When it happens, it's an accident. Accidents can't be guarded against. Data that isn't there can't leak. Filled: privacy law calls it data minimization, the second of the six principles in the GDPR.
Less data held, less to leak. Sources: the episode and Wikipedia.

Built fast or built to last

Jon remembered Aman arguing for doing all of the processing on the devices. Aman saw a bigger pattern. Silicon Valley, as it exists, rewards moving fast without regard for what follows. He felt he had learned a lot since UnifyID, and he kept seeing the same thing. People who build technology are pushed to ship quickly:

“there’s this overarching incentive to build the fast thing that works”

Aman LaChapelle, at 11:06

“not the right thing that you can extend and modify and fix and maintain, fundamentally secure.”

Aman LaChapelle, at 11:13

Jon agreed. Many people treat shipping as the finish line:

“that’s actually when the fun really begins.”

Jon McLachlan, at 11:35

Then you enter the next phase of the life cycle, and you have to maintain what you built. That’s when security starts to matter, because success draws attention:

“you’re going to have a giant bullseye painted on the back of you.”

Jon McLachlan, at 11:50

You only get hacked or breached once you become successful, Jon said. Aman agreed, 100%. That’s where good design and good engineering principles come in.

Listen · Aman LaChapelle on episode 24, from 10:41
About 40 seconds: Aman on the pull to ship fast. The clip stops on its own. Read the full transcript.
Two cards side by side. Quick to ship, dashed: works today, and gets hard to change, fix and keep running. Built to last, filled: easy to change and to fix, and secure from the start. Below, a list. Silicon Valley rewards moving fast, and the follow-on effects come later. Shipping is where the work starts. Next comes maintaining what you built. Filled: success draws attackers, and that's when good design and good engineering pay off.
Quick to ship, or built to last. Source: the episode.

Less is more

Jon tied Aman’s principle back to architecture. Less is more, he said, in engineering as much as in security. Take a system that needs a lot of computation. You can run it on EC2 instances in AWS, if you have the money, the bandwidth and the capital. If you don’t, and nobody sells a service that scales your AI for you, putting it on the device is a pretty good compromise.

Thirty-two gigabytes

That touched on something Aman finds missing in software as a whole. Everyone assumes users have a recent iPhone and the latest laptop with effectively unlimited RAM. He has fallen into that trap too.

“A gigabyte is so much.”

Aman LaChapelle, at 13:25

A laptop with 32 gigabytes of RAM has more bytes than an unsigned 32-bit integer can count. We went to the Moon on 100K or less, he said, or was it 32 or 64K?

“the amount of memory that Google Chrome uses to show me cat photos is like mind-boggling to me.”

Aman LaChapelle, at 13:50

So this is dear to his heart:

“we really need to get software to shrink.”

Aman LaChapelle, at 14:01

Software today is bloated, and heavier on computation and memory than it needs to be, he said.

Listen · Aman LaChapelle on episode 24, from 13:25
About 40 seconds: Aman on how big a gigabyte is. The clip stops on its own. Read the full transcript.

An unsigned 32-bit integer tops out at 4,294,967,295, so 32 gigabytes is more than seven times what it can count. The Block II Apollo Guidance Computer, the version used on the crewed flights, had 2,048 words of erasable magnetic-core memory and 36,864 words of read-only core rope memory, with 16 bits to a word (Wikipedia). That comes to about 76 kilobytes in all, under Aman’s 100K. Apollo 11 landed the first people on the Moon in July 1969 (Wikipedia). Wirth’s law says “software is getting slower more rapidly than hardware is becoming faster,” and Niklaus Wirth discussed it in his 1995 article “A Plea for Lean Software” (Wikipedia).

Three numbers side by side. 76 KB: Block II Apollo Guidance Computer, 38,912 words of 16 bits. 4.3 billion: the most an unsigned 32-bit integer can count. 32 GB: a laptop's RAM, more than seven times that count in bytes. Below, a list. Aman's guess for the Moon landing was 100K or less. The Block II flown on the crewed missions had about 76 kilobytes. Wirth's law, from a 1995 article: software gets slower faster than hardware gets faster. Filled: smaller software fits on more devices, and data that stays on a device doesn't travel.
To the Moon on 76 kilobytes. Sources: the episode and Wikipedia.

Training on data you never see

Shrinking software has a payoff, Aman said. Small software fits on devices, and once it runs on people’s devices without a central copy of their data, you get some nice security guarantees. He gave an example from AI:

“I want to be able to train a model on lots of people’s data, but I don’t want to learn what their data is.”

Aman LaChapelle, at 14:28

You can’t do that today, because training a model is expensive and takes a supercomputer. If software makes it cheaper, and you can deploy even part of the computation to people’s devices, you’re again in a position where there is nothing to leak. He was oversimplifying, he said, and there is a lot of nuance. At a high level:

“you push the computation to where the data is, not bring the data to where the compute is.”

Aman LaChapelle, at 15:07

Listen · Aman LaChapelle on episode 24, from 14:32
About 40 seconds: Aman on training without the data. The clip stops on its own. Read the full transcript.

One version of this is federated learning, where many clients “collaboratively train a model while keeping their data decentralized,” and the data isn’t stored in one place. One of its defining traits is that each client’s data can differ from the others’ (Wikipedia).

Two rows. The usual way, the data goes to the computer: phones collect raw data, an upload of every reading, and central servers that hold all of it, dashed. Aman's way, the computation goes to the data: the server sends the program, phones run it on their data, and results, filled, while the raw data stays put. Below, a list. Training a model takes a supercomputer today, so the data travels to it. Cheaper software could move part of the computation onto people's devices. Filled: federated learning trains one model across many clients while their data stays decentralized.
Raw data stays, and the work travels. Sources: the episode and Wikipedia.

Code that is hard to change once it ships

Jon loved the idea. Maybe the industry is waiting for a platform that lets you write services for mobile devices. He liked splitting the computing between the cloud and the device too, with the sensitive parts on the device and the rest in the cloud. A hybrid model.

You don’t always need a cloud, Aman said, though a central place lets you move fast. He is sensitive to one cost of shipping code to a user’s device:

“once you deploy some code, it’s hard to update it.”

Aman LaChapelle, at 16:13

He thinks iPhones do better here than Android. That’s why design matters. Build something configurable, modular and changeable, put it on the device, and your central server can tell the device what to do without receiving the data.

Listen · Aman LaChapelle on episode 24, from 16:12
About 30 seconds: Aman on code that has to change after it ships. The clip stops on its own. Read the full transcript.

Jon summed it up:

“You’re making the case for flipping the paradigm on its head”

Jon McLachlan, at 16:41

People often centralize because they have to reach another service on the server for the business transaction itself. A bank is the example: to move money, you have to go where the money is tracked. For everything else, Jon said, there may be another way.

Two boxes side by side. Cloud: fast to change, sends instructions. Device, filled: keeps the sensitive data. Below, a list. A central place lets you move fast. Code on a user's device is hard to update. So design the code on the device to be configurable, modular and changeable. Some work stays central: to move money, you go where the money is tracked. Filled: move the programs and the services, and leave the data where it is.
The server sends instructions, and the device keeps the data. Source: the episode.

A ride app that guesses where you’re going

Aman offered a ride app like Uber or Lyft as an example, with a warning. He doesn’t know how their architecture works, and he didn’t want to assume. Jon imagined it anyway. The app tracks your location and the rides you’ve taken from there at that time of day, then builds a probability matrix of where you want to go. When you open it, it suggests places you’ve been before. That data doesn’t need to live in the cloud, Jon said. Aman went further:

“I think it should live on my device or your device or each individual person’s device.”

Aman LaChapelle, at 18:24

Listen · Jon McLachlan on episode 24, from 18:16
About 15 seconds: Jon and Aman on where ride data should live. The clip stops on its own. Read the full transcript.

Privacy at Apple

Jon described Apple’s privacy billboards: ads that say privacy is a core value of the company, built into all of its devices, with someone holding up an iPhone that hides their face. Did that mindset guide Aman’s engineering at Apple? Honestly, yes, Aman said. He didn’t want to sound like he was parroting the company line, but it comes from the fundamentals:

“Apple is a hardware company.”

Aman LaChapelle, at 19:12

Apple sells iPhones and MacBooks, hardware built on chips, so it focuses on getting things to run on that hardware. Nothing Aman did there was about centralizing things on a server.

“It was 100% about deploying to the device, which fits right in with my worldview.”

Aman LaChapelle, at 19:39

He enjoyed his time there for those reasons, and for a great team and interesting work. Jon was tempted to ask what he worked on. Aman smiled and laughed, and Jon knew he couldn’t answer. Aman had told him what he was allowed to say.

Listen · Aman LaChapelle on episode 24, from 19:30
About 20 seconds: Aman on deploying to the device at Apple. The clip stops on its own. Read the full transcript.

String to int

Jon asked for a favorite interview question. Aman used to ask for atoi, string to int, in a strongly typed language. Now he also asks for a circular buffer or a lock-free queue, to test concurrency.

“I find that simple questions like that often work the best.”

Aman LaChapelle, at 21:02

The trick is a question simple enough that everyone gets part of it, with enough range to go further. With junior engineers, he often asks for atoi in C, a language they may have used once or twice. He won’t hold it against them if they ask him about the basics of C. He wants to see how they approach the problem, and whether they work collaboratively, ask questions and take feedback.

Listen · Aman LaChapelle on episode 24, from 20:46
About 20 seconds: Aman on his favorite interview questions. The clip stops on its own. Read the full transcript.

With more experienced people, the same question goes further. What about negative numbers? Hex? Base 23, or a number system of your own? One follow-up always makes him happy: the string can hold a number too big for an int. Then the talk turns to the system around the function. Does it expect huge numbers?

“is it very likely to be an attack?”

Aman LaChapelle, at 23:15

Depending on the answer, you change the function to return an error, reject numbers too big for an int, or return a double. Then you ask what happens past the range a double can represent.

Listen · Aman LaChapelle on episode 24, from 22:45
About 30 seconds: Aman on the follow-up question about huge numbers. The clip stops on its own. Read the full transcript.

By Wikipedia’s definition, an algorithm is non-blocking if the failure or suspension of one thread can’t cause another to fail or stall, and it is lock-free if the system as a whole is guaranteed to make progress (Wikipedia).

A numbered list. 1, junior: write atoi in C, a language they may have used once or twice. Watch how they approach it. 2, next: negative numbers, then hex. 3, then: base 23, or a number system of their own. 4, then: a number too big for an int. What's the system around the function, and is this an attack? 5, then: return an error, reject the number, or return a double, until the double runs out of range. Below, filled: simple enough that everyone gets part of it, with room to go much further.
One question, many levels. Source: the episode.

The interview as a conversation

Jon sees some unease on both sides of every interview, and nobody talks about it. What helps is melting away the hunt for a right answer, or for a missing curly brace, and having a fun conversation with a new person. Aman agreed.

“I really like it when people get like excited in interviews.”

Aman LaChapelle, at 24:51

His goal is to find the button that gets someone talking fast. Jon pictured them lighting up like a Christmas tree. When he hasn’t talked for the last ten minutes, Aman said, he knows the question was good, because he learns who they are and what they like. Jon called it the passion-focused interview, and said his own style is much the same.

“I got this from you, Jon.”

Aman LaChapelle, at 25:28

Listen · Aman LaChapelle on episode 24, from 24:51
About 25 seconds: Aman on questions that get people talking. The clip stops on its own. Read the full transcript.

The two had paired on interviews at UnifyID, with the string to int question. Jon saved a Dijkstra question for more senior candidates. Aman has seen senior people struggle with string to int, and that convinced him simple questions are best:

“struggling is not a bad thing.”

Aman LaChapelle, at 26:11

It’s hard to tell someone struggling with the question from someone struggling to find the best answer. Many people, Aman included, come up with a whole set of solutions and then spend their time picking the best one. So it’s nice to have something simple: a linear runtime, nothing tricky, a few gotchas. Jon’s brain does the same thing, he said. It explores every possibility, and if he doesn’t pick a direction and move forward, it locks him down.

Three cards side by side. Lowers the unease: both sides feel it, and nobody says so. Gets them talking: find the topic that makes a candidate light up. Shows the person, filled: ten minutes of them talking tells you who they are. Below, a list. Struggling is fine. A simple question separates the problem from the hunt for the best answer. Filled: Aman learned the passion-focused style from Jon, when they paired on interviews at UnifyID.
What a good interview question does. Source: the episode.

One runtime, from an Arduino to the cloud

Jon asked what tool Aman wishes someone would build. Boiled down, Aman said, he wants a cross-platform way to deploy code that allows fine-grained permissions and stays lightweight. He knows what many people will answer:

“that’s what Docker is.”

Aman LaChapelle, at 27:45

But Docker and tools like it don’t run on mobile phones or embedded devices. He wants to write code once and deploy it to an Arduino and to a beefy x86 machine in GCP. Some code is platform dependent, but most of the time the question is which instructions the target has.

“it turns out compilers are really good at that and have been doing it for many years.”

Aman LaChapelle, at 28:30

“compilers have been around longer than I’ve been alive.”

Jon McLachlan, at 28:39

They agreed: let the compilers solve the hard problem, and reap the benefits.

Listen · Aman LaChapelle on episode 24, from 27:18
About 30 seconds: Aman on the tool he wishes existed. The clip stops on its own. Read the full transcript.

Fine-grained means more than security, Aman said. He wants to deploy code to a place with no libc, or with parts of libc and no malloc. He wants to describe the target: this one is ARM64, on bare metal, with these functions from the host, or none at all. Then all of that gets injected into the module, and it runs. He knows this sounds like a unikernel. Unikernels focus on embedded systems, though, and you can’t take a unikernel application and run it on iOS, where the hosted system makes the extra kernel parts unnecessary.

Wikipedia describes a unikernel as a program linked with the operating system code it depends on, so it needs no separate operating system and can run as the guest of a hypervisor (Wikipedia). Docker delivers software in packages called containers, using operating system-level virtualization, and was first released in 2013 (Wikipedia). Arduino designs single-board microcontrollers and kits for building devices (Wikipedia).

Two boxes joined by an arrow: your code, filled, written once, and a target description: instructions, libc, malloc. An arrow points down to four targets side by side: Arduino, embedded. ARM64, bare metal. iOS, hosted. x86 in GCP, the cloud. Below, a list. Describe the target: its instructions, the libc functions it has, if any, and whether malloc exists. The rest gets injected into the module. Compilers have handled instruction differences for many years. Docker runs containers, but not on mobile phones or embedded devices. Filled: unikernels come close, but they lean toward embedded systems and don't run on iOS.
One module, many described targets. Sources: the episode and Wikipedia.

One function may call the network

Next came the permissions. Aman wants to say that a piece of code may not touch the network at all. Or, finer still:

“this function, this symbol, is the only thing that’s allowed to call out to the network”

Aman LaChapelle, at 30:43

That lets him lock the code down, with access to that one function tightly controlled.

“And so now that just makes it real hard for the black hats, basically.”

Aman LaChapelle, at 30:56

Listen · Aman LaChapelle on episode 24, from 30:33
About 25 seconds: Aman on symbol-level permissions. The clip stops on its own. Read the full transcript.

Jon asked if he meant object-level or function-level access to system capabilities. Symbol-level, Aman said. Jon thought about how such a system would be built. Any adversary with enough time can probably reverse engineer a system they reach, unless you lean on trusted compute modules and secure enclaves. With today’s technology, he said, you could probably glue the pieces together into something secure. Aman wouldn’t promise perfection:

“nothing is perfectly secure.”

Aman LaChapelle, at 31:56

“But you can make it really hard.”

Aman LaChapelle, at 32:02

With symbol-level control over network access, he said, everything that comes in from the network passes through one function. He can spend a lot of cycles validating input there, where a little extra overhead is fine, and be careful about what he accepts and sends. If someone gets past that, no symbol inside the box is allowed to reach the shell.

“Or potentially, there is no shell.”

Aman LaChapelle, at 32:52

“It’s not about making it perfect, it’s about making it really hard.”

Aman LaChapelle, at 32:59

Listen · Aman LaChapelle on episode 24, from 32:38
About 25 seconds: Aman on layers that make attacks hard. The clip stops on its own. Read the full transcript.

In capability-based security, a capability is “a communicable, unforgeable token of authority,” and a program must hold one to access an object (Wikipedia). The principle of least privilege says each module should reach only the information and resources its legitimate purpose needs (Wikipedia).

Four boxes joined by arrows. Network: untrusted input. One symbol, filled: the only caller. Validation: spend cycles here. Shell, dashed: none in the box. Below, a list. Only one function may call out to the network, so all network input arrives in one place. No symbol in the box may reach the shell, or there is no shell at all. Cryptography can hold the system to one exact piece of code. Filled: nothing is perfectly secure. The goal is to make attacks hard, with capabilities off until you add them.
One door to the network, and no shell behind it. Sources: the episode and Wikipedia.

No root to compromise

Jon liked hearing that from the angle of elegant architecture. Taking things out of a system is the hard part, he said. It’s easy to bloat a piece of software, a Docker image, or something running in the cloud or on a device. Why is this thing 600 megabytes? Because it’s Java, Jon joked. Rewrite the same thing in C, and it might be a megabyte or two, depending on what it is. Simplicity is much harder than what most teams do when they move fast, and it’s where you get your security from, Jon said. Aman agreed. With no shell on the device, there’s no root account to take over. An attacker might still get arbitrary code execution. So add one more rule:

“this system is not allowed to run any code other than this exact code, and you can use cryptography to enforce that.”

Aman LaChapelle, at 34:20

That makes it harder still to bypass. Where he’d like to end up:

“I’d love to end up in a world where capabilities are default off rather than default on, and you only add what you need.”

Aman LaChapelle, at 34:36

Listen · Aman LaChapelle on episode 24, from 34:13
About 30 seconds: Aman on running only signed code, with capabilities off by default. The clip stops on its own. Read the full transcript.

Code signing is the practice of digitally signing executables and scripts, to confirm who wrote them and that nobody altered them after signing, with a cryptographic hash checking authenticity and integrity (Wikipedia).

Three questions before pip install

Jon added one more item to the wish. When you add a dependency:

“the compiler does not download half the internet to support it.”

Jon McLachlan, at 34:47

Jon asked what they would call such a package manager. Aman passed:

“Names are very important, but they’re also very hard.”

Aman LaChapelle, at 34:58

Jon asked for parting words. Aman left three questions:

“do you really need that thing that you’re adding? Are you sure? Are you really sure?”

Aman LaChapelle, at 35:12

“The next time you do a pip install, ask those three questions three times.”

Aman LaChapelle, at 35:27

Jon promised listeners the ghost of Aman would linger over their left shoulder. Aman said he’d whisper in their ear.

Listen · Aman LaChapelle on episode 24, from 35:10
About 20 seconds: Aman's parting words. The clip stops on its own. Read the full transcript.

Every dependency is part of a supply chain. A supply chain attack “seeks to damage an organization by targeting less secure elements in the supply chain,” in software or in hardware (Wikipedia). Our calculator below counts what a dependency tree can hold.

A numbered list. 1: is the new dependency needed? 2: is that still true when you look again? 3: and a third time? Below, a list. Ask all three at every pip install, three times over. Each direct dependency can pull in many more packages you never chose. Filled: a supply chain attack goes after the less secure links, in software or in hardware.
Three questions before you add a dependency. Sources: the episode and Wikipedia.

What happened after the tape

Apple again, then NVIDIA. Aman’s LinkedIn lists Modular until February 2024. He returned to Apple as a staff software engineer from April 2024 to December 2025, on machine learning infrastructure for Apple platforms. Since December 2025 he has been a principal software engineer at NVIDIA, on compilers, tools and infrastructure. His headline reads “Building for everyone” (LinkedIn).

Mojo comes out. Mojo, Modular’s language, has syntax based on Python and semantics inspired by Rust, such as static typing and a borrow checker. It builds on MLIR, which lets it target GPUs as well as CPUs. A hosted playground opened in May 2023, and downloads followed for Linux by September 2023 and for macOS by October 2023 (Wikipedia). MLIR began in 2018 under Chris Lattner at Google and was released as part of LLVM in 2019 (Wikipedia).

The compiler opens up. On August 18, 2026, during the ModCon keynote, Modular open sourced Mojo under the Apache 2.0 license, effective immediately. Another of its posts that day said Mojo 1.0 was fully open source, including the standard library and the compiler (Modular on X). On September 17, Mojo 1.1 opened the compiler to outside contributions, which Modular called the top request it heard after ModCon (Modular on X). Over coffee at UnifyID, Jon had pointed Aman at an open source compiler he could improve for everyone. Mojo’s compiler is now open the same way.

Modular on X, the morning it open sourced Mojo. About 1,400 likes. View on X.

One stack for many chips. On October 22, 2026, Modular made MAX source available with Modular 26.7, writing that AI “shouldn’t be locked to one hardware vendor or chip” (Modular on X). On the tape, Aman wished for one way to deploy the same code to an Arduino and to a server in the cloud.

More on this site. On episode 23, David M’Raihi, who also worked at UnifyID, described keeping 15 minutes of a 45-minute interview for personal questions. On episode 36, Feross Aboukhadijeh of Socket counted about 5% of an app’s code changing every week through dependency updates. On episode 105, Yair Grindlinger of Surf AI argued for spending as much time on shrinking the blast radius as on keeping attackers out. And on episode 20, Benoît Chevallier-Mames of Zama talked about open source homomorphic encryption.

A timeline. May 2023: a Mojo playground, the first public version of Modular's language, online. September 2023: Mojo downloads, for Linux, and for macOS by October. February 2024: Aman leaves Modular, after two years as an early engineer. April 2024: Apple again, machine learning infrastructure for Apple platforms. December 2025: NVIDIA, principal software engineer on compilers, tools and infrastructure. August 2026, filled: Mojo open source, Apache 2.0, announced at the ModCon keynote. September 2026, filled: Mojo 1.1, the compiler opens to outside contributions. October 2026: MAX source available, with Modular 26.7.
After the tape, from Modular to NVIDIA and an open Mojo compiler. Sources: Aman's LinkedIn, Wikipedia and Modular on X.

Did you catch it? A seven-question quiz

Seven questions from the episode. Each answer links the moment in the transcript or its section.

Quiz · seven questions

Did you catch it?

Pick an answer to see whether you caught it.

  1. What did Aman want the compiler to do with his loop?

    a. "I wanted it to unroll and vectorize" Transcript, 4:36.

  2. Why did data about how people walk make Aman uncomfortable?

    b. "Like you can change a password, you can rotate a key, but you can't like change the way you walk." Transcript, 8:09.

  3. What has been Aman's guiding principle for data?

    c. "you can't leak data that you don't have." Transcript, 8:48.

  4. How does 32 gigabytes of RAM compare to an unsigned 32-bit integer?

    a. The integer tops out at about 4.3 billion. See Thirty-two gigabytes.

  5. A string holds a number too big for an int. What does Aman ask the candidate?

    b. "is it very likely to be an attack?" Transcript, 23:15.

  6. Where did Aman get his passion-focused interview style?

    c. "I got this from you, Jon." Transcript, 25:28.

  7. How many times should you ask the three questions at your next pip install?

    b. "The next time you do a pip install, ask those three questions three times." Transcript, 35:27.

Do you hold only the data you need?

Eight questions on the data you keep and the code you run, built from Aman’s rules. Each tip links the section behind it.

Scorecard · eight questions

Do you hold only the data you need?

Answer for your product as it runs today. If two answers fit, pick the lower one.

  1. Do you keep a list of the personal data you collect, with a reason for each field?

    • No list
    • A partial list
    • A full list, with a purpose for every field

    Aman's goal is to hold as little as possible. See Hold less data.

  2. Do you delete personal data on a schedule?

    • We keep everything
    • Some of it, by hand
    • On a schedule, enforced in code

    Data you deleted can't leak. See Hold less data.

  3. Does sensitive processing run on the user's device where it can?

    • Everything goes to our servers
    • Some features run on the device
    • On the device by default, with a reason for each exception

    Take the work to the data. See Training on data you never see.

  4. Can the code already on devices change what it does after it ships?

    • Only with a full app update
    • A few settings change remotely
    • The server sends instructions, and the data stays on the device

    Code on a device is hard to update. See Code that is hard to change once it ships.

  5. Do your services start with every permission off?

    • Everything is on by default
    • Some limits
    • Off by default, each one granted on purpose

    Aman wants capabilities off until you add them. See No root to compromise.

  6. Does input from the network enter through one place that checks it?

    • Anywhere in the code
    • A few shared handlers
    • One place, with careful validation

    One function on the network leaves one place to check. See One function may call the network.

  7. Do your devices and servers run only signed code?

    • No
    • Some of them
    • All of them, checked before the code runs

    Cryptography can hold a system to one exact piece of code. See No root to compromise.

  8. Does someone ask why before a new dependency goes in?

    • Never
    • For big ones
    • Every time, with a named owner

    Aman's three questions. See Three questions before pip install.

Holding more than you need

Your data and your code reach further than they have to. List the personal data you collect this week, and stop collecting what has no purpose.

Partly trimmed

Some data and some permissions are scoped, and some aren't. Next, turn permissions off by default, and move one sensitive feature onto the device.

Little to leak

You hold and run only what you need. Keep asking before each new dependency, and hold new features to the same rules.

What does your dependency tree hold?

Jon wished a dependency wouldn’t download half the internet. This calculator counts the packages your direct dependencies pull in, and the time it takes to read each one once.

Calculator

What does your dependency tree hold?

Four numbers: the dependencies you chose, the packages each one pulls in on average, the minutes it takes to read one package, and what an engineering hour costs you.

640packages in the tree
6%of them chosen by name
160 hto read each one once
$16,000in engineering time

Your tree holds 640 packages, and you chose 6% of them by name. Reading each one once takes 160 h, at a cost of $16,000.

The calculator counts one read of each package, and leaves out the updates that follow and packages shared by several dependencies. The defaults are placeholders: count your direct dependencies in your manifest and the full tree in your lock file, and put in your own numbers.

From the Moon landing to an open Mojo compiler

The computing history Aman touched on, his roles, the privacy rules behind holding less data, Modular, and this show. Filter by topic.

Timeline

From the Moon landing to an open Mojo compiler

  1. Apollo 11

    The first crewed Moon landing. The guidance computer flown on the crewed missions had about 76 kilobytes of memory (Wikipedia, on this page).

  2. A Plea for Lean Software

    Niklaus Wirth's article on software that slows faster than hardware speeds up (Wikipedia).

  3. LLVM

    The project starts at the University of Illinois, under Vikram Adve and Chris Lattner (Wikipedia).

  4. Docker

    First released, with containers (Wikipedia, on this page).

  5. A physics lab

    Research assistant at the University of Chicago, to June 2017 (LinkedIn).

  6. The GDPR

    Adopted by the European Parliament and Council (Wikipedia).

  7. UnifyID

    Machine learning engineer, to June 2018 (LinkedIn, on this page).

  8. SambaNova

    Founded by Kunle Olukotun, Christopher Ré and Rodrigo Liang (Wikipedia).

  9. MLIR

    Work starts at Google, led by Chris Lattner (Wikipedia).

  10. The GDPR takes effect

    Data minimization is one of its six principles (Wikipedia, on this page).

  11. SambaNova

    Software engineer on a compiler backend, to August 2019 (LinkedIn).

  12. MLIR in LLVM

    Released as part of the LLVM project (Wikipedia).

  13. Apple

    Senior software engineer on a compiler and runtime stack, to February 2022 (LinkedIn, on this page).

  14. Modular

    Founded by Chris Lattner and Tim Davis (Wikipedia).

  15. An early engineer

    Aman joins Modular, where he stays to February 2024 (LinkedIn).

  16. Episode 20

    Benoît Chevallier-Mames of Zama on homomorphic encryption (episode page).

  17. Episode 23

    David M'Raihi, who also worked at UnifyID (episode page).

  18. Episode 24

    Aman on the show (Podbean, transcript).

  19. A Mojo playground

    The first public version, online (Wikipedia).

  20. Mojo to download

    For Linux, and for macOS by October 2023 (Wikipedia).

  21. Episode 36

    Feross Aboukhadijeh of Socket on dependencies (episode page).

  22. Apple again

    Staff software engineer on machine learning infrastructure, to December 2025 (LinkedIn).

  23. NVIDIA

    Principal software engineer on compilers, tools and infrastructure (LinkedIn, on this page).

  24. Mojo goes open source

    Under Apache 2.0, at the ModCon keynote (X, Wikipedia).

  25. Mojo 1.1

    The compiler opens to outside contributions (X).

  26. Episode 105

    Yair Grindlinger of Surf AI on the blast radius (episode page).

  27. MAX source available

    With Modular 26.7 (X).

What to do this week

Five things, in the order of the episode.

  1. List the personal data you collect. Give each field a reason, and stop collecting what has none, as in Hold less data.
  2. Move one sensitive feature onto the device. Let the server send instructions, and keep the raw data where it was made, as in Training on data you never see.
  3. Turn permissions off by default. Grant each service only what it needs, and send network input through one place that checks it, as in One function may call the network.
  4. Ask three times before a new dependency. Ask whether you need it, then ask again, as in Three questions before pip install.
  5. Get help with it. Our Product Security work puts security into the design, our Secure AI SDLC & Engineering team builds the checks into your pipeline, and our Anti-Reverse Engineering work protects the software you ship. If you want to talk it through, book 15 minutes with us.

Key takeaways

  1. Data you never hold can't leak

    Aman's guiding principle is to hold as little data as possible. Most people don't want to leak data, so leaks are accidents, and the only protection from an accident is not having the data.

  2. Biometrics can't be rotated

    You can change a password or rotate a key. Nobody can change the way they walk, so biometric data needs more care, and processing it on the device keeps it out of central storage.

  3. Shipping is where the work starts

    Silicon Valley rewards the quick thing that works, Aman said. Jon added that success makes you a target, and from then on the software has to be maintained and kept secure.

  4. Smaller software fits on more devices

    Aman wants software to shrink. A laptop with 32 gigabytes of RAM has more bytes than an unsigned 32-bit integer can count, and small software can run where the data is.

  5. Send the computation to the data

    Training on many people's data without learning it means moving part of the computation onto their devices. Design device code to be configurable, so the server sends instructions and never receives the data.

  6. Simple interview questions show more

    Aman's favorite is string to int. It has range for every level, from the basics of C to whether a huge number is an attack, and it gets candidates talking.

  7. Permissions should start off

    Aman wants code where one symbol may call the network, no symbol may reach the shell, and only signed code runs. Capabilities start off, and you add only what you need.

  8. Ask three times before adding a dependency

    Ask whether you need it, then ask again, and once more. That was Aman's parting advice for every pip install.

Chapters

Tap a chapter to play from there.

Pull quotes

“And now I'm at Modular, rebuilding AI infrastructure for the entire world.”

Aman LaChapelle ·

“You can't pretend it's a black box, 'cause it's not.”

Aman LaChapelle ·

“I care about preserving people's choice with what they do with their data.”

Aman LaChapelle ·

“that poor compiler is just a piece of software like anything else that we write”

Jon McLachlan ·

“computers only do exactly what we tell them to.”

Aman LaChapelle ·

“Like you can change a password, you can rotate a key, but you can't like change the way you walk.”

Aman LaChapelle ·

“you can't leak data that you don't have.”

Aman LaChapelle ·

“there's this overarching incentive to build the fast thing that works”

Aman LaChapelle ·

“you're going to have a giant bullseye painted on the back of you.”

Jon McLachlan ·

“we really need to get software to shrink.”

Aman LaChapelle ·

“you push the computation to where the data is, not bring the data to where the compute is.”

Aman LaChapelle ·

“I find that simple questions like that often work the best.”

Aman LaChapelle ·

“this function, this symbol, is the only thing that's allowed to call out to the network”

Aman LaChapelle ·

“I'd love to end up in a world where capabilities are default off rather than default on, and you only add what you need.”

Aman LaChapelle ·

“do you really need that thing that you're adding? Are you sure? Are you really sure?”

Aman LaChapelle ·

About the guest

Aman LaChapelle, Staff Software Engineer, Modular

Aman LaChapelle was an early engineer at Modular when this episode aired, from February 2022 to February 2024. He studied physics at the University of Chicago and worked as a research assistant in a physics lab, then worked on machine learning at UnifyID, a compiler backend at SambaNova Systems, and a compiler and runtime stack for neural networks at Apple. He returned to Apple from April 2024 to December 2025, and since December 2025 he has been a principal software engineer at NVIDIA, on compilers, tools and infrastructure.

About the host

Jon McLachlan is co-founder of YSecurity, the on-demand cybersecurity team for startups, and of Cyberbase.ai. The Security Podcast of Silicon Valley is hosted by Jon McLachlan and Sasha Sinkevich. Jon McLachlan on LinkedIn ↗

Context and sources

  • Episode 24 on Podbean: Aman LaChapelle, Early Engineer at Modular AI, on Redefining AI Infrastructure. Source ↗
  • Aman LaChapelle's LinkedIn experience: NVIDIA from December 2025, Apple from April 2024 to December 2025, Modular from February 2022 to February 2024, Apple from August 2019 to February 2022, SambaNova Systems, UnifyID, and the University of Chicago. Source ↗
  • Modular on X, August 18, 2026: Mojo open sourced under the Apache 2.0 license, announced at the ModCon keynote. Source ↗
  • Modular on X, August 18, 2026: Mojo 1.0 fully open source, with the standard library and the compiler. Source ↗
  • Modular on X, September 17, 2026: the Mojo compiler opens to contributions with Mojo 1.1. Source ↗
  • Modular on X, October 22, 2026: MAX made source available with Modular 26.7. Source ↗
  • Wikipedia, Mojo: a language with syntax based on Python and semantics inspired by Rust, built on MLIR, created by Modular, founded by Chris Lattner and Tim Davis, with a playground in May 2023 and Mojo 1.0 as open-source software in August 2026. Source ↗
  • Wikipedia, Chris Lattner: co-founder and CEO of Modular AI, established in 2022, whose first products are the Mojo programming language and an inference engine. Source ↗
  • Wikipedia, MLIR: developed in 2018 by Chris Lattner at Google and released as part of LLVM in 2019. Source ↗
  • Wikipedia, LLVM: compiler and toolchain technologies built around an intermediate representation, started in 2000 at the University of Illinois. Source ↗
  • Wikipedia, SambaNova Systems: an AI and semiconductor hardware company founded in November 2017, which designs Reconfigurable Dataflow Units. Source ↗
  • Wikipedia, Loop unrolling: a transformation that trades binary size for execution speed. Source ↗
  • Wikipedia, Automatic vectorization: converting code that processes one pair of operands at a time into code that processes several at once. Source ↗
  • Wikipedia, Biometrics: passwords can be re-issued after a loss, which isn't naturally available for biometrics, and cancelable biometrics. Source ↗
  • Wikipedia, Data minimization: collecting, processing and storing only the personal information a purpose needs, and its place in the OECD Privacy Guidelines and the GDPR. Source ↗
  • Wikipedia, General Data Protection Regulation: adopted on April 14, 2016, effective on May 25, 2018. Source ↗
  • Wikipedia, Apollo Guidance Computer: the Block II version, used on the crewed flights, with 2,048 words of erasable memory and 36,864 words of core rope memory. Source ↗
  • Wikipedia, Apollo 11: the first crewed Moon landing, July 1969. Source ↗
  • Wikipedia, Wirth's law: software gets slower faster than hardware gets faster, from Niklaus Wirth's 1995 article A Plea for Lean Software. Source ↗
  • Wikipedia, Federated learning: clients train a model together while their data stays decentralized. Source ↗
  • Wikipedia, Non-blocking algorithm: the meaning of lock-free. Source ↗
  • Wikipedia, Unikernel: a program linked with the operating system code it depends on, which can run as the guest of a hypervisor. Source ↗
  • Wikipedia, Docker: containers through operating system-level virtualization, first released in 2013. Source ↗
  • Wikipedia, Arduino: single-board microcontrollers and kits for building devices. Source ↗
  • Wikipedia, Capability-based security: a capability is a communicable, unforgeable token of authority. Source ↗
  • Wikipedia, Principle of least privilege: each module reaches only what its legitimate purpose needs. Source ↗
  • Wikipedia, Code signing: signing executables and scripts to confirm the author and that the code hasn't changed since it was signed. Source ↗
  • Wikipedia, Supply chain attack: an attack through the less secure elements in an organization's supply chain, in software or hardware. Source ↗

Transcript

Automatic transcription. Jon McLachlan hosts this episode with Aman LaChapelle, an early engineer at Modular. There is no diarization on the tape, so speaker labels were assigned from the content and checked against reference recordings of each voice from this episode, and a few short lines may sit with the wrong speaker. Names and terms were normalized where the recognizer misheard them (Jon McLachlan, Aman LaChapelle, Modular, UnifyID, SambaNova, Apple, LLVM, libc, malloc, Dijkstra, Docker, Arduino, unikernel). Words in [brackets] are best guesses where the audio is unclear. Answers are transcribed as spoken, with most repeated words and false starts kept. Short backchannels such as "yeah" and "right" are left out where they overlap the other speaker.

Read the full transcript 6,305 words

Jon McLachlan

Hello, everyone, and welcome to another episode of the Security Podcast in Silicon Valley. I'm here today with a very special guest, Aman LaChapelle. Would you like to share with our audience today just a quick intro of yourself?

Aman LaChapelle

Sure. Yeah. In college, I was doing physics stuff. So I was a, I spent about a year and a half as a research assistant in a physics lab, was going to go get my PhD, ended up deciding not to after realizing that software engineering was pretty awesome. So spent about a year at UnifyID doing machine learning stuff, adjacent to security. That's how I met Jon. Then spent a little bit at SambaNova doing compiler backends for CGRAs, some time at Apple building compilers and runtimes for heterogeneous systems. And now I'm at Modular, rebuilding AI infrastructure for the entire world.

Jon McLachlan

Wow, that is a lot of experience. It's great to have you on the show. Thank you so much for joining.

Aman LaChapelle

Thanks for having me.

Jon McLachlan

So I know that you just shared a little bit about yourself, but would you like to share maybe any particular parts of it that really helped shape who you are today?

Aman LaChapelle

Sure. I think my college years were fairly formative in that sense, just in that it went from elementary, middle, high school, where I think a lot of people have a similar experience of you don't have to work super hard. And then going into college, and all of a sudden, I had to work really hard. And so that was a very like illuminating experience. And so I feel like that's where I learned to like really sit down and put in the work to do something. And that's, I think, a super important experience to have. And so I'm very glad that I had it. And I think the other thing that I got in college was just this, the sort of deriving things from first principles and like understanding things at a deep level, enabling you to build more complex ideas off of very simple ones, and like gaining an appreciation for that. And I have, I personally, I feel like I have my physics background to thank for that, just because it always made sense to me in a physics context when you take something simple and build up to more complex concepts. And so I feel like I carry that forward into my software engineering today.

Jon McLachlan

I love the first principles and getting into the grit and just getting your hands dirty a little bit.

Aman LaChapelle

Yeah, it's great. And as it turns out, in order to build something really awesome at a high level, you do have to understand how things underneath work. You can't pretend it's a black box, 'cause it's not.

Jon McLachlan

That's right, it's not. And oftentimes those small decisions that are made in the, in the guts of the machine have huge impacts and very high level experience or system behavior, make a big difference. Do you brand yourself as a security person?

Aman LaChapelle

No, not really. I, I actually don't really brand myself as anything in particular. I just run into a lot of security problems, and I care about security and I care about privacy and protecting, basically, I care about preserving people's choice with what they do with their data. And because data is all around us, it means that no matter what I do, I run into these types of issues. And so I spend a lot of time thinking about them, basically. I would say if I was anything, I'm a bit more of a compiler person. But honestly, I [try to], I like everything.

Jon McLachlan

That's right. I remember. Can I share the story of, of that morning [at] UnifyID? So Aman and I used to, we used to go into the office like crazy early in the morning, seven o'clock in the morning, which is very strange for San Francisco and Silicon Valley in general. So here we were in the office one morning. We have this ritual of making coffee, and it was a very important ritual. And so Aman came in, and I have to admit, your feathers were a little bit ruffled this morning, that morning in particular. And so we started making our coffee and getting to talking, and you were really upset about an optimization pass inside one of the compilers that we were using to compile something for UnifyID. And you were really upset because it did something like, I forget what it did. Do you remember what it did?

Aman LaChapelle

It like unrolled a loop. I think it was, well, no, I think it was, I think the problem was I wanted it to vectorize. I wanted it to unroll and vectorize, and it was just like, it was not doing it, and it was not giving me helpful diagnostics at the time.

Jon McLachlan

Yeah, it was not doing it. And we have this conversation, and as we were making coffee, I kind of fooled you just a little bit, like with all of the love in the world. I said something like, that poor compiler is just a piece of software like anything else that we write, and it's only doing what someone told it to do. And by the way, it's an open source project. So if you really wanted to, you could go in and massage it and give it a little bit of love and improve it. Make it better, not just for yourself, but for everyone. Do you remember?

Aman LaChapelle

Yeah, I do remember. That harkens back to that thing that you used to say: computers only do exactly what we tell them to. Which is like so true. This is why computers are so simple.

Jon McLachlan

That is so. A couple days go by, and then you came up to my desk at some point, a few days after that, and you were like, hey Jon, you want to see something? I was like, okay, sure.

Aman LaChapelle

Oh yeah, this was the thing, was this the thing where I like manually generated that [LLVM] IR to unroll a loop and then generate the vectors? I don't think I ever ended up committing to the, to the upstream at that point.

Jon McLachlan

No, but I was still impressed because no one had ever taken me up on like the challenge to go dig into a compiler. And so it connected perfectly with your first principles thinking, your understanding like the world from the ground up, that you just shared, that sort of made you in your formative years from college. So I always have had the absolute most respect for you.

Aman LaChapelle

Thank you.

Jon McLachlan

Machines just bend to your will. You realize that, right? Or somebody, I don't know. So you don't brand yourself as a security person, but you do care deeply about people's privacy and people's data. And as a security, or as an engineer in general, you bump into this all of the time, because as we write software, like software, it, it always operates on data. So we have data flowing into our systems. We compute things on our data. And you mentioned that you care deeply about this. And so when you bump into these problems, maybe [you'd] be willing to share with our listeners an instance, a specific instance where you were really faced with a challenging security question or a privacy question.

Aman LaChapelle

So at a lot of my sort of jobs after UnifyID, we weren't dealing directly with user data, especially at SambaNova, or like at Apple, it wasn't really anything that, I didn't have direct access to any user data. And honestly, I'm like, I'm cool with that. Um, but at Unify specifically, there were a few times where I was, there were some, we were storing some like pretty personal data from people. And it was the kind of thing where it was like, I understand that we are, like, I understand that we need this data in order to do our business magic, right? Like, we need all this raw data from people's phones to do the stuff that we're trying to do. And that's awesome.

Jon McLachlan

What type of data?

Aman LaChapelle

Also, it was like accelerometer, gyroscope data. This was the tracking people's like walking, right?

Jon McLachlan

Yeah, the [gait] analysis.

Aman LaChapelle

Yeah. And it was the kind of thing where it just was like uncomfortable for me because it was like, this is something, so it's interesting because we need it, but also it's not something that someone can change, right? Like you can change a password, you can rotate a key, but you can't like change the way you walk. And so to me, this biometric data is something that's super sensitive that we really need to be careful about. But, and it was in an encrypted bucket, and we were being careful with it. But also, everybody in the company had access to it, and things were flying around a little bit in a way that just was a little uncomfortable. And so that was partly why I was pushing to get things done on device, was to preserve some of that like privacy. 'Cause if you don't, and I think this has sort of been my guiding principle, is you can't leak data that you don't have. So, like, the goal is to have as little as possible. And not that you would leak it intentionally or anything. I don't think anybody's intent, well, that's a bad statement. Some people intentionally leak data. I think, good, like, I think most people are good.

Jon McLachlan

Most people, yeah, most people don't want to leak data.

Aman LaChapelle

Yeah, sure. Most people are fundamentally good. Most people fundamentally don't want to leak data. And so when it happens, it's an accident. And you can't guard against accidents. They're accidents. The only way to protect against that is to not have it. You can't lose something you don't have.

Jon McLachlan

Right. So that, no, that makes perfect sense. I remember those days very well. I remember you trying to advocate to do all of the processing on the devices, and the internal, I wouldn't say the internal pushback that we had, but more the business needs were pushing us to think holistically about the system and delivering product to market as quickly as we could. And I remember finding encryption code like caked into the Android client and having to rip it out because it was breaking and preventing us from getting good data. And it had no key rotation in it or anything. And it was like a hard-coded key. And I was like, what is this?

Aman LaChapelle

It's unfortunate because I think Silicon Valley, as it exists right now, really incentivizes this move fast without regard for the follow-on effects for what you're doing, if that makes sense. I think, and I think [Unify] was a bit of just like a, like a victim of that almost, 'cause like, I'm sure, I'm like, I wasn't privy to these conversations, but I'm sure there was a ton of pressure from investors and folks who were like, hey, you need to get product market fit, you need to get the product out into the market now, you need to get customers. And so, like, from that standpoint, I understand fully, do things the easy way, just get things done. But at the same time, I also think that's the wrong incentive. And Unify was not that long ago, but I feel like I've learned a lot since then. And I've, I think I've seen that sort of consistently, in that like technology and people that build technology in Silicon Valley are consistently incentivized to not build the right thing, if that makes sense. Like, there's this overarching incentive to build the fast thing that works, not the right thing that you can extend and modify and fix and maintain, fundamentally secure.

Jon McLachlan

Yeah, exactly. Yeah. It's great that you're thinking about the full life cycle of a piece of software, or even a product as a whole, which I agree with. A lot of people miss that when you move fast and you think of shipping as, okay, we're done. Nope, that's actually when the fun really begins. And then you just enter another phase of your life cycle. You have to be able to maintain those things. And that's when security starts really mattering, because if you're successful, and if you're lucky enough, you're going to have a giant bullseye painted on the back of you. Because you only get hacked or breached, or you get that type of attention, when you become successful. So.

Aman LaChapelle

Yeah, absolutely. 100%. And that's where good design and like good engineering principles really come in.

Jon McLachlan

And actually, when you nail that security problem, like the way that you phrased it was you can't leak what you don't have. And this idea that less is more, that pays off in engineering architecture as well, not just from a security architecture point of view.

Aman LaChapelle

Yeah.

Jon McLachlan

If you, if your distribution, or that's one way to distribute a system that's highly computationally heavy, if you don't want to spend all of that money and maintain all of those EC2 instances up in AWS, or you can't, or you don't have the bandwidth or the capital to be able to facilitate that, and assuming no one else out there is building a SaaS that can help you scale your AI, shoving it into a device is perhaps a pretty good compromise there.

Aman LaChapelle

Oh yeah, I, and this sort of touches on something that I think is just, you know, lacking in software as a whole, which is we all assume, and I've fallen into this trap too, we all assume that everybody on earth has iPhone generation N minus one at the oldest, and the latest laptop with effectively unlimited RAM. Like, I, like, I don't know if people realize how much a gigabyte is. A gigabyte is so much. Like 32 gigabytes of RAM, that's more bytes of RAM than, what is it, than a signed integer can hold, than an unsigned 32-bit integer. That's so much RAM. That is so much memory. We went to the moon on what, like 100K or less, or was it 32 or 64K or something? Like, the amount of memory that Google Chrome uses to show me cat photos is like mind-boggling to me. And so this is another thing that's like very dear to my heart, is we really need to get software to shrink. Did that make sense? Like software as it exists right now is super bloated and very like computationally and memory heavy, much more so than I think it needs to be. And so if we shrink it, then that enables us to put stuff on devices. Once we put stuff on people's devices rather than centralizing it, then now you can have all these nice security guarantees. Hey, I want to be able to do, in the case of AI, I want to be able to train a model on lots of people's data, but I don't want to learn what their data is. You can't do that right now because training a model is incredibly computationally expensive. You need a supercomputer to do it effectively. But if you can make that cheaper, if you can write software to make it so that you could deploy that to people's devices, even if it's not the whole computation, even if it's just part of it, now you're in a position where, again, you can't leak what you don't have. And obviously, I'm way oversimplifying the problem here, right? There's a lot of nuance, and it's not super obvious how to do this, but like, at a very high level, you push the computation to where the data is, not bring the data to where the compute is.

Jon McLachlan

I love that idea. Maybe we're just waiting for a platform to be able to write services that can run on our mobile devices, and then you can deploy all sorts of different things onto devices, perhaps. And your idea of cutting the computational burden, let's call it, splitting it between a cloud and a device, where you keep maybe the sensitive stuff on the device and you put the less sensitive things up in the cloud, that's also very interesting too. Hybrid model.

Aman LaChapelle

Sure. Yeah, you always need a cloud, or sorry, you don't always need a cloud, but having stuff in a centralized place lets you move fast. And like, I'm very sensitive to the fact that once you deploy code to a user's device, updating it becomes difficult. That's just a fact of life. Even like iPhones, I think, are better than Android for this, but like, in general, once you deploy some code, it's hard to update it. That's why design is important, right? And designing something where it's configurable and modular and changeable, well, that you can put on the device, so that your centralized server can give instructions to the device on what to do without actually receiving the data. Instead of moving the data around, let's move around the computation, let's move around the programs, the services.

Jon McLachlan

You're making the case for flipping the paradigm on its head, and [instead] advocating the privacy position and a different type of architecture, a different type of system architecture, for scale.

Aman LaChapelle

Sure, yeah.

Jon McLachlan

Sure. No, I love that. I love that. A lot of times, people centralize things just because you have to go up to the server to hit another service that then facilitates like the actual business transaction.

Aman LaChapelle

Sure.

Jon McLachlan

So, like, a big bank has to interact. If you move money around a bank, you do have to go to where the money is being tracked and saved. But I get it, for all of this other stuff, there's maybe something that can be had there.

Aman LaChapelle

Sure. Like, I think another good example here is like Uber or Lyft as an example here. So you flag your Lyft, right? But I hesitate to use that as an example 'cause I don't understand fully how their architecture works. I don't want to like speak to it.

Jon McLachlan

Assume.

Aman LaChapelle

Yeah. Yeah, exactly. I don't want to assume.

Jon McLachlan

Although, I imagine that they do some AI.

Aman LaChapelle

And, oh, I'm sure.

Jon McLachlan

And what they're doing is they're tracking like your location. They're tracking like what sorts of rides you've done from that location at that time of day in the past. And they probably come up with a probability matrix of where you want to go. And then that's how, when you open Lyft, like maybe it tells you, like, oh, do you want to go to SFO? Do you want to go to the Castro? Where do you want to go today? Here's where you've gone before here. And that data doesn't necessarily need to live in the cloud.

Aman LaChapelle

Yeah, exactly. I think that I, frankly, I don't think it should live in the cloud. I think it should live on my device or your device or each individual person's device.

Jon McLachlan

No, I love it. I love that perspective. In fact, I'm, I live in San Francisco, and I see all of these billboards of Apple advertising that privacy is a core value of the company and it's baked into all of their devices. And all of these advertisements just have an iPhone like being held by someone, and you can't see who it is because the iPhone's covering their face, signifying like privacy is an iPhone. And with your stint at Apple, did you really feel that privacy mentality guide your engineering?

Aman LaChapelle

Honestly, actually, yeah. Like, I think it's, I don't, I don't want to sound like I'm like parroting the company line or anything here, but I think, from a fundamentals perspective, Apple is a hardware company. Like, Apple sells iPhones and MacBooks, and they sell hardware based on chips. And so because of that, I think they're very focused on the hardware and getting things to run on the hardware. And so everything I did at Apple was not about centralizing it to some, was not about centralizing things to some server. It was 100% about deploying to the device, which fits right in with my worldview. So I actually very much enjoyed my time at Apple for largely those reasons. It was just partly those reasons, partly I had a great team, and the work was super interesting and stuff, so it just fit very well for me.

Jon McLachlan

I am so tempted right now to ask you what you worked in. And for, yes, he's smiling and laughing. I know you can't answer that question. I'm so sorry.

Aman LaChapelle

That's okay. I told you, I have told you what I'm allowed to say.

Jon McLachlan

And we appreciate your sharing that much. Even with the secretiveness, you still got a lot out of it.

Aman LaChapelle

Apple, I think Apple was a great experience for me. I really enjoyed that.

Jon McLachlan

Okay, speaking of being an engineer, and, you know, you've been in a couple of companies now and you've worked on a bunch of different teams, let's talk about interviews for a second. Oh, giving interviews. Do you have a favorite interview question that you like to ask potential candidates?

Aman LaChapelle

I have a couple, but so I used to just do atoi, just string to int, in some strongly typed language. I now have started using like circular buffer or lock-free queue, just to test concurrency. It's interesting because I find that simple questions like that often work the best. So the trick is you got to find a question that's like simple enough that people are guaranteed to at least get some part of it, and, but has enough range that you can make it more complex. So I really like atoi because for like more junior folks, you can sometimes even ask it to them in like a language that they don't know super well. So I frequently will do like, give me atoi, but in C, right? These are folks that like have maybe only ever interacted with C like once or twice. And so I fully understand that there's a lot of difficulty there, but what you get to see is like problem solving. So, in the like more junior folks that haven't worked with C a whole lot, obviously, I'm not going to hold it against them if they're like, hey, how do I get the length of this [string]? Or like, or some like [C-ism], like, that's fine. I haven't interacted with it before. What I want to see is the problem solving of like, how do you like, how do you approach this problem? How do you, how do you work collaboratively? Do you ask questions or do you just try and [bulldoze] through, or do you take feedback? That kind of stuff. For the people that have a little bit more experience, you can sort of take it up to the next level. You can be like, hey, okay, so what about negative numbers? What about hex numbers? What about base 23 numbers? If I wanted to come up with my own number system, like what, how would I handle that? So there's a lot of like up, there's a lot of range to go up the experience spectrum.

Jon McLachlan

Which, even just a simple beginning can change into all sorts of interesting questions, it sounds like.

Aman LaChapelle

Yeah, absolutely. [Um, like], one, one interesting one that comes up occasionally, it always makes me happy when it comes up anyway, is a string can hold a number much larger than like even a [u64]. What do you do then? I mean, what do you do then? There's all kinds of questions, right? And so that's when you start talking to the, that's when, that's when the candidate, and like talking to the candidate, becomes super important, because you can be like, so let's talk about what's the system around this thing, right? So does the system around this thing expect to be able to have these humongous numbers, or is it very likely to be an attack? And then, depending on that, you can decide, okay, let's modify the API to, instead of returning an int, it can return an error. Or if it's too big for an int, then you should reject. Or maybe we say, okay, it has to be a double, or something like this. And even then, maybe you get outside the representable range of a double. And then it's okay, do we want [big ints]? How do we do [big ints]? All that kind of stuff.

Jon McLachlan

No, I love it. So it goes back to just an interesting discussion, and you get to really see how the candidate is thinking through things. And you have an opportunity.

Aman LaChapelle

Yeah, yeah, yeah.

Jon McLachlan

You get to think through a complex situation with them.

Aman LaChapelle

Almost like working with them.

Jon McLachlan

Yeah, exactly.

Aman LaChapelle

Which, like, that's ultimately what we're trying to test. I don't know. I may be totally wrong. I may not have the best interview practice out there, but it has worked for me so far.

Jon McLachlan

No, I'm happy that you got something that works for you. And it, I don't, honestly, I think that when it comes to interviews, like there is some un-, unease on both sides of every interview. And it's always there, and it's always like lingering, but no one ever talks about it. And I'm not sure that either side realizes all of the time that's actually what's going on. But what helps significantly is just, you know, melting away a lot of the sort of, the expectation of looking for a right answer, or do you know how to like code in this language, and you forgot a curly brace over here, and just having a fun conversation with a new person.

Aman LaChapelle

Yes. Yeah, just very [engaging]. Yeah. Yeah, I really like it when people get like excited in interviews. So that's always my goal, is to like push a button that gets someone like talking really fast.

Jon McLachlan

Yeah. Yeah. They light up like a Christmas tree.

Aman LaChapelle

Oh, that's it. That's it. Yep, exactly. When you haven't talked for the last 10 minutes, that's when you know, like, that was a good question. Because then you really get a sense of who they are, what they like, that kind of stuff.

Jon McLachlan

Where's that passion?

Aman LaChapelle

The passion. Yeah.

Jon McLachlan

The passion-focused interview. Very nice. No, I have a very similar style based on the passion. I would say [strongly], it's based on the passion.

Aman LaChapelle

Yeah, where do you think I got it from? I got this from you, Jon.

Jon McLachlan

Oh, that makes me really happy. That's right, 'cause we did a couple of interviews. We pair interviewed a few times at UnifyID.

Aman LaChapelle

Oh, that's right, we used the string to int question.

Jon McLachlan

Yep. Yeah, I think we did.

Aman LaChapelle

I don't remember if we ever did Dijkstra, but it was mostly just [string to int].

Jon McLachlan

Oh yeah, yeah, maybe we did, maybe we did not. I usually save that one for more senior candidates.

Aman LaChapelle

Yeah. But honestly, I've given string to int to some very senior people, and like sometimes they still struggle with it. Like, and it solidified this idea that, yeah, I think a simple, like a simple question is best, because struggling is not a bad thing. It's just really hard to distinguish what is struggling with the question versus what is struggling with the best answer. Because I think what a lot of people do is they'll be like, they'll like not overthink it, but they tend, and I do this too, you like have a problem and you come up with a whole bunch of solutions, and then you spend a bunch of time analyzing which is the best solution. And so it's nice to have something simple, like [string to int], like, this thing, not a lot of complexity. You can do it in like linear runtime. Like, it's not a secret. It's not tricky. There's not really, there are, there are some gotchas. There's some gotchas, sure, but like, whatever. Yeah, yeah, but for the, the simplest case is simple.

Jon McLachlan

It constrains the sort of like the thing that your brain does. I think my brain does it too, where it just explores all possibilities, and it's a little bit overwhelming sometimes. And it can lock me down if I don't pick a direction and just move forward. So what about one tool or service that you wish someone would just build already so that you could use it in your future?

Aman LaChapelle

Oh god, so, I think, honestly, if I was going to boil it down, the like very basic thing is I want, uh, a cross-platform way to deploy code that allows like fine-grained permissions editing and is nice and lightweight. And I think a lot of people will be like, well, that's what Docker is. But you can't use Docker, and it, and things similar to it on things like mobile phones or embedded devices. When I say cross-platform, I want to be able to write some code and deploy it on [an] Arduino, and the same code on like some beefy x86 thing in like GCP. I don't want to have to, and I feel like I shouldn't have to, 'cause the, like, some cases, there are platform-dependent code, absolutely. But in a lot of cases, for a lot of people, there's just like, the process of deciding which code is platform dependent versus platform independent is basically like, which instructions does this target have? Right? Which, like, it turns out compilers are really good at that and have been doing it for many years. So it doesn't, it feels like it's not something I should have to do.

Jon McLachlan

Yes, compilers have been around longer than I've been alive.

Aman LaChapelle

Yeah, so, me too. Yes, let's just let the compilers figure this hard problem out for us. Can we please reap the benefits already?

Jon McLachlan

Yeah, exactly. And you mentioned something. You mentioned also fine-grained access control.

Aman LaChapelle

Oh yeah.

Jon McLachlan

So tell me about that. What does that mean?

Aman LaChapelle

So, like, basically, and when I say fine-grain access control, I don't just mean like security type access control, I also mean things even more fundamental. Hey, I want to take this code and deploy it to somewhere that doesn't have libc, or it has parts of libc but it doesn't have malloc, or something like this. And I want a system where I can write some code and I can just describe my target, and I can say this target is ARM64, it is bare metal. These are the specific functions that you can expect to have from the, from whatever your hosted services, or potentially even this is unhosted. You are running on bare metal. And so then the idea is all that stuff just gets injected into your module, and you just go. And so, and I think the nice thing about something like that is, and I'm aware that what I'm describing is essentially like a unikernel. I think unikernels are interesting for different reasons, because I think part of the problem with the unikernel is they tend to focus really heavy on the embedded system side, and they can't take a unikernel application and run it on iOS, for example. Like, it's, there's a lot of stuff that's just not necessary because I'm running in a hosted system, so I don't need the like extra kernel bits. But like on a bare metal system, I do need the extra kernel bits. Anyway, and so like fine-grained access controls are like, so I don't want to have to worry, like, I would like to be able to say this thing is not allowed to access the network. This thing is not allowed to like, or even more fine-grained, this function, this symbol, is the only thing that's allowed to call out to the network, because then that allows me to super lock down my code. I can say, hey, access to this function is extremely tightly controlled. And so now that just makes it real hard for the black hats, basically.

Jon McLachlan

Amazing. So you're looking for object level, or even function level access to system capabilities.

Aman LaChapelle

Exactly, like symbol level access to system capabilities.

Jon McLachlan

I'm just thinking about how a system like that might actually be designed. Once you gain access to a system, though, like any adversary with enough time will probably be able to reverse engineer it, unless you go back to trusted compute modules that we're starting to see, the ones that, secure enclaves and stuff like that. So I suppose you could design it. We're in a place now, in terms of the technology, where you can glue all these pieces together and probably come up with a secure mechanism [to build], possibly.

Aman LaChapelle

And I don't want to come, I don't want to say that it's going to be the most secure possible or like it's going to be perfectly secure, because nothing is perfectly secure. You're right. Every, any adversary with enough time and effort can figure it out. But you can make it really hard. If you can, if you have a system, just off the top of my head, if I have a system where I have symbol level control over network access capabilities, then, yeah. And so then what I can do is anything that comes in from the network, I can spend a lot of cycles validating it, because now I know, okay, only this function can call out to the network. So I can call this function in cases where I don't mind having a little bit of extra overhead. So I can do a lot of extra validation, be super careful with what I accept and with what I send. And so then if someone manages to get past that, I can also have capabilities that are like, and nothing on this, there are no symbols inside this box that are allowed to access things like the shell. Or potentially, there is no shell. And so that makes it even harder for someone to perform an attack. Basically, this is about defense [in depth]. It's not about making it perfect, it's about making it really hard.

Jon McLachlan

That's right. That's the game that we play in security. And I love to hear that mindset reiterated from an architecture elegance point of view too. Because I think that stripping things out of a system is really the hard thing to do. It's easy to bloat a piece of software, to bloat a Docker image, to bloat something that's running in the cloud or on a device. And you look at it and you're like, why is this thing like 600 megabytes? And you're like, it's Java, or whatever. Right.

Aman LaChapelle

It's like, and that's like fine, [kind of sad].

Jon McLachlan

Yeah, and you could take the same thing and you could rewrite it in C, and now it's what, a megabyte? Two megabytes? [It's not], I mean, if, that depends what it is.

Aman LaChapelle

Yeah, exactly.

Jon McLachlan

I love that you're striving for the simplicity, which is actually much harder than what everyone else tends to do when we move fast and [bloat] and break things.

Aman LaChapelle

Yeah.

Jon McLachlan

And that's also where you get your security from.

Aman LaChapelle

You can't [hack it]. It's not there.

Jon McLachlan

Right. If there's no, guess what? You're not going to have like a [root] compromise on that device.

Aman LaChapelle

Because there is no root to compromise. There is no shell. There you go. Go away. You maybe can have like arbitrary code execution or something, but the other thing that you can do with a system like that is you can say, hey, this system is not allowed to run any code other than this exact code, and you can use cryptography to enforce that. And then, guess what? That's really hard. That's really, that's, that gets even just a little harder to bypass. It's just, I'd love to end up in a world where capabilities are default off rather than default on, and you only add what you need.

Jon McLachlan

Exactly. And when you add a dependency, like, the compiler does not download half the internet to support it.

Aman LaChapelle

I love it. Wouldn't that be nice?

Jon McLachlan

What would we call this package manager?

Aman LaChapelle

Well, I don't know. Names are so hard. Names are very important, but they're also very hard. And I don't want to get dragged. This is true. This is true.

Jon McLachlan

All right. Would you like to leave any of our listeners with parting words of wisdom?

Aman LaChapelle

Yeah. How about something along the lines of: do you really need that thing that you're adding? Are you sure? Are you really sure?

Jon McLachlan

So three questions that we can go ask ourselves now, the next time we do an import or something.

Aman LaChapelle

Yeah, exactly. The next time you do a pip install, ask those three questions three times.

Jon McLachlan

And the ghost of Aman will be lingering over your left shoulder.

Aman LaChapelle

Yeah, exactly. I'll whisper in your ear.

Jon McLachlan

Aman, it's been a great pleasure to have you on the show. Thank you so much for joining me for an interesting discussion and a fresh perspective on security and privacy.

Aman LaChapelle

Yeah, thanks for having me, Jon. It's been a great time.

Jon McLachlan

And thanks, everyone, for tuning in for this episode. Stay tuned for another episode. Thanks, everyone.

FAQ

Questions this episode answers

Who is Aman LaChapelle?
Aman LaChapelle was an early engineer at Modular when this episode aired, from February 2022 to February 2024. He studied physics at the University of Chicago and worked as a research assistant in a physics lab, then did machine learning at UnifyID, built compiler backends at SambaNova Systems, and built a compiler and runtime stack for neural networks at Apple. He returned to Apple in April 2024, and since December 2025 he has been a principal software engineer at NVIDIA.
What is Modular?
Modular is the company behind the Mojo programming language. Chris Lattner, the original architect of LLVM and Swift, founded it in 2022 with Tim Davis, and its first products were Mojo and an inference engine. On August 18, 2026, Modular open sourced Mojo, including its compiler, under the Apache 2.0 license.
What does "you can't leak data that you don't have" mean?
It has been Aman's guiding principle since UnifyID. Most people don't want to leak data, so leaks are accidents, and the only protection from an accident is not having the data. Privacy law calls the idea data minimization, one of the six principles of the GDPR.
Why is biometric data riskier to hold than a password?
You can change a password or rotate a key after a leak, but nobody can change the way they walk, Aman said. Wikipedia notes that passwords can be re-issued, which isn't naturally available for biometrics. Cancelable biometrics try to fix that by distorting the features in a repeatable way.
What does it mean to push the computation to the data?
Send the program to the device that holds the data, and keep the raw data there. Aman's example was training a model on many people's data without learning what the data is, which today takes a supercomputer. Federated learning is one form of the idea.
What is Aman's favorite interview question?
Atoi, or string to int. He asks junior engineers to write it in C and watches how they solve problems and work with him. With senior engineers he adds negative numbers, hex, base 23, and a number too big for an int, which leads to whether the input is an attack.
What tool does Aman wish someone would build?
A lightweight, cross-platform way to deploy the same code to an Arduino or to an x86 machine in the cloud, with fine-grained permissions. You describe the target, such as ARM64 on bare metal with no malloc, and permissions go down to single symbols, so one function alone may call the network.
What are Aman's three questions before adding a dependency?
In Aman's words: "do you really need that thing that you're adding? Are you sure? Are you really sure?" He suggested asking them three times at every pip install.
Keep reading on the YSecurity blog
New episodes every other Tuesday

Got a story like this one?

We're always looking for practitioners who've been in the room when it mattered.