Good dev knows – Telegram
Good dev knows
2.15K subscribers
26 photos
8 videos
187 links
Everything what the good dev shall know. Stories, hard skills, soft skills. Regularly.

Instagram: https://www.instagram.com/gooddevknows/

Questions: @PavloPoliakov
Download Telegram
Hi friends,

The war in 🇺🇦 Ukraine is still ongoing — it has been nearly 1200 days since the full-scale invasion began in 2022.
Despite various headlines and political statements like Trump’s “let’s see in two weeks,” peace still feels far away.
The Armed Forces of Ukraine continue to bravely defend not only their homeland, but also the rest of 🇪🇺 Europe from further aggression.
And they need our help — specifically, they need vehicles.

I've joined a fundraising campaign organized by my friend’s volunteer group tazyky.ua.
This incredible team has already delivered over 500 vehicles to the Ukrainian Armed Forces.
Their current goal is to raise 1.2 million UAH (about 25,000 EUR) to purchase more vehicles for the front lines. My personal goal is to contribute 10,000 UAH (about 210 EUR).

I invite you to donate any amount that feels right for you — every contribution brings us one step closer to peace in Europe 🙏.

Donate here:
💸 PayPal: https://www.paypal.com/paypalme/PavloPoliakov
💳 Monobank jar: https://send.monobank.ua/jar/36KZTp5qP6

Why vehicles?
They’re essential for rapid logistics, delivering ammunition, evacuating the wounded, and saving lives. But they’re also expendable — constantly in demand and often destroyed in action.

Thank you for standing with Ukraine. 💙💛
25👎14👍11
Hi everyone,

Thank you for your contributions — we’ve raised 7,650 UAH out of our 10,000 UAH goal.
Running fundraisers is tough these days; everyone is tired in their own way.

But just like with tech leadership and staying true to our personal and company goals, we must accept that there is no finish line.
The path is the answer.

Let’s stay committed to our path of contributing to a fair outcome for Ukraine.

Please donate your part — let’s make it happen 🙌.

Donate here:
💸 PayPal: https://www.paypal.com/paypalme/PavloPoliakov
💳 Monobank jar: https://send.monobank.ua/jar/36KZTp5qP6

Thank you for standing with Ukraine. 💙💛
15👎3
Please open Telegram to view this post
VIEW IN TELEGRAM
2👍31👎1🎉1
🤖 Trying out Jules

3 weeks ago, Google introduced their own async coding agent — Jules.
It’s available to the public and gives you 60 tasks per day to play with and it requires you to connect your github.

I decided to try it out and build a simple React app with some custom casual games for my kids.

🧪 My experience (so far):

📆 Yesterday
I opened Jules and started coding. But… it turned out to be the perfect time for a global outage — npm and half the internet just went dark. So Jules also had issues with creating a new React project for me, but it created something.

📆 Today
I came back, ready to continue.
And to my surprise, Jules remembered that yesterday there were issues with npm and was hesitant to use it today! 😳
But I think I convinced it that today it shall be fine.

Look, now unreliable npm can traumatise the AI agent!
👍61
🤖 Trying out Jules. Next steps.

I continued to try out Jules, after npm was up.

Here is what I did and my observations.

💡 The idea
The idea was to generate a simple front-end UI with some on-demand casual games for kids. So I (and them) can come up with the game and AI assistant will implement it

⚙️How it works
* You create a new task, it suggests a plan to you. You accept the plan.
* Then in the virtual env which was setup for your task Jules does something to implement it. It creates files, moves them, installs packages, etc. (uses tools)
* Then you have a diff, you can review it visually and a button "publish the branch".
* If you publish it it will publish it to github.
* 📉 what I did not like, is that when you publish the branch, then make changes and push them back, then Jules does not pick them up. It still operates within the first checkout.

🧑‍💻Creating a react app
* Initially I asked Jules to create a React app, it created it (sort of). I asked to add tailwindcss. It did.
* I was able to run it on my local
* When I tried to deploy it to render.com , then the build failed
* I understood that Jules created pretty outdated React setup (react-noscripts) and non-working tailwindcss integration (mainly because v3 vs v4 breaking changes). I had to learn what is wrong and integrate it myself, it took about an 1.5h.

🖼 UX
* The UI looks fine, but sometimes it does not refresh automatically, and you need to refresh the page to check if it finished the work
* The work itself takes long. And to me it is a cognitive issue with "thinking" models. It just feels boring to wait until they do something.
* Sometimes it did not finish. One time it worked for 20 minutes to say that it can do only half of the task and if I want to continue I need to ask again.

Overall I think it made me faster for the MVP. But it also worked only because I could review the code and I know what I want to get and how it shall look like (from the code perspective). Here is the present result: https://aa-app.onrender.com/

I recommend to try, it's free and has limitation of 60 tasks per day. Which is enough. Because one task is one round of feature development (chat with model until you are happy with the results), and not one prompt.
13👍3🎉2👎1
🎙CTO Talks

This week, I had the honor of being invited to the 📹 CTO Talks Podcast by Fwdays and Yehor Herasymchuk. While I’m not a CTO, there were still plenty of topics worth discussing.

💭 We talked about:
* Tech leadership
* The Principal Engineer role
* How to become a tech leader
* Why do I miss the time when everyone was working from the office

…and much more. I invite you to watch or listen to the episode on YouTube.

Please share your thoughts about the content in the comments - your feedback is valuable! 🙌
👍13
How to use AI agentic mode the right way.
10👍4👎2
📧 Email or e-mail?

Today I was working on a feature where email is involved. At some point, I stopped and asked myself: how should I write it — email or e-mail? Until today, I had been diligently using the form e-mail, but I started to notice that I might be the only one paying such close attention to this detail.

🔍 Finding clarity
After some searching I found this nice resource from Google: https://developers.google.com/style

It's a styleguide for writing tech docs by developers for developers. Super clear and simple. No need to invent your own rules, just follow the good defaults. Less cognitive load.

This Google styleguide is worth checking out for anyone who writes docs or error messages in products. It’s simple, consistent, and helps your future self.

✍️ My choice
I’ll stick to email. Saves a dash! I plan to win about an hour of my life over the years just by typing faster and thinking less about it.
👍17
⭐️ Tech Leadership Crash Course #3 ⭐️

ChatGPT-5 is launching in early August. I don’t know how much more powerful it will be or what new use cases it might unlock. One thing is certain — people will again say that software developers should prepare to be pushed out of the market. BUT! There is a way to fight back.

I’m announcing a new batch of the ⚙️ Tech Leadership Crash Course.

Three days. Three core topics for a tech leader:
* Leadership
* Architecture
* Soft skills

In these three days, you’ll gain fundamental knowledge that will help you design and support the development of complex information systems — systems that serve business goals, are maintainable, and are enjoyable for your team to work on. People with these skills will stay valuable even if ChatGPT-5 turns out to be a real game-changer.

For followers of this channel, we’ve created a promo code: GOODDEVKNOWS, which gives you 15% off. Valid until August 15.

Read more about the program on the course website. The course is held in 🇺🇦 Ukrainian.

If you have any questions, I'm glad to reply in comments. The average rating of the course from the previous batch is 9.5 out of 10!
🎉32👍2
🤖 Use AI to generate diagrams

Maybe obvious to some, but new and super useful to me — using an LLM to turn a messy braindump into a clear sequence diagram.

I gave it a raw denoscription like:
Generate mermaidjs sequence diagram.

There is:
* customer
* ecommerce-frontend
* fraud-detection-service

The customer accesses the website via the ecommerce-frontend, which calls the fraud-detection-service to evaluate if the customer should be flagged for further verification. If verification is required — the VerificationPage is displayed. On this page, the customer must complete a challenge-response CAPTCHA. Once completed, the CAPTCHA result is sent back to the fraud-detection-service for assessment. If the verification passes, the customer is redirected to the HOMEPAGE of the ecommerce-frontend. If not — an AccessDeniedPage is shown.

Please, generate a sequence diagram.


1️⃣ Then you get MermaidJS code.
2️⃣ You can paste/edit it here: https://www.mermaidchart.com/play
3️⃣ Now, instead of a braindump, you provide a clear diagram that’s much easier for your peers to understand.
4️⃣ You are awesome!
10👍4
🏎 F1 Tech

Recently, my friends and I visited an F1 Grand Prix in Spa. Before I knew I was going to the race, I wasn't a fan of F1 at all. But once I found out, I decided to prepare and understand what was actually going on there. Luckily, Netflix made the entry point pretty accessible — they released the Drive to Survive series. I also watched the F1 movie (also good ⭐️).

The more you learn about F1, the more you realize it’s not just about the race — it’s about team effort, technology, and money. The best driver doesn’t always win; it's often the best car paired with a high-profile driver.

Watching F1 live is exciting, but feels a lot like whoosh whoosh whoosh — cars fly past you, and all you can do is keep turning your head like crazy. Last week, I watched the Hungarian Grand Prix on TV, and the experience was very different. Not just because you can see the whole race, but because of all the additional information shown on the screen to make it more engaging (for example, radio exchanges between drivers and their teams).

And I asked myself — is this information public? There’s no real reason for it not to be. If the FIA (the organization behind F1) makes it public, it enables others to build tools around it and ultimately make F1 more popular.

Turns out, this data is available. I wasn’t able to find an official API, but there are several public ones. For example: https://openf1.org/. You can even query all public radio exchanges between Lando Norris and his team during the Belgium event:
https://api.openf1.org/v1/team_radio?driver_number=4&meeting_key=1265 .

It’s awesome that the data is public and people can build cool stuff around it.

I decided to run a quick experiment and, together with my friend AI agent, drafted a page (source) that lists radio exchanges per driver for the latest event:
https://f1-radio.onrender.com/ (works if the upstream API is responsive).

Looks cool, doesn't it?
👍12
⚙️ Tech Leadership Crash Course #3

Вже за 9 днів ми стартуємо третій потік мого краш-курсу з технічного лідерства. Для підписників каналу діє промокод GOODDEVKNOWS, ви отримаєте знижку 10%. Долучайтеся 🙌

Замість того, щоб (знов) розповідати, який цей курс класний, я хочу поділитися відгуками учасників попереднього потоку. Середня оцінка курсу — 9,5 із 10 📈. Доєднуйтесь і починайте новий робочий сезон із впевненими скілами техліда та чітким розумінням, куди рухатися далі.

👉 Реєстрація та деталі: https://fwdays.com/event/tech-lead-course-3?code=GOODDEVKNOWS
📅 Дати: 28, 30 серпня та 1 вересня
🔥 Залишилося 7 місць!

🔍 Краш-курс — це три великі модулі: Бути лідером, Hard skills, Soft skills.

Ми розглянемо:
Що таке технічне лідерство і як стати хорошим лідером.
Як створювати архітектуру, що вирішує задачі бізнесу.
Як вимірювати архітектуру і бути впевненим, що ви рухаєтеся в правильному напрямку.
Як пояснювати технічні речі так, щоб вас розуміли.
Як проводити мітинги ефективно і приймати на них рішення.

Буде цікаво та корисно!
2🎉2
📖 Spec-Driven Development

Let’s talk more about agentic development. Several month ago I had a thought: the reason AI often produces poor code or software is not because it’s a bad programmer, but because we, the operators, fail to explain clearly enough what we want.

🧠 We need to consider the limitations of human cognition and the common context we share. When we say “I want a button” we already imagine it quite well (e.g., the one from your company’s UI kit), while AI only sees it as the fact that you want a button.

Then I came across this video, where the speaker explains that the new way of coding isn’t about using a better programming language or a better LLM, but about writing comprehensive specifications.

🤖 The other problem is that I don’t want to write long texts to AI. It feels boring, and I’m more productive when I’m typing code instead of text. Is there anything that can help me here? Yes — AI itself!

Experiment

Last week GitHub released a tool called spec-kit (short video here). Essentially, it’s a workflow composed of several prompts. It forces you to first describe your product or feature, then the technologies you want to use. From there, it generates a specification. You can edit that spec as plain text. Once you’re satisfied, it generates tasks. Only then should you ask your agent to start development.

So instead of starting with “I want a button” you start with a rich specification of your product, its ecosystem, and your expectations. This way, the LLM understands you much better.

I quickly tried it and here are the results.

What I asked it to do:
* Generate an app where you select a background and add facts about yourself. It should place them on top of the background image.
* Use React.

I didn’t edit the spec much — just added one feature. It generated something that worked, though I later had to make ~10–15 updates with prompts outside the spec workflow. Still, I think it kept the specification in context while applying those changes. I also liked how seamlessly it integrated with GitHub Copilot.

Repo:
👉 https://github.com/PavelPolyakov/background-with-facts
(see the generated specifications here)

Result:
👉 https://background-with-facts.onrender.com

WDYT?
8🎉2
0️⃣1️⃣ Claude Shannon

I’m finishing a book called A Mind at Play: How Claude Shannon Invented the Information Age. Do you know who Claude Shannon is? Probably not. Yet the Claude LLM is named after him. Moreover, many people believe his name and discoveries should be mentioned alongside Einstein and Turing. So now you know — he was quite an important person, especially for both me and you!

Before Shannon, people were communicating, but they couldn’t articulate what “information” actually is. Why? Because they didn’t know how to measure it. Shannon thought this through: he proved that there is a smallest possible piece of information and gave it a name — the bit. Thanks to him, we can measure information, quantify how much can be sent through a given channel, reduce noise, and much more. All thanks to Claude Shannon.

But today, I want to share something practical from the book: six strategies Claude Shannon suggested for solving any problem.

1️⃣ Start with simplifying. Almost any problem has extra details you don’t need at the start. Focus on the core issue.

2️⃣ Encircle your problem with existing answers to similar questions. Then ask yourself: how can these answers help solve your current problem?

3️⃣ If you still can’t solve it — restate the question. How else can it be described? Try changing the viewpoint.

4️⃣ Break the problem into smaller pieces. Solve them one by one. It’s easier than tackling the whole thing at once.

5️⃣ Problems that can’t be analyzed can still be imagined. If you can’t prove your conclusion logically, assume it’s already true and see what follows. Do contradictions appear?

6️⃣ When you have an answer, stretch it. Can it be generalized further? Can its application be broader?

It’s clear you don’t need to be a scientist to use these strategies. They work just as well for IT problems.

And if you want to learn more about Claude Shannon, you don’t even need to read the book. There’s an excellent documentary on YouTube.
5👍2
🤖 Force ChatGPT to use Python

Did you know that LLMs are often bad at math? When they try to calculate purely based on model weights, they can easily slip. The good thing is that modern models often try to detect when they should use proper tools for math. For ChatGPT, that tool is Python.

And you can do it yourself by simply adding “use python” to your prompt. ChatGPT will then write a noscript, execute it, and share the result. You can even check the noscript to verify the logic.

For example:
What shall be my running pace if I run 4 minutes, then walk 1 minute. So that I finish 10k in 55 minutes? use python


Pretty neat, right? But here’s something even cooler. Today I learned that ChatGPT can also use Python to plot simple charts — and that’s super handy.

For example:
Plot this to the chart:

Jan 2025 Running 13
Feb 2025 Running 12
Mar 2025 Running 13
Apr 2025 Running 13
May 2025 Running 13
Jun 2025 Running 13
Jul 2025 Running 12
Aug 2025 Running 11
Sep 2025 Running 9

use python


Works like a charm.

Why is this important? Because when we share information with others, we should think about how to make it easier to consume. And people process charts much better than plain text. So it’s worth spending a minute to quickly wrap your data in a chart 📈.
👍8
🙎 Face Liveness Check

Recently, I worked on adopting a new technology, face liveness check, and I’d like to share my findings with you.

You probably know that many companies require their customers to go through a KYC (Know Your Customer) process. It used to be done via a video call, but now it’s mostly asynchronous and automated. Usually, you have to upload some form of ID and take a selfie. Of course, there are 🦹 bad actors who try to bypass verification without doing it properly (identity fraud). So the big question is: how can we reliably validate that there’s a real person in front of the camera?

It turns out there are not only solutions from specialized identity verification providers like Jumio or Onfido, but also a solution from AWS. And the best part — you can integrate it just like any other AWS service (S3, DynamoDB, etc.)! 🎥 Check out the demo. AWS checks if it’s a real human in front of the camera and returns a confidence score along with a reference image. They even claim it can detect high-quality rubber masks so fraudsters can’t trick the system this way. What I also found amusing is the 🌈 “rainbow dance” the UI makes you do — projecting colors on your face and analyzing the reflections. Honestly, it’s pretty awesome!

Another interesting part: AWS requires you to use their UI for this service. Yes, the UI can be extended, but it comes with some limitations. For example, they provide it only as a React component (+ use proprietary AWS Amplify setup). I had to integrate it into a Vue app, and to my surprise (I’m not really a front-end person), there’s already a way to do this! You can build your React app and then wrap it as a web component (see example).

Let’s say we call it face-liveness-ui. It will produce a face-liveness-ui.js file, which you can then include in any application and simply use as:
<face-liveness-ui></face-liveness-ui>


You can even pass parameters and listen for events, e.g.:
host.dispatchEvent(new CustomEvent("face-liveness-ui:success"));


The pricing is also quite low it costs less than 2 cents!

Pretty cool stuff
👍8
🧹 Clean Your Mac (or not)

Recently on Twitter, I saw a mention of a CLI tool that promised to free up space on my Mac. Disk space is definitely one of my pain points. Even with 500 GB, I often get warnings that there’s no space left and that I need to delete something.

The tool is called Mole, and it’s open source on GitHub. There’s only one problem: security. I’m a little hesitant to run random CLI tools that have full access to my file system. With Mole, I had double doubts — it’s called “Mole,” and it comes from a developer in 🇨🇳China. That sounds a little suspicious, doesn’t it?

At first, I thought: if they were developing and distributing spyware, they would probably try to hide it better instead of being so straightforward. But we live in a meta-ironic world, and maybe they’re playing on a different level, so people like me end up installing “Mole from China” on their laptops themselves.

Anyway, I wanted to check it more carefully. I browsed the GitHub repo — it looked decent. People were submitting issues, and the maintainer was pushing updates. Still, I wanted to be sure, so I installed it via Homebrew, checked the source code, and even copy-pasted the bash noscripts into ChatGPT to review them. The LLM said they were fine 📈.

So I ran mo clean --dry-run. Everything went fine. Then I ran mo clean for real, and again there were no issues.
Overall, I recovered about 70 GB of space, and everything is still running smoothly.

I’d say I recommend this tool, it has a nice UX and works well. But in the end, it’s up to you whether you want to install Mole from China on your laptop 🙌.
👍7
🔄 What goes around, comes around

Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live.

Do you know this quote? Well, it just happened to me.

When I joined car2go, one of the first tasks for our team was to introduce a new search. The old one was based on the shared database, essentially a complex SQL query. It worked, but there was a bigger problem: this setup blocked the introduction of microservices and new teams.

So we fixed it. We introduced Elasticsearch and built two Node.js + Fastify services: customer-search (for searching), customer-search-feeder (for listening to updates and feeding them into Elasticsearch).

I still remember the complications with upserts and message ordering. In the pre-GPT era, I hacked together a noscript in Painless to decide what needed to be updated or not. The first insight from that work? “Painless” is a misnomer. Writing in that noscripting language was quite painful, especially since you couldn’t test it in isolation.

What happened next? I moved on to another team, and customers-search (and its buddies) moved to a different one. Fast forward 8 years to October 2025: we’ve just learned that one of the many Free2move teams will be shut down, and we’ll take over their workload. And guess what was on their plate? … customer-search!

Now this service has come back to me. What surprised me most is that in all these years, it hasn’t changed much. It still runs as it was designed, and even that old Painless noscript is alive and doing its job.

Here’s the lesson: only good software becomes legacy software, because it works so well, nobody has a reason to replace it.

So yes, I’m kind of happy to take care of customers-search again.
And indeed — the person maintaining it now knows my address.
👍10
📋 Three Things

This week, I want to share three random things I found cool recently.

1️⃣ The first is an awesome scratchpad called Antinote. It costs $5 (the first week is free), and it’s worth it.

I believe you also sometimes need to copy chunks of text here and there and maybe do some small manipulations with it. What do you use for that purpose? I used to rely on Sublime Text, but Antinote is even more lightweight and comes with some great features built-in, no extra plugins needed.

2️⃣ I recently finished listening to the book Musicophilia by Oliver Sacks.

In this book, the author explores how music is integrated into our brains and stimulates us in different ways. #longstoryshort — it’s integrated a lot. One interesting point he mentions is that music can actually improve your work and help you stay focused. I often listen to something while working, and I agree, it really helps.

Recently, I discovered 🎵this track from the Succession TV series, and I love it. You should give it a try too.

3️⃣ Finally, there’s an awesome talk about the current state of space exploration from the perspective of the European Space Agency (ESA).

Yes, European — not NASA! It turns out that ESA is also doing a lot: amazing ongoing experiments and some super interesting plans for the future, all aimed at learning more about our universe. I highly recommend watching it, at least to understand what gravitational waves are and how incredible it is that we can now detect them (they literally bend spacetime!).

When you have something interesting to share too, feel free to drop it in the comments!
👍63