Anton Keks (@antonkeks) profile picture

Full-stack software craftsman, entrepreneur, speaker

Estonia
Joined December 2009
Photo by Anton Keks (@antonkeks)Photo by Anton Keks (@antonkeks)Photo by Anton Keks (@antonkeks)Photo by Anton Keks (@antonkeks)Photo by Anton Keks (@antonkeks)Photo by Anton Keks (@antonkeks)Photo by Anton Keks (@antonkeks)Photo by Anton Keks (@antonkeks)
Devs: don’t neglect web apps. You’re not only forgetting desktop users, but also digital freedom: potential new independent mobile OSes. There are few things PWAs cannot do nowadays. Avoid React if you want fast web apps. Skip the download barrier. The web is freedom. – at Tallinn, Estonia
1
117
More good web apps - more chances of getting independent OS choices. That was even the vision of Steve Jobs for the original iPhone – at Tallinn, Estonia
50
Good luck to Apple fans, once again – at Vantaa, Suomi
Last night Apple briefly removed Telegram from the AppStore because a user had planted illegal porn in a public chat. Telegram was restored within hours. But I want to explain what happened — to warn other app developers and help protect online communities from similar attacks. Because Telegram quickly removes illegal content from public groups using all kinds of moderation tools, the attacker had to resort to a technical trick. He inserted AI-modified illegal content by editing an old message in an active group chat. As a result the content was effectively hidden from the group’s members, preventing them from seeing/reporting it. The attacker was a takedown extortionist: someone who demands ransom from group owners in exchange for not targeting their communities. These extortionists use automated accounts to plant illegal content in public groups and then report it directly to Apple, attempting to trigger the removal of legitimate communities whose owners refused to pay them. From a practical standpoint, illegal pornographic content in Telegram’s public groups is not a systemic problem. Our moderation is effective. The fact that attackers must resort to backdated, effectively invisible content and other technical tricks proves this. ⚠️ However, there are two important lessons here for app developers and online communities: — Extortionists have found a way to manipulate Apple into overreacting. Apple removed Telegram from the App Store before contacting us. This creates a potential systemic risk for every mobile app that hosts user-generated content. If an app used by more than a billion people can be removed from the App Store without prior warning, any app can be. — The tactics used by takedown extortionists are evolving, putting communities across social platforms at risk. Telegram has extensive experience identifying the tricks used by coordinated reporting gangs and protecting legitimate communities (even when doing so risks our own app being temporarily removed from the App Store). Other platforms may not be equally prepared. Stay vigilant! ☝️
166
GitHub Stacked PRs are a new big thing in increasing unnecessary complexity. All the extra work instead of just committing to a branch and making fixes on top if needed. This is like inventing a space-grade pen instead of just using a pencil. – at Tallinn, Estonia
1
1
3
189
PR is a way to accept code contributions from untrusted strangers, not coworkers. If you use them, then you have to solve thousands of extra problems that you could not have in the first place – at Tallinn, Estonia
2
77
Anton Keks retweeted
I saw this today and had to giggle.
6
40
4
240
15,229
I have just moved stampy.guru from 256M to 512M RAM in production on fly.io. It serves 9000+ customers who now received over 40k stamps until now with very few resources, Klite/Kotlin on JVM. This is green hosting, not those K8s or Crypto/AI startups
2
76
Exactly
Just learned a team at Microsoft is doing code reviews *after* merge. Why? To move faster. No more pausing work to wait for code reviews. No need for stacked PRs. No more time-consuming merge conflicts caused by long code review delays. This has risks, but may work well for a team that is: - mature - high trust - has strong automated quality checks
177
Developers nowadays spend the effort on skeleton screens (loading placeholders) instead of just making loading faster. Look at @duolingo - have you seen any spinner there? Too many wrong problems being solved in software engineering. Now with AI
1
5
279
To Kubernetes and back to Docker Compose in production. Great time and cost saving. Hope that our industry will rediscover simplicity and stop wasting time. medium.com/@guvencanguven965… Most startups are over-engineering their infrastructure. Complexity is a tax you pay every day
1
4
250
React is slowing down progress in web development. React-based vibe coding tools probably making it even worse adactio.com/journal/22265
1
4
284
Simplicity can actually make a good conference talk. There are not enough such talks. But otherwise, true about microservices being a scam.
Microservices is the software industry’s most successful confidence scam. It convinces small teams that they are “thinking big” while systematically destroying their ability to move at all. It flatters ambition by weaponizing insecurity: if you’re not running a constellation of services, are you even a real company? Never mind that this architecture was invented to cope with organizational dysfunction at planetary scale. Now it’s being prescribed to teams that still share a Slack channel and a lunch table. Small teams run on shared context. That is their superpower. Everyone can reason end-to-end. Everyone can change anything. Microservices vaporize that advantage on contact. They replace shared understanding with distributed ignorance. No one owns the whole anymore. Everyone owns a shard. The system becomes something that merely happens to the team, rather than something the team actively understands. This isn’t sophistication. It’s abdication. Then comes the operational farce. Each service demands its own pipeline, secrets, alerts, metrics, dashboards, permissions, backups, and rituals of appeasement. You don’t “deploy” anymore—you synchronize a fleet. One bug now requires a multi-service autopsy. A feature release becomes a coordination exercise across artificial borders you invented for no reason. You didn’t simplify your system. You shattered it and called the debris “architecture.” Microservices also lock incompetence in amber. You are forced to define APIs before you understand your own business. Guesses become contracts. Bad ideas become permanent dependencies. Every early mistake metastasizes through the network. In a monolith, wrong thinking is corrected with a refactor. In microservices, wrong thinking becomes infrastructure. You don’t just regret it—you host it, version it, and monitor it. The claim that monoliths don’t scale is one of the dumbest lies in modern engineering folklore. What doesn’t scale is chaos. What doesn’t scale is process cosplay. What doesn’t scale is pretending you’re Netflix while shipping a glorified CRUD app. Monoliths scale just fine when teams have discipline, tests, and restraint. But restraint isn’t fashionable, and boring doesn’t make conference talks. Microservices for small teams is not a technical mistake—it is a philosophical failure. It announces, loudly, that the team does not trust itself to understand its own system. It replaces accountability with protocol and momentum with middleware. You don’t get “future proofing.” You get permanent drag. And by the time you finally earn the scale that might justify this circus, your speed, your clarity, and your product instincts will already be gone.
1
238
Funny checklist for a developer's experience: infoworld.com/article/409957… I am pretty good with all of the topics because I actually taught them in TalTech. Except Kubernetes that I knowingly avoid if possible
1
94
People ask what to use instead of Kubernetes. Start with Docker Compose + Caddy/Traefik and migrate to Docker Swarm when you need many nodes. Docker makes it easy to move stuff around servers or VPS. Less work and cost than AWS/K8s and the like. Prefer efficient code to scaling.
2
162
For PivotalTracker fans still out there, I am releasing an open-source StoryTracker that you can self-host and enjoy simple agile project management again! github.com/keksworks/storytr…
3
193
Tolerate genius. My observation has been that mediocre people recognize genius, resent it, and feel compelled to destroy it. There are very few people of genius. But we need all we can find. Almost without exception, they are disagreeable. Don't destroy them. They lay golden eggs — David Ogilvy
8
12
3
104
12,057
Java records is a terrible design mistake to not follow the common Java Beans pattern. The result: frameworks needs to add support for them specifically; they are not interchangeable with POJOs nor Lombok - legacy code cannot be upgraded; people still add computed getters to them
9
380
I still see that eliminating waste (overengineering, extra DevOps) and boilerplate in software projects gives much more productivity boost than generating and maintaining it all using AI. Make first things first - simplicity, and only then seek for AI help
1
1
7
355