Milan Todorov
mlntdrv.bsky.social
Milan Todorov
@mlntdrv.bsky.social
aProgrammingExtremist
Reposted by Milan Todorov
The only way to get an approximation of a correct bit of code from an AI is to ask the right questions (i.e., create the correct prompt). It seems to me that, as a profession, we have been struggling to ask the right questions for 80 years now. It's a hard problem.
July 13, 2025 at 8:13 PM
Reposted by Milan Todorov
Being afraid of failure doesn’t help people succeed. It helps them stay safe by succeeding less often.

When we make failure safer & cheaper, we can succeed more.
July 10, 2025 at 5:15 PM
Reposted by Milan Todorov
Oh, I have another one! Available for pre-order!
July 9, 2025 at 2:19 PM
Java's support for REST is like Kim Jong Un's support for democracy. It's in the name only.

Almost zero support for hypermedia and thus HATEOAS.
July 8, 2025 at 6:08 AM
Wifey told me how her boss regularly gave a task, then when done always said that's not the task she needed done. So my wife started asking more frequently if she's on the right course. My reaction: you're agile. Her: wait, I'm not doing Scrum or anything, no certificates either...

(1/2)
July 6, 2025 at 7:45 PM
Still halfway-through. Let's not forget there is a test class with the same name + Test as a suffix. 😅
June 13, 2025 at 2:58 PM
Sometimes, the counterintuitive thing is the right way.
Examples:
* NOT planting trees densely to save the planet
* XP
June 4, 2025 at 8:55 AM
Reposted by Milan Todorov
Don’t mistake compliance for commitment. One is obedience. The other is ownership.
June 3, 2025 at 5:07 PM
Reposted by Milan Todorov
A company that demands engineers do their job badly unless given permission to do it well is going to end up with the software it deserves.
May 26, 2025 at 10:06 AM
Ever seen that Service class, full of procedural code in static methods with long parameter lists (for taking the data it works on)? Having no other fields but the ones that hold dependencies (other Services)? Yes? Well, that's what IoCC promotes as a design.

Must read: kalele.io/your-brain-o...
Your Brain on Inversion of Control and Dependency Injection | Kalele
Demystifying Inversion of Control and Dependency Injection | Dive into the world of IoC and DI with expert insights from our blog post. Learn how to enhance code flexibility and maintainability for ro...
kalele.io
May 15, 2025 at 9:53 AM
Reposted by Milan Todorov
It's been 20 years since #git was first available to the public. I recall attending a meetup that introduced git that touted the local independent branching as euphoric development.

1/6
May 15, 2025 at 4:49 AM
Reposted by Milan Todorov
The technique problem with legacy code is that since it wasn't written with tests, it's hard to write tests without changing the code, and it's scary to change working code without having tests.

Writing tests last forces you into this legacy code situation.
May 14, 2025 at 8:24 AM
Reposted by Milan Todorov
If we don't even have the basics right, if we don't even really understand what software development is or how to do it well... how can we do it better and faster with AI?
May 9, 2025 at 6:28 AM
There's a "Transactional Sagas" chapter in a "Software Architecture: The Hard Parts" book, which talks about atomicity, and now I am even more confused than I was before.
March 30, 2025 at 6:49 AM
Reposted by Milan Todorov
"Stop interrupting me while I'm building the wrong thing!"
January 29, 2025 at 11:42 PM
Me trying to empathize with owners having their scary dogs unleashed:
Them: it's ok, you can pass.
Me: I prefer to wait until it unblocks my path.
Them: there's nothing to be scared of, he/she never bites.
Me: that's not how phobias work.
Them: hurrr murrr... <leashes dog murmuring>

(1/2)
January 11, 2025 at 8:23 AM
It is just fine if my English sucks. I don't need it for programming. It is much more important to know how computers work.

#NotMyOop
December 30, 2024 at 7:29 AM
UML.

(That's the whole tweet.)

#NotMyOop
December 30, 2024 at 7:28 AM
I love OOP.
However instead of focusing on taming complexity (the whole point of it), I love focusing on performance way more.

#NotMyOop
December 30, 2024 at 7:28 AM
I need to write a new class so the first thing to do is decide what data it needs to carry.

#NotMyOop
December 30, 2024 at 7:27 AM
In the real world, a console logs a string, or a System out prints a string on a line. So it is important to model these things in such a way to reflect this reality. Thus, console.log(string), or System.out.println(string).

#NotMyOop
December 30, 2024 at 7:26 AM
Classes should do one thing so Imma name it ThingDoer. And it will take a Thing, which is a domain entity and only has getters and setters.

#NotMyOop
December 30, 2024 at 7:25 AM
I love the OOP. I do the OOP all the time.

Today I will introduce a new concept, Thing. Let's see my options:
- interface Thing; class ThingImpl
- interface IThing; class Thing
- interface IThing; class ThingImpl

#NotMyOop
December 30, 2024 at 7:22 AM
I have to keep myself replaceable.

This is best done by documenting each class with UML diagrams and keeping them well maintained in the face of changes.

#NotMyOop
December 30, 2024 at 7:21 AM