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
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).
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.
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
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.
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).
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
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).
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
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).
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.
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.
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).
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
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).
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.
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.
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
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.
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.
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.
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).
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
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.
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.
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).
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
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
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).
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
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.
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.
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.
Announced just now during the ModCon keynote, effective immediately, Apache 2.0 License.
Modular (@Modular) · August 18, 2026
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.
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.
-
What did Aman want the compiler to do with his loop?
a. "I wanted it to unroll and vectorize" Transcript, 4:36.
-
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.
-
What has been Aman's guiding principle for data?
c. "you can't leak data that you don't have." Transcript, 8:48.
-
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.
-
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.
-
Where did Aman get his passion-focused interview style?
c. "I got this from you, Jon." Transcript, 25:28.
-
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.
-
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.
-
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.
-
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.
-
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.
-
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.
-
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.
-
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.
-
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.
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.
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.
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.
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
- 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).
- A Plea for Lean Software
Niklaus Wirth's article on software that slows faster than hardware speeds up (Wikipedia).
- LLVM
The project starts at the University of Illinois, under Vikram Adve and Chris Lattner (Wikipedia).
- Docker
First released, with containers (Wikipedia, on this page).
- A physics lab
Research assistant at the University of Chicago, to June 2017 (LinkedIn).
- The GDPR
Adopted by the European Parliament and Council (Wikipedia).
- UnifyID
Machine learning engineer, to June 2018 (LinkedIn, on this page).
- SambaNova
Founded by Kunle Olukotun, Christopher Ré and Rodrigo Liang (Wikipedia).
- MLIR
Work starts at Google, led by Chris Lattner (Wikipedia).
- The GDPR takes effect
Data minimization is one of its six principles (Wikipedia, on this page).
- SambaNova
Software engineer on a compiler backend, to August 2019 (LinkedIn).
- MLIR in LLVM
Released as part of the LLVM project (Wikipedia).
- Apple
Senior software engineer on a compiler and runtime stack, to February 2022 (LinkedIn, on this page).
- Modular
Founded by Chris Lattner and Tim Davis (Wikipedia).
- An early engineer
Aman joins Modular, where he stays to February 2024 (LinkedIn).
- Episode 20
Benoît Chevallier-Mames of Zama on homomorphic encryption (episode page).
- Episode 23
David M'Raihi, who also worked at UnifyID (episode page).
- Episode 24
Aman on the show (Podbean, transcript).
- A Mojo playground
The first public version, online (Wikipedia).
- Mojo to download
For Linux, and for macOS by October 2023 (Wikipedia).
- Episode 36
Feross Aboukhadijeh of Socket on dependencies (episode page).
- Apple again
Staff software engineer on machine learning infrastructure, to December 2025 (LinkedIn).
- NVIDIA
Principal software engineer on compilers, tools and infrastructure (LinkedIn, on this page).
- Mojo goes open source
- Mojo 1.1
The compiler opens to outside contributions (X).
- Episode 105
Yair Grindlinger of Surf AI on the blast radius (episode page).
- MAX source available
With Modular 26.7 (X).
What to do this week
Five things, in the order of the episode.
- List the personal data you collect. Give each field a reason, and stop collecting what has none, as in Hold less data.
- 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.
- 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.
- Ask three times before a new dependency. Ask whether you need it, then ask again, as in Three questions before pip install.
- 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.