Nikolai Golub

1.6K posts

Nikolai Golub banner
Nikolai Golub

Nikolai Golub

@citizen_stig

Software Developer, DeFi Curious, Ocasional rustacean, cable manager.

Amsterdam, The Netherlands Katılım Ocak 2009
620 Takip Edilen249 Takipçiler
Nikolai Golub
Nikolai Golub@citizen_stig·
@GergelyOrosz Highly recommend. Alice known not only for her deep technical knowledge, but also for ability to explain things clearly. Which is rare combo.
English
0
0
1
799
Gergely Orosz
Gergely Orosz@GergelyOrosz·
Why is Rust different than many/most programming languages? Alice Ryhl works on Google's Android Rust team, is a Rust language team advisor, and is a core maintainer of Tokio (the most widely-used async runtime in Rust) Timestamps: 00:00 Intro 04:09 Tokio: an overview 05:11 What Alice likes about Rust 12:48 Rust for TypeScript engineers 13:51 Moving from C++ to Rust 14:34 Memory safety 18:12 Garbage collection tradeoffs 21:46 Ownership, references, and borrowing 26:59 Unsafe in Rust 31:21 Crates and Cargo 35:55 Language design and RFCs 43:02 Building new features 46:30 Editions vs. versions 49:47 Getting paid to work on Rust 51:27 Contributing to Rust 53:03 Rust in the Linux kernel 55:45 AI use cases for Rust 1:01:35 Learning Rust 1:03:54 Book recommendation Brought to you by: • @AntithesisHQ – verify your system’s correctness without human review or traditional integration tests – and avoid bugs or outages. antithesis.com/pragmatic@sentry – application monitoring software considered “not bad” by millions of developers sentry.io/pragmatic Three things worth knowing about Rust: 1. Rust was designed to turn implicit failures into compile errors. Where other languages allow you to forget something, Rust makes an omission into a compilation error for things like null checks, uninitialized variables, or error propagation with the ‘?’ character. If you mess something up, it’s almost certain your program will not compile. If it does, at the very least you should see a lint warning. 2. Refactoring in Rust is safe and easy, thanks to the compiler. Alice: “I change a return type or struct field, then just fix the compiler errors until the compiler stops shouting. And then once I’ve done that, I’ve updated every place I need to update.” Rust’s focus on correctness makes refactoring it more straightforward than dynamically-typed languages and Java-style typed ones are to refactor. 3. “Editions” allow Rust to make breaking changes without ‘breaking’ anyone’s code. Rust editions (2015, 2018, 2021, 2024) can be mixed freely across crates. A library on the 2021 edition works seamlessly with a binary on the 2024 edition. This is how Rust evolves syntax (like adding async/await as keywords) without forcing an ecosystem-wide migration. Thanks a lot, Alice for this great discussion! And for your work on Rust.
English
12
77
572
46.5K
Nikolai Golub
Nikolai Golub@citizen_stig·
@GergelyOrosz Do you see same analogy in job creation? I remember when cloud adoption started to rise, "sysadmins are done" take was quite popular. And sysadmins are really gone, but it is so hard to hire DevOps nowadays.
English
1
0
1
251
Gergely Orosz
Gergely Orosz@GergelyOrosz·
And ofc both cloud and AI *are* major innovations; you can build new innovative and profitable businesses purely on the top of them (ones that never existed before - see eg Duck Bill Group optimizing your cloud spend; many similar companies to come for AI); ignoring the technology means falling behind for tech companies for a lot of rational reasons etc
English
6
2
59
13.6K
Gergely Orosz
Gergely Orosz@GergelyOrosz·
So many things about AI infra and AI adoption today reminds me of Cloud adoption in the 2010s. Cloud is assumed to decrease business costs but later can start to actually increase it; has a years-long adoption + integration curve; the biggest winners are closer to the infra than not; it becomes a v large expense at companies to plan + budget for; customers don’t care if a company uses cloud/AI behind the scenes etc
English
51
37
515
44.8K
Nikolai Golub
Nikolai Golub@citizen_stig·
@steipete Dude, I will launch a token and will shill it here, if codex won't get hooks support!
English
0
0
0
7
Nikolai Golub
Nikolai Golub@citizen_stig·
I don't ask much from coding agents. But they must support me pasting "do it" meme with Palpatine, when I confirm the plan. I don't care if it pollutes context. Life consists of these little pleasures.
English
0
0
2
43
Nikolai Golub
Nikolai Golub@citizen_stig·
@fahad19 Same. and I am very picky over UX, but I just carry on with inferior to claude code interface. Often I just discuss spec with codex, and maybe let it complete it, but in some cases, I still delegate completion to claude. But more and more often is ijust all inside codex.
English
1
0
1
63
Fahad Heylaal
Fahad Heylaal@fahad19·
either my specs are so well written, or codex running gpt-5.3 model is really that good, or both.
English
1
0
1
193
Armin Ronacher ⇌
Armin Ronacher ⇌@mitsuhiko·
My escape key stopped working but when I killed the Claude desktop app it started working again. Cannot reproduce after relaunch. What the hell.
English
18
0
72
10.7K
Nikolai Golub
Nikolai Golub@citizen_stig·
@bcherny Hooks are not just customization, but very useful tool to save space in the context
English
0
0
0
250
Boris Cherny
Boris Cherny@bcherny·
9/ Set up hooks Hooks are a way to deterministically hook into Claude's lifecycle. Use them to: - Automatically route permission requests to Slack or Opus - Nudge Claude to keep going when it reaches the end of a turn (you can even kick off an agent or use a prompt to decide whether Claude should keep going) - Pre-process or post-process tool calls, eg. to add your own logging Ask Claude to add a hook to get started. Learn more: code.claude.com/docs/en/hooks
English
9
2
128
29.4K
Boris Cherny
Boris Cherny@bcherny·
Reflecting on what engineers love about Claude Code, one thing that jumps out is its customizability: hooks, plugins, LSPs, MCPs, skills, effort, custom agents, status lines, output styles, etc. Every engineer uses their tools differently. We built Claude Code from the ground up to not just have great defaults, but to also be incredibly customizable. This is a reason why developers fall in love with the product, and why Claude Code's growth continues to accelerate. I wanted to share a few ways we're seeing people and teams customize their Claudes.
English
169
394
4.5K
590.6K
Nikolai Golub
Nikolai Golub@citizen_stig·
@colludingnode @checkmatexxxxxx I don't have an opinion future of celestia. I wonder why becoming an execution chain is better than have a different approach. I don't prefer outsource joy of wasting my money based on someone else's opinion. it looks like you have your frame set here, so I don't expect much.
English
0
0
1
30
勾结节点
勾结节点@colludingnode·
The correct response for chat apps asking for ID is “go fuck yourself”, not “wow zomg a ZK use-case!!!”
English
11
15
138
4.2K
Nikolai Golub
Nikolai Golub@citizen_stig·
As LLMs get more capable, "software development" can start to earn the name "software engineering", if we own the outcomes.
English
0
0
0
59
Nikolai Golub retweetledi
Cem | Sovereign
Cem | Sovereign@cemozer_·
$20B in volume. 100M+ requests. 85 chains. OpenSea, Phantom, MetaMask as customers. Relay is the crosschain payments layer you've been using without knowing it. Now they're building Relay Chain, a dedicated settlement layer for instant crosschain payments, using Sovereign SDK.
Relay@RelayProtocol

Announcing Relay's $17M Series B, led by @archetypevc & @USV. And we're launching the Relay Chain — purpose-built infrastructure for instant crosschain settlement ⛓️ Any asset, any chain, instantly.

English
11
15
91
9K
Nikolai Golub retweetledi
Cem | Sovereign
Cem | Sovereign@cemozer_·
rollup research flourished because Ethereum hoped it would fix scaling after sharded execution was deemed too complex to ship. but after 4+ years building in this space, it’s clear to me: rollups aren’t primarily useful for "scaling" an ecosystem, unless scaling means running identical chains competing for the same use cases. they’re a new primitive for building new blockchains easily and cheaply. spinning up and maintaining a validator set is hard and expensive. if you’re building anything high-performance, each replica has high operational costs. and since it’s likely new software, you’ll need operators willing to deal with ongoing bugs. they’ll demand a premium. all of this costs money and attention. resources startups should be extremely careful with. rollups let you skip the validator set entirely. pay for data as you go. if any party wants full security or transparency on your chain’s operations, they just run a full node pointed at the same DA layer namespace. that’s it. if you’re building a new chain, let’s talk.
vitalik.eth@VitalikButerin

There have recently been some discussions on the ongoing role of L2s in the Ethereum ecosystem, especially in the face of two facts: * L2s' progress to stage 2 (and, secondarily, on interop) has been far slower and more difficult than originally expected * L1 itself is scaling, fees are very low, and gaslimits are projected to increase greatly in 2026 Both of these facts, for their own separate reasons, mean that the original vision of L2s and their role in Ethereum no longer makes sense, and we need a new path. First, let us recap the original vision. Ethereum needs to scale. The definition of "Ethereum scaling" is the existence of large quantities of block space that is backed by the full faith and credit of Ethereum - that is, block space where, if you do things (including with ETH) inside that block space, your activities are guaranteed to be valid, uncensored, unreverted, untouched, as long as Ethereum itself functions. If you create a 10000 TPS EVM where its connection to L1 is mediated by a multisig bridge, then you are not scaling Ethereum. This vision no longer makes sense. L1 does not need L2s to be "branded shards", because L1 is itself scaling. And L2s are not able or willing to satisfy the properties that a true "branded shard" would require. I've even seen at least one explicitly saying that they may never want to go beyond stage 1, not just for technical reasons around ZK-EVM safety, but also because their customers' regulatory needs require them to have ultimate control. This may be doing the right thing for your customers. But it should be obvious that if you are doing this, then you are not "scaling Ethereum" in the sense meant by the rollup-centric roadmap. But that's fine! it's fine because Ethereum itself is now scaling directly on L1, with large planned increases to its gas limit this year and the years ahead. We should stop thinking about L2s as literally being "branded shards" of Ethereum, with the social status and responsibilities that this entails. Instead, we can think of L2s as being a full spectrum, which includes both chains backed by the full faith and credit of Ethereum with various unique properties (eg. not just EVM), as well as a whole array of options at different levels of connection to Ethereum, that each person (or bot) is free to care about or not care about depending on their needs. What would I do today if I were an L2? * Identify a value add other than "scaling". Examples: (i) non-EVM specialized features/VMs around privacy, (ii) efficiency specialized around a particular application, (iii) truly extreme levels of scaling that even a greatly expanded L1 will not do, (iv) a totally different design for non-financial applications, eg. social, identity, AI, (v) ultra-low-latency and other sequencing properties, (vi) maybe built-in oracles or decentralized dispute resolution or other "non-computationally-verifiable" features * Be stage 1 at the minimum (otherwise you really are just a separate L1 with a bridge, and you should just call yourself that) if you're doing things with ETH or other ethereum-issued assets * Support maximum interoperability with Ethereum, though this will differ for each one (eg. what if you're not EVM, or even not financial?) From Ethereum's side, over the past few months I've become more convinced of the value of the native rollup precompile, particuarly once we have enshrined ZK-EVM proofs that we need anyway to scale L1. This is a precompile that verifies a ZK-EVM proof, and it's "part of Ethereum", so (i) it auto-upgrades along with Ethereum, and (ii) if the precompile has a bug, Ethereum will hard-fork to fix the bug. The native rollup precompile would make full, security-council-free, EVM verification accessible. We should spend much more time working out how to design it in such a way that if your L2 is "EVM plus other stuff", then the native rollup precompile would verify the EVM, and you only have to bring your own prover for the "other stuff" (eg. Stylus). This might involve a canonical way of exposing a lookup table between contract call inputs and outputs, and letting you provide your own values to the lookup table (that you would prove separately). This would make it easy to have safe, strong, trustless interoperability with Ethereum. It also enables synchronous composability (see: ethresear.ch/t/combining-pr… and ethresear.ch/t/synchronous-… ). And from there, it's each L2's choice exactly what they want to build. Don't just "extend L1", figure out something new to add. This of course means that some will add things that are trust-dependent, or backdoored, or otherwise insecure; this is unavoidable in a permissionless ecosystem where developers have freedom. Our job should make to make it clear to users what guarantees they have, and to build up the strongest Ethereum that we can.

English
8
17
95
27.3K
Péter Szilágyi
Péter Szilágyi@peter_szilagyi·
Tonight I benchmarked some #Rust tokio framing mechanism. The encoder was allocating like crazy. Nerd sniped till 2:30AM, but hey... :) No, I didn't fix tokio, I just dropped it and reimplemented the framing code myself.
Péter Szilágyi tweet mediaPéter Szilágyi tweet media
English
8
3
188
13.3K
Nikolai Golub
Nikolai Golub@citizen_stig·
@eurofounder > Date joined: October 2025 > Account based in Poland Ok sir, I trust you more than my own eyes!
English
0
0
0
16
Matthias Schmidt
Matthias Schmidt@eurofounder·
My friend is the highest paid developer in Amsterdam Makes an eye-watering €57,000 a year After taxes nearly €23,000 We were at the bar and the American guy sitting next to us spit out his beer when he heard this “That’s a 50% tax rate!” he loudly screamed “Actually 56% with social contributions,” my proud Dutch friend corrected him “Plus 21% VAT on everything I buy” “Bro you guys are really poor in Europe lol” Me and my friend look at each other in disbelief First of all, €57,000 is an extremely high salary for an engineer in Netherlands Second, little does that barbaric yankee know, my friend just got promoted to the CTO His new salary? €61,000 How is that for "really poor"? This is what sustainable tech wages look like​​​​​​​​​​​​​​​​ I hope my startup will continue to grow so I can pay my engineers such high salaries as well
English
872
143
3.9K
630.6K
Nikolai Golub
Nikolai Golub@citizen_stig·
@joseph_h_garvin Unwrapping lock, means it is poisoned, means that another thread already panicked. But who cares
English
0
0
0
39
Joseph Garvin
Joseph Garvin@joseph_h_garvin·
The problem with this is in practice pretty much all prod Rust code contains a significant amount of unwrap because extremely frequently you know an unwrap can't fail but the compiler doesn't. Grep most popular crates for unwrap and you'll find it.
Joseph Garvin tweet mediaJoseph Garvin tweet mediaJoseph Garvin tweet media
English
47
13
640
94.1K
Marco Gomez
Marco Gomez@TheCodeTherapy·
Rust fans: "The world MUST use Rust cause it's memory safe" ~shit goes wrong with Rust code~ Rust fans: "Bad code. Skill issue. It's down to the dev" Motherfucker if it's down to the dev, stop trying to force this shit everywhere, and let people use whatever the fuck they want
English
174
178
2.6K
93.1K
Armin Ronacher ⇌
Armin Ronacher ⇌@mitsuhiko·
I really want to know where all the irrational hate towards Rust or Rust developers on Twitter is coming from.
English
163
16
363
97.7K
Nikolai Golub
Nikolai Golub@citizen_stig·
@Tristan0x Too big to fail must go in TradFi. Or at least to be called for what it is: "Tax payers bail out people with connections"
English
1
0
1
82
Tristan
Tristan@Tristan0x·
Many things intentionally misleading/dramatic with this post. Here’s what OP doesn’t fully understand about running a perps exchange: 1. Users Are Only Solvent If The Protocol Is Solvent OP frames "protecting the protocol vs. protecting traders" as two objectives at odds with one another. But perps are zero sum games, and unlike spot, due to the existence of leverage, your system can go bankrupt. Liquidations and ADL are the current best mechanism we have to mathematically guarantee solvency, and by extension protect the userbase as a whole. Once your insurance fund is depleted, without ADL, your options are largely: 1. Protocol goes insolvent (more losses than collateral on the exchange). Everyone takes a huge haircut (hello Drift V1 users). 2. Protocol covers losses with treasury, creating an FTX-FTT death spiral where protocol tokens are dumped to cover debts (imagine if we had an additional HYPE selling cascade) 3. Underwater accounts are systematically de-risked by reducing profitable positions of their counterparties. Protocol stays operational and funds can be withdrawn. Your unrealized PnL is not real money until it can be withdrawn (hence unrealized). Traders who were smart settled and withdrew millions on their Luna shorts on Drift V1, leaving the rest of the userbase looking at their imaginary UPnL on their screen. This rush for the exits resulted over 60% of Drift’s TVL leaving within the first 12 hours. Timely liquidations and ADL would have flattened those underwater longs well ahead of time and prevented mass insolvency, even being flagged in their own post-mortem. 2. Disabling Liquidations: The Thanksgiving Turkey Halt liquidations if “the oracle price diverges by more than 50% from the 5-minute TWAP?” This is all well and good in the 99% of times that prices mean revert, but what about the 1% in which they don’t? Turns out this already happened, and yes again in Drift V1 (PnL chart attached above). During the Luna collapse in May 2022, the price off LUNA crashed from $63 on May 9th to around $8-10 on May 11th by the time Drift paused trading (a roughly 85% drop). By the time they had force settled all markets ("terminal settlement") on May 12th, Luna had fallen another 96% to $0.0003. In the end, traders lost around $20m (that we know of). Don't get me wrong, while I am in favour of avoiding scam wicks from short term, artificial price manipulation with circuit breakers, you run the risk of assuming that every asset will eventually bounce. As @shuri2060_defi correctly notes: "you are potentially delaying the inevitable and essentially leveraging the entire exchange praying the price bounces back. Yes it protects against temporary price movements/manipulations, but it undermines the entire point of a liquidation system which is to keep the exchange solvent." Or as @richard_isc puts it more bluntly: "Not having ADL isn't a feature. There are price changes where there is no counterparty big enough to take on the position. Not force closing the position is gambling with everyone's money, betting it all that price will revert. Good for flash crash, death in actual crash." OP will no doubt argue that it succeeded to remain solvent, but failed to protect from a retraced wick. The crux of the problem is that Binance made a gross error in their mark pricing, relying too much on their local orderbooks and not the market at large. @HyperliquidX acted swiftly and decisively to mitigate further damage to their platform. This is the first time ADL has been triggered in 2 years of operation, a <1% occurrence, not unlike our turkey friend, however Hyperliquid remains alive and well today. In the heat of the moment who can say if it’s a temporary blip, or the next Luna? One thing is clear, that mark prices need to rely on a diverse pricing index (which HL already had) and the industry needs to mature to a place where it isn’t majorly reliant on a single exchange like Binance for liquidity measures. 3. No Obligation To Protect Extreme Risk-takers Let's be very direct here: If you're using high leverage going into events like October 10's tariff announcement, you're effectively gambling, not trading. 87% of the $19 billion liquidated came from long positions at approximately a 7:1 ratio of longs to shorts, the market was full of dry powder due to excessive leverage. The exchange tells you your entry price, liquidation price, margin requirements, and possible ADL queue position. If you lever up 20x, you're explicitly accepting that a 5% adverse move wipes you out. OP was clearly running back his own James Wynn playbook and taking outsized and highly leveraged positions on SOL and other coins, and complaining when he got blown out. x.com/ThinkingUSD/st… He references "lives ended" and "families destroyed". I have sympathy for them, but anyone exercising proper risk management wouldn’t have put themselves in such a risky position in the first place. Blaming liquidations for over-leveraged losses is like blaming seatbelts for car accident injuries. All long-term successful traders use leverage sparingly. 4. How TradFi Actually Works (And Why Crypto Can't Copy It) OP states "TradFi has structural guardrails. Crypto has hope." Let's talk about what TradFi actually has. When a CME clearing member defaults, after exhausting the defaulter's capital and CME's own $100-150M contribution, losses are covered by the guaranty fund - the mutualized resources of non-defaulting clearing members (i.e. loss is socialized amongst solvent parties). cmegroup.com/clearing/files… Furthermore, they have the added benefits of: 1. Known, Vetted Counterparties: In traditional finance, clearinghouses only work with large, regulated institutions like banks and trading firms. They know who these members are, verify they have enough capital, and can sue them if they don't pay up. In crypto, you cannot assess creditworthiness or collect capital from pseudonymous wallets. 2. Multi-Day Settlement: CME provides 24 hours' notice for margin changes. Equity markets allow up to seven business days for maintenance margin payments. Crypto operates 24/7 with millisecond timeframe liquidations. 3. Legal Enforcement: Losses remain legal obligations. Clearinghouses pursue recovery through bankruptcy proceedings. You can't sue a crypto wallet. 4. Regulatory Backstops: Central bank access, government oversight, implicit "too big to fail" guarantees. Crypto has none of these safety nets (perhaps one day). However DeFi must deal with risk systematically. In a permissionless system where you cannot verify counterparties, enforce capital calls, pursue legal recovery, prevent capital flight, or access regulatory backstops, you must have real-time, automatic loss allocation that doesn't depend purely on external capital. Furthermore, we’re dealing with a far more volatile assets class, and many platforms extending orders of magnitude more leverage. This is why liquidations and ADL are a necessary evil. It's not a design flaw, and Jeff and many others before him are not bad actors or idiots. It's an invariant, a mathematical solution to operating derivatives in the absence of TradFi's institutional infrastructure. All in all, my point stands that permissionless protocols should be designed to prioritize solvency and stay alive at all costs, which in the long run is in the best interests of its users. This is the reason why DeFi lending protocols survived during the FTX meltdown by acting out their strict liquidation rules, while centralized lenders who relied on trust and de-risked either too slowly or not at all, went under. Warehousing that risk on behalf of users is potentially gambling with their money if shit hits the fan. It's happened many times, and it will happen again. To that end, we will be doing a lot more research into better risk mitigation designs in the coming weeks and months, it's a very hard problem. I'm personally very glad things like this are being discussed publicly and looking forward to see what teams come up with. P.S. Not unlikely that OP had financial motives to tweet given he's been posting Drift referral links. Always take these "KOLs" with a grain of salt and DYOR.
Tristan tweet media
The White Whale@WhiteWhaleLabs

A Difficult Personal Decision I’ve made the personal decision to step away from trading on HyperLiquid. And I want to stress that word - personal (and difficult). I’m not asking anyone to follow me. I’m simply acting in alignment with where my values have moved. Most of you have watched my thinking evolve over time. That’s what we’re supposed to do as human beings: evolve, refine, shed old frameworks, and build better ones. And look - I know you’re not supposed to develop an emotional attachment to a protocol, but HyperLiquid was different for me. Jeff built something the market desperately needed. He dragged structural fairness into the spotlight and paved the way for a better conversation. He and the HL team deserve their chapter in crypto’s history books. I personally hope they continue to write new ones. But if you’ve followed me for any length of time, you also know I’m an idealist - maybe to a fault - and I can’t turn off the portion of my brain that not only can see things as they currently are but continues to believe in what they should be. 10/10 ripped the mask off the industry for the new folks. Or for those who’ve been around long enough, it simply reminded us how fragile and easily manipulated this ecosystem still is. The fact that one centralized exchange can trigger a global liquidation cascade and force temporary price dislocations across every protocol? That’s not a “black swan.” That’s a design flaw. Here’s a short recap: Binance relied on its own oracle - which depegged a stablecoin. That started a smaller, but manageable, liquidation chain. The real chaos began when their API mysteriously went offline. Market makers, who operate largely delta-neutral, suddenly couldn’t hedge on their primary venue. With hedging impossible, they pulled quotes across CEXs and DEXs. With no liquidity present, price falls off a cliff. And across the industry? Victory laps. “Zero bad debt!” “Liquidations processed flawlessly!” Great. The protocol didn’t die. But users did. Protecting the protocol IS important - obviously. But it is not the same thing as protecting traders. If we want broader adoption, if we want legitimacy, if we want crypto to grow without getting handcuffed by regulators, we have to start building real consumer protection into our systems. TradFi has circuit breakers, obligations for MMs, structural guardrails. Crypto has...hope. And an instruction manual that says, “Good luck out there!” So why am I leaving HyperLiquid? Because I choose to back teams who are actively trying to solve these design flaws, not merely observe them. I’ve spoken with Jeff and another member of the Core 11. They don’t appear to see this as part of the roadmap right now. That’s their choice and I respect it. And to be clear - nobody has a perfect fix. There is no silver bullet. What matters to me is who’s walking toward solutions rather than ignoring the problem. We lost people on 10/10. Real lives were ended. Real families were destroyed. Over...a design flaw allowing one entity to control the world? Crypto doesn’t get to just sweep that under the rug. So the question becomes: Who’s actually building protections that might prevent the next Binance-induced disaster? On Solana, I’ve only found one. Drift’s liquidation protection isn’t magic. It’s not flawless. But it exists - and more importantly, it worked. It checks: “Is the oracle price diverging by more than 50% from the 5-minute TWAP?” If yes it simply puts a temporary halt on liquidations. That single line of logic saved a lot of people. Scam wicks get filtered. The insurance fund catches the edge cases. It’s not some grand philosophical overhaul - it’s simply a meaningful step toward sanity. I’m not as brilliant as Jeff. I don’t pretend to know the best way to solve this at scale. But I am a customer - and customers vote with their dollars. The industry keeps repeating, “Protecting the protocol is protecting the trader.” But that’s not the full picture. A car isn’t complete without a driver. Both are equally important to the beautiful symbiosis that exists. This is a heartbreaking post to write. This isn’t a Drift advertisement. It feels more like a gut-wrenching breakup with a first love - not because the love disappeared, but because you finally recognize that you’re growing in different directions. HL will always be a part of my story. It’ll stay on my shortlist whenever people ask where to trade. But it’s time for me to move forward - toward my values, toward my ideals - and to say to Jeff and the team, with real appreciation: we’ll always have Paris. 🫡 From the depths — The White Whale 🐋

English
28
24
197
35.5K