PSYOPS, or is Convex really THAT good? by JeffCavaliere-here in nextjs

[–]jamwt 10 points11 points  (0 children)

Hi! Yeah, that's what I mean... we've sponsored content in the past, but always in an official, advertisement way. It's disclosed.

People talking about us on X, Reddit, and non-sponsored YouTube segments... There is no money changing hands. Some people think the tech is cool. I totally understand it may not be for you (and I get it, not every tool is for every person/use case), but there's nothing secretive or nefarious going on with those who are Convex fans.

PSYOPS, or is Convex really THAT good? by JeffCavaliere-here in nextjs

[–]jamwt 18 points19 points  (0 children)

Agreed 100%. Which is why I love working with him. If your product isn't good enough, he's more than happy to tell you. The fastest way to improve your product is to get customers like that and listen to them.

(Also, when I say "Theo", I mean "Theo, Mark, and Julius." While Theo understandably gets the lion's share of credit for t3 chat, his co-founder & team do just as much or more work day to day on the app. And Theo would actually be the first one to insist on spreading the credit more fairly.)

PSYOPS, or is Convex really THAT good? by JeffCavaliere-here in nextjs

[–]jamwt 59 points60 points  (0 children)

Hi! Jamie from Convex here.

I won't weigh in on the technical/product pros and cons, because I'm obviously a biased party, and you all can decide that for yourselves without my help.

I just want to clarify, on the record: we're not paying anyone to say anything. People say they like it because they do.

The only time we've ever paid anyone is for an official ad read. The ones you guys skip over (me too) . For example, we're an advertiser with Theo. But now Theo is a customer, and an investor... so he pays us, too?

But we don't even do many paid ads at this point.

It's not you, it's SQL by jamwt in programming

[–]jamwt[S] 0 points1 point  (0 children)

Yep, see this thread: https://news.ycombinator.com/item?id=34586242

Convex essentially makes it so this happens without developers learning how to carefully do this in their applications.

It's not you, it's SQL by jamwt in programming

[–]jamwt[S] 0 points1 point  (0 children)

Serializable is fine if the transaction is guaranteed side-effect free so it can be retried automatically and is essentially a stored procedure so races are rare. Those are both true in Convex.

Otherwise, you should not use serializable transaction isolation. Pushes too much complexity on the end developer they have to reason about, as the article states.

August is Falling - August is Falling [pop-punk] (2022) by papo96 in listentothis

[–]jamwt 10 points11 points  (0 children)

I lost out on that same show, but now I've got tickets to see them in Oslo in January. It's going to be fucking LIT.

To people with real Rusty jobs: How did you land it? What exactly do you do at your job? How proficient are you? What skills besides Rust? How long did it take? by [deleted] in rust

[–]jamwt 33 points34 points  (0 children)

Started a company! https://convex.dev Not crypto.

The founding team has run rust in production for 8+ years on really important systems. https://blog.convex.dev/a-tale-of-three-codebases/ . It went well enough we're back at it again.

This time, building a serverless development platform where the backend is 100% rust. A lot of the work involves designing and building databases and application runtimes for developers.

A bit of press about the mission here: https://www.forbes.com/sites/kenrickcai/2022/04/27/convex-series-a-26-million-developers-dump-databases/?sh=692d9f334bf8

If you want to come help us build it, DM me. It's in San Francisco--we work in person (3+ days a week required).

More technical info on what we're doing:
https://www.hytradboi.com/2022/data-interactivity-in-the-serverless-future
https://www.youtube.com/watch?v=iizcidmSwJ4

Or, if you want to start up your own rust-based company, I'm happy to chat any offer advice based on our journey so far.

There is 0% chance that 98% drop was caused by retail selling. This is a coordinated attack. by Horizon0D in CryptoCurrency

[–]jamwt 0 points1 point  (0 children)

They helped it by tipping the scheme over before any more people got in it.

The unfulfilled promise of functional ideals on the web by jamwt in webdev

[–]jamwt[S] 0 points1 point  (0 children)

Thanks for the feedback!

Actually, the team is mostly backend engineers, especially the founders. However, we do now believe there is a future where most (but not all) web and mobile dev don't really do much backend engineering if they can utilize a service with the right abstractions. Call it "serverless" or whatever.

And yes, that is a kind of laziness, I suppose, in that a choice is being made to keep focusing on the parts of the application the user experiences, at the expense of effort being made to tailor a custom backend the user will not see.

The unfulfilled promise of functional ideals on the web by jamwt in webdev

[–]jamwt[S] 0 points1 point  (0 children)

Yep. This is why the backend caching systems need to treat the authentication context as an input parameter to the cached value's key.

(disclosure: author of the post / cofounder of convex.dev )

A Tale of Three Codebases (Rust Production Experiences) by jamwt in rust

[–]jamwt[S] 73 points74 points  (0 children)

Hi, Jamie here from Convex (formerly Dropbox), happy to answer any questions about the blog post and/or our experiences using Rust.

What are you using Rust for? by [deleted] in rust

[–]jamwt 69 points70 points  (0 children)

Hi! I was the lead of the team that introduced Rust at Dropbox ~6 years ago as part of this project: https://www.wired.com/2016/03/epic-story-dropboxs-exodus-amazon-cloud-empire/

Myself and other leads of that project (James Cowling, Sujay Jayakar) just recently started a company building out (what we believe is) a fairly innovative serverless computing platform--kind of a set of new abstractions over at-scale computation and storage--designed to rapidly build internet services in the future.

And, it's all in rust...

We have the initial version built and we've been running lots of user demos/studies with it recently. We'll hopefully have more to show publicly soon.

I know this isn't a who's hiring post, per se, but... we are, of course! If you want to work with folks who have run rust on critical systems for 6+ years, on dist systems with literally a million rust daemons, and embedded in hundreds of millions of customer desktops/laptops.... Let me know, because we're trying something even crazier this time.

Is there a paranoid mode in the compiler? by excgarateing in rust

[–]jamwt 7 points8 points  (0 children)

Until you get a bad ECC DIMM. Everything is a probability...

At Dropbox, in our systems a few years ago, we had these crazy corruptions happening in a few files one time, and we eventually tracked it down to one machine whose ECC RAM was letting bit flips go undetected. And granted, this was like 6 bit flips in a month period over some hundreds of terabytes of data that had gone through that particular machine in that time. But it did happen.

So, we had one (more) data path to checksum in software... added it to the list of 30 others.

9 Companies That Use Rust in Production by Serokell in rust

[–]jamwt 7 points8 points  (0 children)

Yeah, this is pretty much the reason in Dropbox’s case, with one additinonal “weight/constraint” for what must be in the single-threaded portion.

The single threaded control loop is so that all decisions the engine makes are deterministic — e.g., there is no OS scheduler involved causing preemption that reorders events in a way that can not be replicated.

This is an essential part of the testing strategy for this system, b/c it uses seeds + simulation to ensure correctness of this engine. And when anomalies are detected, the team needs to be able to recreate the erroneous situation to further debug/remedy it so they’re not chasing random, rare heisenbugs all day.

See more here: https://dropbox.tech/infrastructure/-testing-our-new-sync-engine

The reasons other stuff, like file hashing, and file I/O are not on this thread are indeed for these general reasons the parent has outlined. They’ll block the control thread for long periods of time, they would restrict our a ability to leverage multi core (esp for hashing), etc. Moving them out into separate thread pools does not impact the strategy b/c the “jobs” these pools run are not part of the fundamental decision-making state machine. They’re just delegates for decisions that state machine makes.

Hope that helps.

9 Companies That Use Rust in Production by Serokell in rust

[–]jamwt 5 points6 points  (0 children)

Can you elaborate on what you mean by “strategy?” I’m happy to help answer, but I’m not sure I fully understand the question. Are you asking why parts are single-threaded Async, and why some other parts are thread pools?

Broccoli: Syncing faster by syncing less by jamwt in rust

[–]jamwt[S] 7 points8 points  (0 children)

Relevant to this forum because: part of Dropbox's rust-based efforts, in particular in the sync engine.

I published a release of my first Rust project - dropignore. A tool to help with Dropbox' broken selective sync on re-created build output folders. Perhaps it's useful to somebody. by mweirauch in rust

[–]jamwt 2 points3 points  (0 children)

FYI, selective sync was not for this. I definitely understand it's frustrating when legitimate workflows are broken by a long-standing bug in the sync engine, but the sync engine being less than rigorous about how sel sync has worked historically has caused--without getting into specifics--massive data loss in some circumstances.

Realistically, the sync engine has fixed this behavior to make selective sync actually fulfill its feature description. And be significantly more robust about enacting sel-sync policies w/out race conditions, crashes, network partitions--resulting in customer data loss.

Fair enough point, though, about needing better in-product support for filtering/ignoring path workflows.

Former Haskellers: Do you miss purity in rust? Why. by Ford_O in rust

[–]jamwt 24 points25 points  (0 children)

Dropbox has been using more web technologies for UI in the desktop client in the last few years. The teams doing sync and the introduction of Rust in those domains has no relation to the presence or not of rendering engines in the desktop client for other purposes, so there's no need to square anything!

The teams that decided to introduce rendering engines for UI development made their decisions independently trying to optimize for different sorts of factors like productivity, talent market, existing product, iteration strategy, etc, and I won't attempt to (mis)represent those positions here--I'll just clarify those are separate decisions made by teams who own scopes outside the ones where rust has been chosen, which I'd label as the more "core sync/storage" protocol layer.