Founder of
@zeddotdev
, a high-performance multiplayer code editor written in Rust. Formerly a founder of Atom at
@GitHub
. Father of two special girls.
Zed is now open source!
Our mission is to revolutionize developer collaboration, building the world's best code editor in the process. After working together in Zed as a small team, it's time to scale up to transform Zed into a collaboration platform.
I just used Zed to code my first small feature for Zed.
There's still work to do before I can make the switch, but this is a meaningful milestone for me. Feels good.
@_AdamKristopher
@PrestonPysh
Price drop caused miners to drop offline, which slows the rate at which proofs of work are found and thus block production. Difficulty adjustment makes work easier to stabilize the rate of production until more mining power joins the network.
I want Zed’s codebase to be a joy to work in. Don’t want to over-engineer shit, but we take pride in every line. You can’t build a quality tool without caring about quality code.
I just love Rust. Implementing Zed’s CLI with the `ipc_channel` crate by the Servo team. It lets you send `serde` types over Mach IPC in a few lines of code.
Atom’s CLI was an absolute shit show. Thanks to Rust, Zed’s will be ✨.
@__morse
@zeddotdev
Most likely, but we really want pull requests to merge or close quickly and do most of our communication in the code. By the time you open a PR, we should already understand what you're doing.
I think people underestimate the importance of a really good text editing experience.
And they underestimate the power of hypertext.
Basically text is king.
We test our client/server interactions with a pseudorandom executor that exercises all possible orderings of concurrent interactions. I just spent 10 hours fixing bugs I don't think we could have found any other way. Painful, but better than unreliable software.
Implementing find-in-buffer right now in Zed. Compared to Atom/Electron it's a dream... our buffer data structure is persistent and copy-on-write, so it's trivial to search a stable snapshot in a background thread.
Testing Zed's new Copilot integration, which is close but not quite ready. Sorry to say that at least when coding in Rust, I find Copilot to be a bit distracting. It's helpful sometimes, but I find myself wanting to opt into it in specific situations.
Believe it or not, the current preview release makes Zed even faster! On ProMotion displays, we now drive your display at 120Hz during active editing. We also now apply triple buffering in our rendering pipeline for improved throughput.
#CodeAtMaxFrameRate
I spent a lot of time in Figma on the animated diagrams for this blog post. I think they help explain CRDTs much more clearly than the mathematical notation in the typical academic paper.
Lucky to have the incredibly engaged support of
@ericabrescia
,
@patrickachase
, and
@terronk
. They really put their heart into it. Thanks to Lee for believing when Zed was a year from being usable, and to Pat and Erica for seeing the big picture from day one.
Amazing product. Amazing vision. Amazing team. Having an absolute blast working with the
@zeddotdev
team,
@patrickachase
and
@terronk
to build Zed, the most blazingly fast editor you've ever seen. And this is just the beginning!
To write high-quality software as a team, you need to learn to think as one. And you can’t do that without actually talking to each other and coding with each other some of the time.
Rust's async facilities are amazing.
We wrote a custom executor that uses a random number generator to exercise every possible permutation of concurrent logic in tests.
When we find a failure, we fix the seed to trivially reproduce subtle bugs.
Reliability is a key feature.
Tried VS Code again. I wish I liked it more. The ultimate text editor still eludes me. The heartfelt desire to build a another highly complex product with zero revenue potential is feeling like a curse right now.
@bitstein
@NodedPodcast
@pierre_rochard
@BurgerCryptoAM
I really want to hear someone discuss theories about *why* S2F influences price. What is the mechanism of action on a microeconomic level? I have some intuition but can’t find any good analysis about it.
@bitstein
Their arguments always seemed contrary to my intuition and took extreme mental gymnastics to understand. I assumed that was my problem and that economics was really hard. I’m increasingly convinced that it wasn’t just me; that mainstream economic ideas are largely sophistry.
Early GitHub was an amazing and special place to work. Feeling nostalgic for summit dance parties. Code bass and the
@nakajima
pop set in San Diego were epic.
Because the buffer is a CRDT, we can represent the search results as anchors that can be redeemed for the same logical location even if the foreground buffer has been edited in the meantime. This lets us interpolate and highlight existing matches while we re-run the search.
Need advice! What are the best 120Hz (and up) displays for coding (as opposed to gaming). Would love a bright, hi res, 120Hz panel. I wish Apple made one.
I spent ~20,000+ hours programming in Emacs. I finally decided to switch to VSCode. It feels like saying goodbye to an old friend.
It's good to always be evolving, always willing to let go of the comfortable old way to discover a better new way.
Reviewing code live is even better for sharing knowledge. And writing code together live creates a sharded, replicated, fault-tolerant database for knowledge about the codebase stored in the neural tissue of your development team.
Hot take:
Code reviews are awesome but their job is not to say if code is "good enough to pass"
You do them to share knowhow, help the author solve their challenge, give confidence in shipping by being an extra pair of eyes, and catch extreme problems
Rules in thread 👇
When someone tells you not to be anxious about a problem because you’ve always solved problems before… what if the anxiety about a lack of solution contributed to finding one? Probably an unconscious belief.
Hey
@ejpbruel
,
@rikarends
told me about the regex engine you've been working on in Rust. We'd be interested in potentially using it. The `regex` crate requires the search string to be contiguously allocated, but our rope representation makes that's impossible. Very interested.