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
Уже наступного тижня стартує другий потік мого краш-курсу з технічного лідерства. Для читачів мого каналу — спеціальна пропозиція: за кодом GOODDEVKNOWS ви ще два дні можете отримати знижку 20%. Потім — лише 15%. Долучайтеся 🙌.

🦸 Є сумніви, що ви можете бути хорошим технічним лідером? Стаються напади синдрому самозванця? А хто взагалі ці "хороші лідери"?
💚 Це не проблема. Лідерство — це лише навичка, якій можна навчитися.
Запрошуємо на триденний краш-курс із технічного лідерства!

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

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

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

🗣 Що кажуть минулі учасники:
* Дуже багато корисної інформації за стислий термін курсу. Курс дуже концентрований.  
* Структурування, виділені основні теми; цікаві практичні задачі; робота в команді над hard skills.
* Багато завдань. Теми, про які я не знав, що вони існують, а вони є важливими.
* Нова інформація + вижимки з цікавих робіт.
* Теорія поєднувалася з практикою; продуманий план лекцій. Є що пропрацювати та прочитати.


Буде цікаво та користно!
👍71
📅 12 Week Year. Closure.

I want to finish my story about the first iteration of the 12 Week Year. I completed it on the 30th of March and then took a three-week pause. Now I’m in the 2nd week of my 2nd iteration.

Main conclusion: I can confidently confirm that during the active 12 weeks, I accomplished more than I did in the previous year for the chosen topics. The methodology works, and I will continue to use it.

At the beginning, I chose two goals: 🇩🇪 improve my spoken German and develop my 🖼 Instagram account. Along the way, I added 🧘 health. Let’s see what I achieved during these weeks.

🇩🇪 Improve spoken German
- Completed 60 lessons in the Üben app
- 11 lessons on italki, which is 6 hours and 30 minutes
- 10 podcasts of 6 minutes each
- At least 7,000 words written for podcast noscripts
- Read the first book in German
- 2,000 words of article retellings

🖼 Instagram development
- Revived the account
- Published 18 Reels
- 1 Reel went “viral”
- Published 3 posts
- Gained 555 followers
- Learned how to edit videos
- Learned how to add subnoscripts
- Create better content now

🧘 Health
- 40 liters of water (8 weeks, 5 days a week)
- 200 minutes of meditation

To me, this is a lot! And what I like about this methodology is that it’s as simple as “checking the checkboxes.” There is a week, there are checkboxes that you have planned, and you just need to take actions so you can check them off. I use this Notion template to manage it.

🔑 My key learnings
1. It works!
2. Taking small steps toward the goal is enough. It gives a sense of progress.
3. Every action takes time—more time than you expect when you imagine it. You need to account for that.
4. Integrate your work goals into the plan. You work 8 hours a day anyway, so why not add structure to it?
5. The plan is not set in stone. You can change and adapt your weekly checkboxes, but stick to the goal.
6. Just start

I know some people have already been inspired by the idea of the 12 Week Year methodology from my posts. I hope more people join
👍11🎉3
🤖 Trying out Codex

Several days ago, OpenAI introduced Codex, a cloud-based software engineering agent.
Today, I realized that I have access to it and decided to look around.

I connected it to my open-source repo https://github.com/PavelPolyakov/fastify-blipp. When you connect the repository, Codex creates an environment for it and runs some "default" tasks against the repo.

Among the first "default" tasks, which started the execution automatically (smart), there was:
* 🐛 Find an important place, find a bug, and fix it

🧐 My experience:
1️⃣ Codex found something and drafted the code change (🖼 #1 in the comments)
2️⃣ But it was not able to run tests; it shared the error that cross-env is missing
3️⃣ I asked it to fix it
4️⃣ 1+ minute of public thinking and executing bash commands. It suggested changing the test command (🖼 #2 in the comments)
5️⃣ I asked why it removed cross-env
6️⃣ 1+ minute of public thinking and executing bash commands. It said that it did not remove anything and cross-env is in place (it was a lie). It suggested installing dependencies before the test run.
7️⃣ I asked to install dependencies and run tests
8️⃣ 1+ minute... it said that the test run still fails

👩‍⚖️ Overall observations:
* It's a good start for the product; things feel well thought out
* I like that they stream the model's "thinking," and it's possible to follow it, but you may also ask yourself, WTF are you doing?
* When the model "thinks," it feels like you have no impact (maybe I can get used to it)
* It was also looking for an AGENTS.md file to read instructions for the coding agent. If I would have it, I guess it would have been beneficial.
* I had no expectations and haven’t learned any specific way of working with the engineering agent so far (other than a "simple" chat). So, I consider my experience relevant.

Overall, it still looks like a loop where the model is executed with some context, and that model has access to the "tools". Pretty much like this.

Have you tried it? Feel free to share your experience.
👍4
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