Why people constantly ignore the knowledge-sharing role of code review?
Catching issues is secondary, first and foremost it's about alignment on the style, approach, verifying the right thing is being built, knowing the system and so on.
Software engineering is a team sport.
@trisha_gee So it seems that Gradle “support” was a short-lived :( Will need to update my opinion about the company and Hans personally. Trisha, wish you all the best on your new independent journey! 🙏
Code is cheap, Software is not 🤔
Anyone can write code. Building software that's maintainable, observable, secure, and actually solves a problem? That's the hard part.
This is why fundamentals matter more than ever.
In 20 years, vibe coders will look at the Linux kernel repo the way we look at the pyramids. In awe, unable to imagine how they managed to drag all those giant stones and pile them up in the middle of the desert.
наклодова́ть, -ду́ю, -ду́ешь; -дова́л, -дова́ла; сов. и несов. разг., шутл., техн. жарг.
1) (что) Сделать, получить или быстро «сварганить» при помощи Claude / Claude Code (обычно — с участием ИИ: сгенерировать код, правку, набросок решения).
Наклодова́ть скрипт миграции за вечер
Demanding an estimate guarantees the estimate will not be useful to the business and will always drive costs up.
Software engineers all know that estimates are useless. It's literally impossible for them to be accurate when you also need to build the most valuable software, because we learn as we work, and every scope change changes the estimate. Also, many of the things we do cannot be estimated because they involve discovery.
Software engineers also know that managers will treat their estimates as promises. Bad managers demand estimates so they can pass the blame to the programmers when the project fails, which it always does, given a fixed scope and budget. In other words, any project that _can_ be estimated will fail because you'll be building the wrong thing. Giving an estimate puts your head on the chopping block.
Software engineers are not dumb. They will wildly pad the estimate to protect their necks. If they know you will negotiate the estimate, the starting bid will be even higher. Since they can't be seen as lazy, Parkinson's Law will kick in, and they'll find something unnecessary to do to fill the time. That's expensive.
Wildly inaccurate estimates are of no value for planning, either. Estimates make you arrive at the market later.
Given all this, could we please drop the charade and just get the work done?
If you are a software engineer "experiencing some degree of mental health crisis", now hear this, because I've been coding for 50 years since the days of punched cards and I have a salutary kick in your ass to deliver.
Get over yourself. Every previous "programming is obsolete" panic has been a bust, and this one's going to be too.
The fundamental problem of mismatch between the intentions in human minds and the specifications that a computer can interpret hasn't gone away just because now you can do a lot of your programming in natural language to an LLM.
Systems are still complicated. This shit is still difficult. The need for people who specialize in bridging that gap isn't going to go away.
As usual, the answer is: upskill yourself and adapt. If a crusty old fart like me can do it, you can too.
AI has dramatically accelerated how software is written. But speed was never the real bottleneck.
Despite LLMs, The Mythical Man-Month is still surprisingly relevant. Not because of how code is produced, but because of what actually slows software down: coordination, shared understanding, and conceptual integrity.
AI makes code cheap. It does not make software design, architecture, integration, or alignment free.
In fact, faster code generation can amplify old problems:
* Incoherent abstractions appear sooner
* Integration costs surface later
* “We’re almost done” illusions become stronger
What matters more than ever is strong architecture, clear intent, and technical leadership. The modern leverage point is not the fastest coder, but the person who can frame problems well, guide AI output, and preserve system coherence.
A modern version of Brooks’ Law might be: "Adding more AI to a late or poorly defined project makes it confusing faster."
AI changes the tools. It doesn’t repeal the laws of software engineering.
@antonarhipov I plan to do the exact same thing I did with Docker and Kubernetes back in the days: ignore it for several years, until dust settles and clear recipes emerge 😅
💡 So, you don’t really need advanced algorithms to be a great software engineer, but you do need strong problem-solving and code review skills. You can build those with or without participating in competitive programming. Competitions are simply one path to getting there.
"Our database won't scale".
Database:
- 40GB total data
- 12 queries per second
- 0 indexes on query columns
- N+1 queries everywhere
- 200ms average query time
Solution:
- Shard across 12 databases
- Add read replicas
- Implement caching layer
- Switch to "web scale" NoSQL
Actual solution:
- Add 3 indexes
- Fix the N+1 queries
- 5ms query time
- $40/month Postgres
You don't have a scaling problem.
You have a competence problem.
Американский астрофотограф Эндрю Маккарти заснял свободно падающего человека на фоне Солнца.
На снимке под названием «Падение Икара» запечатлён падающий парашютист и музыкант Габриэль Браун. Для этого фотографу понадобилось несколько недель подготовки и шесть попыток. Браун прыгал с мотопараплана — с высоты 1070 метров. Расстояние до камеры составляло 2440 метров.
В греческой мифологии Икар — сын изобретателя Дедала, который ослушался отца и подлетел слишком близко к солнцу на искусственных крыльях из перьев и воска. Когда воск расплавился, он упал в море и утонул.