šŸ’¾ Archived View for dioskouroi.xyz ā€ŗ thread ā€ŗ 25003574 captured on 2020-11-07 at 00:50:25. Gemini links have been rewritten to link to archived content

View Raw

More Information

-=-=-=-=-=-=-

Tobias Lutke still writes code for Shopify

Author: jerodsanto

Score: 122

Comments: 75

Date: 2020-11-06 00:17:30

Web Link

________________________________________________________________________________

verisimilitude wrote at 2020-11-06 01:29:33:

I can't think of a better way to actually maintain a clear understanding of what's going on at a place like Shopify.

Good memory: Lutke's blog is responsible for a lightbulb moment of mine back in 2007, regarding cache invalidation. The post is long gone, but it was entitled "The Secret to memcached" -- the advice, which is incredibly obvious in retrospect but wasn't to me at the time, is to manage cache invalidation by adding a unique ID to the cached asset, and letting the cache fill and expire items on its own. Going into it, I had assumed I should be removing cached items in the code that was utilizing the cache. I was ignorant. I still am, but less so about memcached. Thanks, Tobias!

throw0101a wrote at 2020-11-06 03:19:25:

> _The post is long gone, but it was entitled "The Secret to memcached"_

The Internet (Archive) remembers:

*

https://web.archive.org/web/20120125060458/http://blog.leets...

craz8 wrote at 2020-11-06 02:00:29:

This technique is the way Rails Fragment Caching works, and enables Russian Doll caching

Those terms should help you find more writing about this technique that I always forget isnā€™t obvious outside the Rails ecosystem

mmahemoff wrote at 2020-11-06 03:35:39:

DHH helped to popularise it with this post:

https://signalvnoise.com/posts/3113-how-key-based-cache-expi...

It's been hugely influential to the way I think about scaleable pages. It's a similar idea to the cache-busting techniques well-known with URLs (

https://example.com?style.css=1234

etc), but applied to page fragments recursively, where a change in any component also "revs"/"bumps" its parent components.

arcticbull wrote at 2020-11-06 07:07:35:

I disagree completely.

Once you're in a management role, let alone a CEO role, your job not to write software. You defer defer implementation and architecture completely to your team. Your job is to hire and build that team and set high-level company direction.

The more power you have over your co-implementors' careers -- and the more junior they are -- the less comfortable they are standing up to your architectural or technical decisions. This stifling of collaboration can cause you to make poor decisions you wouldn't otherwise, and creates an uncomfortable dynamic.

This is why I don't believe in TLM ("tech lead manager") roles, also, fwiw.

Wanna code? Do it on your own time, Tobi! :)

_the_inflator wrote at 2020-11-06 09:27:28:

You got the point provided that you are concerned about code quality. This might be an area where a CTO lacks skills over time compared to his developers.

Becoming a CTO myself within an 80 developers area, I found it invaluable to code infrequently still. It is quite simple: better decisions, better products.

To me, non-coding CTOs or most CEOs that do not understand Computer Science, it seems that they try to learn a foreign language by sending in their assistant to attend classes.

I mean this quite literally. My team can communicate to me in other terms and a different language than they would have in a simplified ELI5/KPI driven manner. And vice versa, I challenge them to think beyond day to day business.

It is not a lack of trust. It is about better understanding and better helping your team focus on the essential parts. And vice versa.

dmarlow wrote at 2020-11-06 07:51:51:

Generally true, but not always true. Shopify seem to be doing just fine with this model. If things change, maybe this model will also change.

bertr4nd wrote at 2020-11-06 07:42:37:

Iā€™ve only once worked under a manager who also coded, and I had extremely mixed feelings. On the one hand, he was a brilliant engineer who I learned a ton from, and who set a really solid technical direction for the team.

On the other hand, I was personally unhappy a lot of the time. On one occasion he pretty much tore apart one of my designs and I felt fairly humiliated (with reason, as a few other senior engineers confirmed in private conversations).

Did my design deserve to die horribly? I donā€™t know. The PR had already been accepted, but maybe the accepter was wrong. In any case it felt really crappy to be criticized so heavily by someone who in theory supports me.

arpa wrote at 2020-11-06 08:45:46:

You know, it's easy to be an asshole when you're brilliant. But that's why soft skills are important, especially in leadership roles.

I tried my best to be a supporting lead, everywhere i was in that role. I believe in leading by example, but i recognize the necessity to _let_ people do things themselves and not just hog power because "i know best". Let people implement imperfect designs. They'll own it, learn, and fix them in time. Your job is to lead, to give direction and not let total crap be put into prod, not keep people under your "benevolent dictator" heel.

jeromenerf wrote at 2020-11-06 10:32:36:

I tend to disagree with the "live and let die" approach.

Delegating responsibilities isnā€™t abandoning responsibilities and when deviation happens, getting hands dirty is good stewardship to me.

The main factor to me is the team size and subsequently the organization of said responsibilities delegation.

My personal context sweet spot is around a 50 persons team.

arpa wrote at 2020-11-06 14:53:05:

50 persons is a small organization, not a team!!

I agree about responsibilities part, however, if you don't let your people grow by simply vetoing the ideas, they won't grow. Discussing and openness to your subordinates' ideas is not a bad thing in my opinion. Letting people make proof-of-concepts and fail is not abandonment of responsibilities. Letting people implement their bad ideas in production is.

jeromenerf wrote at 2020-11-06 17:58:23:

> 50 persons is a small organization, not a team!!

Well, I refer to the whole company as a team. This may be my SME bias :)

arpa wrote at 2020-11-06 18:09:14:

That's a sign of a good CxO, IMHO - thinking of the whole org as a team. Respect :)

ritchiea wrote at 2020-11-06 11:05:05:

There's also good and bad ways to give feedback. It's important to find ways to give honest feedback that isn't crushing your reports's confidence. It's more of a question of when to step in with an important critique that whether to at all. There are some pieces of code and systems that aren't critical enough or won't be stressed by a junior learning through a bad design decision. And critical system where you absolutely have to step in and make sure everything is in the best shape possible.

ragebol wrote at 2020-11-06 07:35:30:

As CEO or CTO, it;'s crucial you understand your business and if you're in a tech business, you better understand the tech to an appropriate level too. Coding can be a part of that

tgv wrote at 2020-11-06 12:35:20:

I believe in dog-fooding, using your own products. That holds for programmers and UI designer, who should use the software they build, but also for architects and CTOs: they should experience the effect of their decisions, and taking part in the design and coding can help.

christocracy wrote at 2020-11-06 02:24:53:

Heā€™s great. I used his Money (for managing money values as cents in the db), Liquid and DelayedJob in a bunch of projects.

Now I run my own Shopify store, selling my software.

dmarlow wrote at 2020-11-06 01:38:29:

Thanks for sharing this. I've used this (I call it a cache buster) for static assets in a CDN, but never considered it for other things. I'd love to read the article if it can be dug up. It's not clear how that unique ID is managed and am curious to learn more.

ashtonkem wrote at 2020-11-06 06:04:33:

You can often go further than that with some database trickery.

We once needed to cache a list of objects that was unacceptably slow serialize the JSON for. We needed to cache them in memcache, but also needed reliable cache invalidation without having to instrument every ingestion point with the logic. Here's what we ended up doing.

1. Every record gets an int field titled "index" or similar.

2. Every time a record is inserted or updated, index is changed to the next value from a sequence

3. The cache key for memcache includes the number of records and the _maximum_ index from all the records returned (including any intermediate objects if joins are involved)

4. Infinite TTL for all cache keys, but the entire cache is LRU guaranteeing that stale records are eventually removed.

This setup works because any conceivable operation done would change the cache key. If new records are inserted or deleted, count and index change. If a record is updated, then the max index changes. Even deleting and adding a new record will change the index, meaning that no matter what happens you'll get a new key and the system will continue to cache appropriately.

indysigners wrote at 2020-11-06 08:11:45:

From inside of Shopify Iā€™ve heard about a lot of shit stories. For their employees, it may be less ideal to have a CEO messing around with code.

From the outside though, the company does extremely well.

Nonetheless, CEOs are generally not supposed to ā€žmakeā€œ but to manage. There has to be a tradeoff somehow.

ehnto wrote at 2020-11-06 03:52:23:

We call them cache keys. We use a hash of entirely arbitrary data you want a cache item to invalidate on when that data changes.

For example, a cached snippet of HTML for a related products section should invalidate if the product IDs change, so you hash the Item ID with the product IDs and bam, you got a cache key that will let you know when you need to reprocess that snippet.

Put that bad boy as a child of another snippet and you can cache the whole lot. It's cache keys all the way down!

Caveat: not worth the engineering effort for simple systems, just use an FPC and call it a day.

reidjs wrote at 2020-11-06 04:43:02:

FPC: Full Page Cache

ehnto wrote at 2020-11-07 04:12:32:

Yep, sorry I should have expanded that.

embit wrote at 2020-11-06 02:16:23:

I think he was an active contributor to RoR in those days

AVTizzle wrote at 2020-11-06 02:32:56:

>> I can't think of a better way to actually maintain a clear understanding of what's going on at a place like Shopify.

Talking to customers would be one better way to maintain said clear understanding.

Running your own Shopify store (which Tobias also does) could potentially be another.

melvinram wrote at 2020-11-06 08:09:29:

There are numerous comments that essentially are saying "he shouldn't be doing this." That's shortsighted. You don't have insights into how this is working in practice for them. He, together with the other people at the company, have built an offering that is serving and satisfying millions of people. If there are problems with it, they are his problems to deal with. Why are you so hot and bothered about it? Focus on building your own cool shit. Be productive.

camillomiller wrote at 2020-11-06 08:26:52:

Maybe because Spotify is a predatory service that pays artists peanuts for the very content he built this service on. But yeah, millions of people find this useful, so I guess we shall all just unanimously hail another late stage capitalism success story.

Edit: Iā€˜m a sleep deprived idiot, read below.

tazjin wrote at 2020-11-06 12:25:55:

Ignoring that your comment is about the wrong company, I'd also like to point out that in the music world Spotify is just a convenient scapegoat (as a consumer-facing brand) for practices that are actually the fault of record labels.

Spotify pays out most of its income (iirc around 70%) to labels, but it's up to the contracts between the labels and artists how much money ends up being paid out. Spotify is out of the loop at this point.

acidbaseextract wrote at 2020-11-06 08:27:13:

Spotify != Shopify

camillomiller wrote at 2020-11-06 08:29:32:

Fu*k ME, sorry.

Three days of little sleep and too much internet.

Iā€™m definitely taking a break for the weekend.

Sorry again. Iā€™m not deleting my comment, needs to stay as a moniker and demand everyoneā€™s forgiveness.

glaberficken wrote at 2020-11-06 10:33:18:

Don't worry I read "Spotify" too :P

It was only your comment that made me realize it was Shopify.

Maybe this should become a case study in startup naming? (probably already is! too lazy to look it up right now)

bryanrasmussen wrote at 2020-11-06 11:06:17:

The business plan of my new startup Dopify is to help other startups not make silly naming decisions - but we might pivot to selling dope later if it doesn't work out.

glaberficken wrote at 2020-11-06 16:09:12:

I'm such a sucker, I actually googled it before I got the joke lol

bryanrasmussen wrote at 2020-11-06 17:38:52:

I would have gone with "I'm such a dope!"

nackerhewz wrote at 2020-11-06 09:04:05:

I had a really good laugh, don't delete it! :)

athms wrote at 2020-11-06 15:13:48:

Well, Shopify is still a crappy service. They refuse to do business with merchants engaged in legal trade if they sell items Shopify doesn't like. Knives are out, so are facial skin masks, and you better put down that tube of whitening toothpaste. Of course, if you are a whale like Target, Shopify has no problem with those prohibited items.

orsenthil wrote at 2020-11-06 03:48:34:

For folks who don't know, Tobias Lutke is a CEO of Shopify.

https://en.wikipedia.org/wiki/Tobias_L%C3%BCtke

BTW, I am not surprised. A technical, programmer, CEO can always write code. Nothing wrong with that. It's just like an exercise. It is amazing that is able to do that.

joeleet wrote at 2020-11-06 04:06:18:

Heā€™s also a self-proclaimed StarCraft 2 fan. Heā€™s donated cash to tournament prize pools and recently hired beloved former pro TLO of Team Liquid to Shopify.

https://esportsobserver.com/dario-wunsch-joins-shopify/

ignoramous wrote at 2020-11-06 05:53:39:

He's also a lurker on news.yc:

https://news.ycombinator.com/threads?id=xal

schoen wrote at 2020-11-06 06:10:33:

As he has hundreds of posts (some of them about Shopify) and almost 4,000 karma, I'm not sure you can really call him a lurker!

saagarjha wrote at 2020-11-06 06:42:14:

Certainly not the only billionaire CEO who roams these forums.

generalk wrote at 2020-11-06 12:59:43:

I initially had that "oh no, CEOs shouldn't be coding" response too. For anyone who didn't read the transcribed segment of a podcast linked:

> we started to see performance slowly degrading in terms 
  > of response times on the server, and eventually we kind 
  > of had to do something about it [...] Interesting story - 
  > the initial commits for that applications were Tobi 
  > himself

This doesn't sound like a CEO/founder who's unable to give up control of the software and is still inserting himself into the process unnecessarily. Many of us have been in that spot and, yeah, that doesn't work too well.

This sounds entirely like a founder who still solves problems with code, but then stands back and lets his company form a team around it if it's valuable.

No inside knowledge or anything, this just doesn't sound...bad.

drchiu wrote at 2020-11-06 01:46:30:

Iā€™ve never met him, but having read his blog (before he took it down around the time Shopify IPOā€™ed) and his work in libraries like Liquid, Rails, and others, heā€™s an engineer/programmer at heart. Nice to see heā€™s able to hold onto some of that even after the journey his company has been through these 14-15 years.

baxtr wrote at 2020-11-06 05:38:48:

Playing the devilā€™s advocate here: he surely doesnā€™t need to do this. I assume there are enough great devs at Shopify. So why does he do it? Because itā€™s fun? Because he can relax? Maybe his time as CEO would be better spent not coding?

sharkweek wrote at 2020-11-06 05:43:19:

I worked at a SaaS company where the founder CEO had a sales background. He'd hop into the inside sales (read: smile and dial) team desk once a quarter or so and practice pitching cold-to-warm-ish leads over the phone.

It was super motivating for the reps, mostly junior in that role, to see their CEO doing it and remaining empathetic to what they're facing every day.

Not sure if that's like... the best reason in the world when he could be doing other more important things, but it was definitely a morale booster for the company to see him in the pit once in a while.

BenGosub wrote at 2020-11-06 10:52:14:

Recently I've heard this episode where the Shopify developer casually mentions the fact that their CEO Tobin Lutke has made some commits to their code. In my opinion they mention this in order to show that Shopify is not your ordinary top-down corporate environment.

It's also good PR. That's why it's also mentioned by FB employees that Mark Zuckerberg has also made some commits to the their codebase.

BTW I

ramraj07 wrote at 2020-11-06 07:05:41:

What better way to keep tabs on the state of the engineering fundamentals than actually try to write code?

_alex_ wrote at 2020-11-06 14:16:26:

post title is SUPER misleading. Here's the only paragraph in the transcript that mentions Tobias:

Interesting story - the initial commits for that applications were Tobi himself, who took it upon himself to start something, and as a prototype gets something up and running and make it as lean as possible to get started. And then eventually, that became a team, and we picked it up, and that became the project that weā€™re working on.

The Founder-CEO is in the commit history. Duh. So what? That doesn't mean he's writing code right now.

jes5199 wrote at 2020-11-06 07:31:26:

I donā€™t know about Shopify specifically, but in general I think this is a red flag. Are you going to be able to leave honest feedback on your CEOā€™s PR? can your CEO run a company and also continue to keep up with best practices for your language/tooling? Will your CEO go along with code style consensus, when he/she hasnā€™t had time to participate in any of the conversations?

naskwo wrote at 2020-11-06 07:36:01:

Check out "No Rules Rules" by Reed Hastings and Erin Meyer. If you can't leave (constructive) feedback/criticism to your CEO, you're working at a sick company.

cocochanel wrote at 2020-11-06 07:45:53:

Yes, a high school intern did that actually -

https://news.ycombinator.com/item?id=20490964

intellirogue wrote at 2020-11-06 10:31:11:

Have worked in a couple of jobs where the CEO or CTO still raised PRs, and they were really treated no differently. There was definitely a lot of code style changes requested, because as you say that knowledge might be out-of-date.

I suspect it might be cultural - I've definitely got the impression that in some countries CEOs see themselves as "gods" who should not be questioned by the minions.

rubyfan wrote at 2020-11-06 06:18:27:

Guy Raz interviewed him on How I Built This last year, great listen

https://www.npr.org/2019/08/02/747660923/shopify-tobias-l-tk...

gregors wrote at 2020-11-06 04:25:10:

He also gave a talk a long time ago I really liked. Seems the actual video is gone now. :(

https://www.infoq.com/presentations/lutke-rockstar-memcachin...

ajharrison wrote at 2020-11-06 01:40:51:

How is this a good thing?

All it shows is complete lack of trust and complete desire for control.

Shopify is an awful company to work for unless youā€™re a junior dev who likes nerding out and refactoring code over and over again.

Source: worked there

fao_ wrote at 2020-11-06 03:07:35:

While you were downvoted for being negative about this and your style of message, I think there is a kernel of truth, and I don't think we should be so eager to dismiss the experiences of people who have actually worked at a place, versus what is essentially a form of PR for the company.

jseliger wrote at 2020-11-06 03:12:39:

I suspect the problem is the lack of specificity: it's hard to judge from the comment whether there are likely to be legitimate grievances or not.

fao_ wrote at 2020-11-06 03:13:44:

Indeed, reading their post history shows this, however:

https://news.ycombinator.com/item?id=24878130

ngokevin wrote at 2020-11-06 04:04:26:

Sorta fits inline with the fact that the CEO still spends time writing code (half-joke)

tlear wrote at 2020-11-06 16:01:53:

Interesting perspective, I have talked to two very seniors engineers there who love the place(one worked there 7 years, other I am not sure). One of the things they like(and I would agree) is that Shopify does rewrite old stuff when they move to something new, so there are no leftover unmaintainable untouchable .

BTW what it shows is that, he loves to code. He already built an incredibly successful company. Whatever is that he does works. I love writing code too been doing it since I was 14. One of the reason I do not want to move to Engineering Management is the expectation of abandoning it.

dna_polymerase wrote at 2020-11-06 08:41:24:

Mark Zuckerberg once said that he does not write code anymore because they have a rule at Facebook, that says if you write the code, you have to maintain the code. I think that's a rational choice for a company of that size. Thus I'm not convinced Lutke's ongoing coding is that clever.

thinkingkong wrote at 2020-11-06 02:39:41:

This is such an interesting perspective. 99% of engineering managers dont or cannot write software any more usually as a rule.

ngokevin wrote at 2020-11-06 04:02:43:

"shouldn't" is also debatable to include, because managing itself is a full-time job

nogabebop23 wrote at 2020-11-06 03:15:11:

He's not exactly an engineering manager, but he's definitely part of that 1% who don't meet your rule, so it actually fits within the standard perspective.

tinyhouse wrote at 2020-11-06 03:20:23:

Well, it doesn't matter if they can or cannot. It's not their job to write code. Unless it's a very small team.

cortesoft wrote at 2020-11-06 04:40:10:

Where do you get the 99% number from?

trustfundbaby wrote at 2020-11-06 07:55:55:

Thin air. This is the internet after all.

rmk wrote at 2020-11-06 02:56:35:

For a moment I confused this gentleman's name with that of the character in Arrested Development (the "never nude" Tobias FĆ¼nke?)

But why or how on Earth would a person like Tobias Lutke find the time to do this? Are there other people who run multibillion dollar public companies who poke around in the codebase?

mmahemoff wrote at 2020-11-06 03:28:06:

Bill Gates was famously coding as a public company CEO and revising a lot of code he was unsatisfied with. I recall rumours he was politely urged to stop it.

"Ultimately he had to force himself to stop revising and perfecting his peersā€™ work. ā€œI had to say to myself, ā€˜Ok, weā€™re going to ship code that I didnā€™t edit,ā€™ā€ he said. ā€œAnd that was hard for me, but I kinda got over that.ā€"

https://www.cnbc.com/2018/05/10/bill-gates-quit-this-bad-hab...

One source suggests he last created production code in 1989, three years after MS went public (

https://www.quora.com/When-did-Bill-Gates-last-write-code-fo...

.)

rmk wrote at 2020-11-06 03:39:36:

To be honest, creating an Operating System, the ecosystem surrounding it, etc. is technologically much more complicated than a lot of the stuff that web-based companies are doing nowadays. Besides, Microsoft was definitely a much more technical company that sold a purely technical product, so it is not entirely inconceivable that founders were deeply technical in a way that today's founders aren't.

I also imagine that there was much less 'adult supervision' of Microsoft. They probably did not take (any?) VC money, did they?

The scene today is very different, so I wonder how such a thing happens in modern-day startups. As an investor, I would be alarmed at such egregious misallocation of valuable founder/C-suite time and brainpower.

EDIT: I have read many an anecdote (from Joel Spolsky, for example), wherein Bill Gates was said to have pored over the minutest specification in documents spanning hundreds of pages and understood all the subtlety involved. Once again, how on Earth did Bill find the time?

schoen wrote at 2020-11-06 06:14:09:

I heard an anecdote where he received a technical briefing from a security team about a product in about 2003 and asked them meaningful, challenging technical questions in reply.

rock_hard wrote at 2020-11-06 03:01:56:

Zuck shipped code all the way until 2010 I heard

ajfjrbfbf wrote at 2020-11-06 03:11:45:

He said people not reptiles.

dang wrote at 2020-11-06 03:31:17:

Please don't do this here. Perhaps you don't owe Zuckerberg better (though why not?), but you definitely owe this community better if you're participating in it.

https://news.ycombinator.com/newsguidelines.html

codecamper wrote at 2020-11-06 05:51:33:

imo Shopify is a company barely in control of its codebase.

desireco42 wrote at 2020-11-06 03:18:12:

I hope he can continue to do his craft forever tbh.