jimmykoppel Profile Banner
Jimmy Koppel Profile
Jimmy Koppel

@jimmykoppel

Followers
3K
Following
774
Media
323
Statuses
1K

Turning good engineers into great at https://t.co/b5295anmRU . Reverse engineer. Blogs about software design at https://t.co/RYL1GZ92df. Ph. D. in PL from @MIT.

Cambridge, MA
Joined August 2014
Don't wanna be here? Send us removal request.
@jimmykoppel
Jimmy Koppel
2 years
The world runs on software. When software is hard to change, so is the world. They say you can't teach software design. That it has to be learned through hard experience. That good programmers are born, not made. I say: challenge accepted. My magnum opus:
2
3
30
@jimmykoppel
Jimmy Koppel
2 days
0
0
0
@jimmykoppel
Jimmy Koppel
2 days
4 bots walk into a PR. Watch as Devin, Sourcery, Gemini, and Github Actions collaborate to create a change. and add a single line to a README. That future is here
Tweet media one
Tweet media two
Tweet media three
Tweet media four
1
1
4
@jimmykoppel
Jimmy Koppel
2 days
RT @tikhonjelvis: the only reason languages seem like interchangeable tools is that all mainstream languages are mediocre reheated algols.
0
2
0
@jimmykoppel
Jimmy Koppel
4 months
I say it's effective for okay-to-good, not good-to-great. What's missing?. Author-level knowledge of the code requires understanding paths not taken, the bugs dodged, and the felt sense from actually having run it many times. That's very hard to gain without becoming the author.
0
0
3
@jimmykoppel
Jimmy Koppel
4 months
Need to add a small feature to the code? You want strong navigational sense. Reorganizing it can grant you that sense and also make it intrinsically easier.
1
0
2
@jimmykoppel
Jimmy Koppel
4 months
Need to build something that uses this code? You want rapid recall of its interface and a good mental model of its state. Evaluating every field and function to see if you can find a better name will help with that.
1
0
1
@jimmykoppel
Jimmy Koppel
4 months
But what if you already have those answers, weakly? Say, you did a cram code-review of this section 3 months ago, but now need to work on it?. In this case, you are able to understand everything you read moderately well, and face different challenges.
1
0
1
@jimmykoppel
Jimmy Koppel
4 months
Reading-by-refactoring is ineffective because understanding most code passages requires answering deep questions that organizing the code does not force you to grapple with.
1
0
1
@jimmykoppel
Jimmy Koppel
4 months
I've written before that "reading-by-refactoring" is an ineffective way to learn a codebase. Yet I spent most of yesterday doing it. My refined position:. It's terrible for going from zero-to-okay knowledge of code. But fine okay-to-good knowledge. Why?.
@0xjimmyk
0xJimmy
6 months
80% of auditing is codebase understanding. How can you make someone faster at understanding a codebase?. Let's learn some learning science!.
2
0
5
@jimmykoppel
Jimmy Koppel
5 months
I find myself constantly shocked by the misconceptions people have about learning. Then again, I used to share them. Do you understand learning? A quiz for everyone:. Group A is given a lesson on arithmetic sequences, then asked questions about an application, constant velocity.
0
0
3
@jimmykoppel
Jimmy Koppel
6 months
RT @eckely: Best practices are usually just common practices, which by definition are not the best, since nothing common is the best.
0
1
0
@jimmykoppel
Jimmy Koppel
6 months
Don't call them "best practices." Call them "known good practices." . They're there to save you the effort of reinventing everything. Good engineers are always finding process improvements, and that wouldn't be possible if "best" practices truly existed.
7
7
44
@jimmykoppel
Jimmy Koppel
6 months
When someone makes a prediction about 10 years in the future, send an E-mail reminder to yourself to check. This one didn't pan out.
Tweet media one
2
0
16
@jimmykoppel
Jimmy Koppel
7 months
Of all ML concepts, the most presciently named is the Gaussian Error Linear Unit (GELU), now dominant in transfomer architectures. Gelu is the name of the wielder of Armageddon's Blade, and directly responsible for the destruction of the world
Tweet media one
Tweet media two
1
0
4
@jimmykoppel
Jimmy Koppel
7 months
Me: So maybe you should group similar declarations and label the groupings? Make it conspicuous? Pretty please?. Blockchain developers:
Tweet media one
3
0
6
@jimmykoppel
Jimmy Koppel
7 months
A software engineering analogue: it's more motivating to refactor a codebase if you're the one who gets to work in said codebase afterwards. / "Budget for refactoring by time saved in feature dev".
0
0
7
@jimmykoppel
Jimmy Koppel
7 months
In Hong Kong, subways go everywhere, run every few minutes, and cost under US$1. It's run by a profitable private company. How? Because they build shopping malls atop the stations to capture the value they create, and subsidize transit. Methinks we should try this in America.
2
3
23
@jimmykoppel
Jimmy Koppel
8 months
Tweet media one
0
0
8
@jimmykoppel
Jimmy Koppel
8 months
I got my start in security by pulling off some binary magic that makes it easy to modify programs without their source code. Now I've written it up for the first time. Full copy in reply.
@pagedout_zine
PagedOut
8 months
Paged Out! Issue #5 is out now! .Happy reading! . Please RT and tell your friends! :).
2
3
25
@jimmykoppel
Jimmy Koppel
8 months
Like its namesake, the spaghetti code shirt has survived migration into a new environment, allowing it to continue bitrotting. Happy belated Halloween!
Tweet media one
2
0
9