Joined June 2009
249 Photos and videos
Pinned Tweet
25 Jul 2018
I promised to write about this a long time ago... medium.com/@alen.ladavac/the… This is geared more towards a causal reader than my GDC talk was. Will make another write-up with all the gory details for technical audience later, but this one already has some of the videos I promised.
12
56
142
Too bad that by the end of the year humans won't be buying products. Their agents will. I guess next frontier is - marketing for agents?
2 Apr 2025
AI UGC can now show your product from nothing to a UGC video in 3 minutes with this simple combo chatgpt arcads >give a product pic to chatgpt >add ai influencer in it >chatgpt blends the two >use any image-to-video to make it move comment "arcads" and i'll send you a step-by-step guide with prompts etc
2
7
474
Alen Ladavac retweeted
This should be a primary concern of the entire software industry. But everyone's a joker. x.com/EskilSteenberg/status/…

Cars, bridges and houses are constantly battered by the elements, Software is made out of bits, that do not degrade. It stays the same. So why does software require so much more maintenance than cars, bridges and houses? youtube.com/watch?v=EGLoKbBn…
38
59
935
73,845
Alen Ladavac retweeted
This is the best workaround I've seen - much better than what I used to do! I never noticed the "Associate Handles" bar in there before.
3 Jun 2025
Replying to @cmuratori
There's better tools but I use Resource Monitor when I don't have access to an alternative.
8
11
282
20,010
Alen Ladavac retweeted
25 May 2025
Claude 4 just refactored my entire codebase in one call. 25 tool invocations. 3,000 new lines. 12 brand new files. It modularized everything. Broke up monoliths. Cleaned up spaghetti. None of it worked. But boy was it beautiful.
1,203
2,613
41,987
3,912,316
Alen Ladavac retweeted
17 May 2025
This goes out to all the haters at GDC from 2022-2024 if you aren't taking Roblox seriously then you are getting left behind!
354
135
2,415
405,704
17 May 2025
IYKYK
I read this article about software development, which I knew about because I saw Prime reacting to it: notashelf.dev/posts/curse-of… For the most part I think it is fine: a relatively young programmer is doing the healthy work of introspecting on what he should really be doing. But there's one part of the article that I think is a deep mistake, and the author doesn't know it's so wrong because he has never experienced the alternative: "Software doesn’t stay solved. Every solution you write starts to rot the moment it exists. Not now, not later, but eventually. Libraries deprecate. APIs change. Performance regressions creep in. Your once-perfect tool breaks silently because libfoo.so is now libfoo.so.2. 2 I have had scripts silently fail because a website changed its HTML layout. I have had configuration formats break because of upstream version bumps. I have had Docker containers die because Alpine Linux rotated a mirror URL. In each case, the immediate emotional response was not just inconvenience but something that moreso resembles guilt." Yes, this is true in much of the programming world. But there is another world in which people build things that last much longer. I have done it many times. I shipped a binary for this game Braid in 2009 that you can still download and play on Steam 16 years later. If you are pretty young (like 35), you can run binaries on Windows that were compiled before you were even born, which is amazing given how hard they have been trying to f up Windows lately. On an emulator like MAME, you can play arcade games programmed in 1979. If today's software "technology" is so much better, why does it fall apart like tissue paper? The author is not wrong about the cited decay. But this decay is not inherent to the practice of software. It's due to choices made, usually foolishly, by the people designing the systems being interacted with. And, it's due to a lack of knowing better, non-exposure to the sector of programmers who are very concerned with their code lasting a long time, actually. The way you make code last a long time is you minimize dependencies that are likely to change and, to the extent you must take such dependencies, you minimize the contact surface between your program and those dependencies. The actual algorithms you program, the actual functioning machinery you build, is a mathematical object defined by the semantics of your programming language, and mathematical objects are eternal, they will last far longer than your human life. The goal then is to avoid introducing decay into the system. You must build an oasis of peace that is insulated from this constant bombardment of horrible decisions, and only hesitantly interface into the outside world. This means, for example: If you are shipping on iOS, you only reluctantly use any functions iOS gives you, because when you use them, Tim Apple will come along and break your program next year for arbitrary pointless reasons, because Tim Apple does not respect you or anyone you know. This means a program cannot last forever on iOS, because Tim Apple likes breaking your things and watching you submissively clean them up. But the core of your program, which could be 95% of the code, is fine, and you can deploy it elsewhere. This means you have to insulate from Linux userspace, because of all the jackass decision making that introduces constant incompatibilities while somehow never making the system better. Using a library dependency to do font rendering or sparse matrix math? That dependency gets checked into your source tree, a copy of exactly the version you use. Ten years later you can pull down that source and recompile, and it works, because your program is a mathematical object. If you want to upgrade to something newer that has bug fixes and so forth, you are free to do so, but you are also free not to do so, and your program still works. (And how many of these bug fixes do you really need? Your program worked correctly when you shipped it to the greatest extent you could measure, because you are a skillful software engineer who wants to ship things of a high quality). Everyone who got into programming for the joy of it knows, at some level, that the magic of programs is that they represent complexity that is replicable over time (and thus they exist outside of time). But the trashy programmer culture of the past 20 years stopped aspiring to this, and now has forgotten it is even possible. And so long as people have forgotten, decisions will continue to be made that make the problem worse. There are programmers who only write glue code, and who think that's what programming is; to these people what I have written above will not make sense. But the good news for that contingent is, they can always just stop writing glue code and start doing something else! If today's software "technology" is so good, why do you think it needs so much glue? Maybe there is a stylistic problem. So if you are looking for what to do in the world of software that can represent a lasting contribution, maybe this is food for thought. @NotAShelf @ThePrimeagen
1
1
348
Alen Ladavac retweeted
Reading @Jonathan_Blow's comment today about how younger programmers have become accustomed to continual software decay, I was reminded of this thread I wrote a few years ago:
[1/*] If we take the chance that a tool (compiler, linker, batch, whatever) remains working for a particular codebase after one year as a given probability p, then the chance that build remains working after x years is p^xn, where n is the number of tools used in the build.
23
43
819
61,157
Alen Ladavac retweeted
Easy way for programmers to go viral and become programmer influencers on this site is to just pick some random language feature and act really angry about it all the time
19
6
420
32,458
Alen Ladavac retweeted
What did I tell you about auto?
Meta recently made a 1 character change to their codebase which saves the equivalent of ~15,000 servers in capacity per year 🤯
9
6
133
14,662
Alen Ladavac retweeted
Despite the claims, Apple's closed-ecosystem policy has never been about security or user experience. When pushed, they will ship lower security (as they just did in the UK) or worse experience (as they did here). By contrast, they'll do whatever it takes to keep their 30% cut:
Bloomberg reporting on yesterday's Apple sanctions hearing
9
24
312
15,742
Alen Ladavac retweeted
Just a reminder to everybody: If a website compares your new password with your old one, the web browser has to send a plain text password instead of a hashed one. This is a security issue.
15 Feb 2025
Oh so you're not hashing your passwords cool cool
537
694
14,354
1,738,450
Alen Ladavac retweeted
24 Aug 2024
The merchants of complexity will try to convince you that you can't do anything yourself these days. You can't do auth, you can't do scale, you can't run a database, you can't connect a computer to the internet. You're a helpless peon who should just buy their wares. No. Reject.
72
405
3,793
1,291,673
Alen Ladavac retweeted
It is easier to GIVE UP performance than to RECLAIM performance. “Don’t prematurely optimize” statements are nonsense. Proper guide: don’t give up performance prematurely. As such building systems (not scripts or simple tools) in slow languages (C#, Python) is likely a mistake.
17
19
174
14,902
Alen Ladavac retweeted
I think there are some inaccuracies in this chart, but it is directionally correct. The thesis of the EU is that the way it is run is *better* than the way America is run, so like, what gives? x.com/zebulgar/status/186398…

3 Dec 2024
Crazy how the EU is just a rounding error when it comes to large companies that were founded in the last 50 years It's a museum as a continent and a museum as a stock market...
40
2
210
59,191
Alen Ladavac retweeted
22 Nov 2024
You just can’t get good results by automatically generating bad code and bad data structures. When writing code in any language, it’s always worth thinking: What’s this generating? How does that compare to roughly what machine code actually needs to execute to accomplish this?
Replying to @SebAaltonen
This is how fast things should load. We have spent a massive effort optimizing the data structures. I also rewrote the renderer. You can't get this kind of load times with lots of tiny memory allocs, shared pointers, hash map lookups, frequent mutexes and all other slow stuff.
7
10
258
26,964
23 Nov 2024
When you MVP is too much M, not enough V. #copilot
2
355
19 Nov 2024
"Developers found code written using GitHub Copilot easier to read" Well, seeing how it tends to, y'know... actually write comments for its code - perhaps it's not that surprising, is it? 🙃 github.blog/news-insights/re…
2
1
5
338
Alen Ladavac retweeted
17 Nov 2024
Replying to @eeuoss
Is that why my PC runs like shit? Smart pointers are a huge no-no if we’re talking about truly safe code. How safe? Where lives are on the line. Safety-critical code bans any freeing of memory. What do smart pointers do? Free memory automatically for you. Use BSS and mlockall.
6
2
199
13,022
Alen Ladavac retweeted
Switched from arena to fixed arrays after watching altdevarts.com/p/port-a-unit…. Engine code already favored fixed arrays but hesitated for tools and libraries. However Constraints are reality. Better to set constraints and think through and handle them than pretend they do not exist
14
11
215
71,539
Alen Ladavac retweeted
Your SW doesn't need more than 100MB Your SW doesn't need more than 100MB Your SW doesn't need more than 100MB Your SW doesn't need more than 100MB Your SW doesn't need more than 100MB
28 Sep 2024
your laptop needs more than 16GB of RAM your laptop needs more than 16GB of RAM your laptop needs more than 16GB of RAM your laptop needs more than 16GB of RAM
23
40
493
27,851