Modern internet is broken and no longer built for human beings. By 2026 the internet is filled with robots . One type of robots generates content and injects advertisements, another type ingests that content and emulates human engagement metrics. Modern social media platforms treat spam as something evil that must be automatically removed. But the irony is that commercial spam was never removed.…
In June 2023, I found myself in an awkward situation. We used a custom database on a project, and I needed a simple query builder to create complex queries dynamically and ensure security against user input. I discovered that there were no solutions to that problem on the JavaScript platform at all. I built a solution and now open-sourced it.
When I work on multi-lingual projects, it always takes a lot of time to estimate and prioritize the localization process. Even if you use machine translation, you can't just translate all languages in the world, since it takes a long time, and LLM will spend all your money on garbage generations like chars "aa" repeated thousands of times in a row. I built the NPM package langstats to solve this…
Big tech companies invest a lot of effort to sell us the point that every good programmer must have their own open source project. Many programmers have open source side projects, but quite few of them can explain why they waste their time on it. As a result, they work for free, to make big tech rich. Actually, open source can't make money for programmers, but may be useful as a promotion tool for…
User interfaces everywhere are a bit too generic nowadays, as they must be efficient in terms of maintenance and release time. However, that is not a reason to create a pointless and bad UX. It's enough to monitor the meaningfulness of interfaces and ask yourself, "Does it make sense?" to make the user experience great.
Enterprise programming is the management of system complexity. The main goals of most enterprise projects are to minimize bugs, ensure scalability, and release as soon as possible. These goals are unreachable in projects where people rely on individual skills rather than on a system-based approach.
The software that has a political opinion implies a bias and high risk for security. Avoid software with a "position" today, so you don't get hacked tomorrow.
Development logs are an important part of any project because they allow us to track progress, detect problems, and investigate incidents. Remember the value and advantages of development logs, and preserve as many logs as possible.
Let's say you need to choose some technology for your project, or you already have problems with some technologies, so you want to replace them with others. If you do not maintain a decision log, you have a high risk of making bad decisions that are biased, based on authority, and take too long.
A few days ago, David Heinemeier Hansson announced that Turbo 8 is dropping TypeScript . I'm okay with that because I don't even know what Turbo 8 is. However, over the past few years, some frontend programmers have tried to sell me the idea that "TypeScript is useless, just use tests". I think people with such opinions either don't care about code quality or simply don't know what TypeScript is.…
I've developed a few browser extensions, and every week I receive numerous emails with "revenue offer". Some experienced developers know that offers like these will inject malware into the browsers of your users, but scammers who make these offers will not tell you about it. They offer "integrations" that don't look so suspicious. Imagine how many developers have accepted these offers. Then look…
Some developers are sure that BEM is just a way to make class names in CSS are unique and, since a modern tools allow to make names unique automatically they have no reasons to use BEM. This is a mistake with a bad consequences, BEM is are methodology about atomic code design, it gives you a standards and guides how to simplify code maintaining.
The web browser is the most used program for me and for most users of the internet, so it is important for the browser to work efficiently during daily use. Although most browsers have embedded translation features and there are many browser extensions providing translation capabilities, I have found them to be not good enough and unacceptable for intensive use. This is why I have created Linguist…
If your project don't have a design system it is probably usual problem for you, when even a small changes like changes a color for action buttons takes off a lot of time, generate a lot of changes and make user interface look inconsistent. To solve the problems, you should start use a design system. Let's talk what is it and how to use.
How often you start code review and can't understand how this changes fix the problem and even don't understand is reliable this changes or not? If it periodically happens, you should start write detailed description for each pull request.
We strive to ensure code quality with tests, static code typing, code analyzing, code review and documentation, but some of most popular programming languages like Typescript and Java kill interfaces as concept to describe contract of code.
To make good code and think sensibly, you have to practice and improve your skills always. To improve skills, you have to explore the world, meet with exists ideas and be ready to admit that your approach been wrong.
Last time i often hear point about "modern software is unjustified complicated compared to software of 20-30 years ago, modern development approach is wrong and we must focus on performance and energy efficient" and i completely against of this point. Complicated software is move us to the future.
UI kits are became popular and today exists really many UI libraries, but almost whole its a have one fundamental architecture problem which make this libraries not much good for wide use. The problem is a not modular design.