Menu
Sign In Search Podcasts Charts People & Topics Add Podcast API Blog Pricing

Cian Butler

๐Ÿ‘ค Speaker
690 total appearances

Appearances Over Time

Podcast Appearances

Rust in Production
Cloudsmith with Cian Butler

I know that we wouldn't have scaled as fast as we did without Django and Python because we wouldn't be able to roll features out as quickly as we did.

Rust in Production
Cloudsmith with Cian Butler

They definitely helped us scale the company and get to where we are today.

Rust in Production
Cloudsmith with Cian Butler

Saying that, after 10 years of code being written, I think I said there's like 200,000 lines of code in our thing, somewhere over 20,000 files in our monolith.

Rust in Production
Cloudsmith with Cian Butler

That's a lot of code.

Rust in Production
Cloudsmith with Cian Butler

It's a lot of code that not everyone understands.

Rust in Production
Cloudsmith with Cian Butler

And we're constantly going back, reading it, trying to figure out how it works.

Rust in Production
Cloudsmith with Cian Butler

Even this morning, I was trying to read a set of mix-ins, trying to figure out what path a request goes through as we have multiple different layers of Python code to process it.

Rust in Production
Cloudsmith with Cian Butler

It adds up over time.

Rust in Production
Cloudsmith with Cian Butler

So what made it really good for scaling on day one has kind of like caught up and made it really difficult to understand and handle now.

Rust in Production
Cloudsmith with Cian Butler

So double-edged sword of Python there.

Rust in Production
Cloudsmith with Cian Butler

Yeah, it's all that kind of stuff I said.

Rust in Production
Cloudsmith with Cian Butler

Each package format is its own distinct structure.

Rust in Production
Cloudsmith with Cian Butler

They all have a lot of similarities under the hood.

Rust in Production
Cloudsmith with Cian Butler

The data types are all very similar in our infrastructure, but each one has its own idiosyncratic ways of being handled and request flows.

Rust in Production
Cloudsmith with Cian Butler

The flow for uploading a package under the HUD is we take a binary and we store it somewhere.

Rust in Production
Cloudsmith with Cian Butler

But the handshake you do with that and the metadata you store in that differs in each package, which means that you could go into our code base and go into the slash packages folder, and then you'll just see 36 different code bases in there.

Rust in Production
Cloudsmith with Cian Butler

that are similar.

Rust in Production
Cloudsmith with Cian Butler

They have shared bits of code for logging and for metadata processing and tracking of events used internally.

Rust in Production
Cloudsmith with Cian Butler

And all that kind of business logic that's shared.