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
How to build a career as a Senior developer: Staff+

During this week, we've explored the role of Staff+ engineer from different angles. I hope I was able to convince you that this role should not be perceived as a simple noscript, but might be an entity that brings benefits to you and people around you.

We can definitely say that Staff+ role is:
1. Impactful. Staff+ people have more impact on technology, people, and business success, than other people around.
2. Fun. Being Staff+ you have access to the questions and decisions at their early stages. You are one of the stakeholders, you are one of the people who can make decisions.
3. Rewarding. According to the last salary report we can clearly see that Staff+ roles earn more than Senior roles.

And it still allows you to stay on the technical track and not be a people manager.

Do you want to follow this path? We can do it together!

⚠️ Today I want to announce a workshop, which I'm going to hold on the 21st of April. The workshop is dedicated to the role of Staff+, how to get there, and the skills that each good Staff+ engineer is expected to have. The one which allow them to do their work efficiently.

We are going to talk about:
1. Who are Staff+ engineers, which traits do they possess, and how do you prepare for your promotion.
2. Hard skills. Architecture for developers and modern software architecture. You will learn the baseline that would allow you to design and implement effective architectures — the ones that help businesses and are maintainable.
3. Soft skills. We are going to learn how to explain anything to stakeholders or people who are less involved in the topic. How to design and facilitate effective meetings — the ones where everyone feels heard and participants are committed to the decision.

Each block has 💪exercises, which allow you to practice learned skills right away.

This workshop is a great opportunity to learn the skills and tools that will strengthen your SE expertise and make you a desirable hire.

Important. The language of the workshop is 🇺🇦Ukrainian.

For the participants of this channel, there is a special 20% discount. Just visit this link. The number of places is limited to 25 and some of the places have already been taken. I'm looking forward to see some of you on the workshop. Let's level up our engineering culture and build better solutions 📈
👍6
Forwarded from Anna Loseva
Друзі, привіт!

Нагадуємо, що у неділю 21-го квітня ми проводимо воркшоп: Як будувати кар'єру senior-розробнику: Staff+ від Павла Полякова, Principal Engineer в SHARE NOW.

👉 Приєднуйтесь зараз: https://bit.ly/3vhFDHa

💡Як виглядає кар'єра після рівня Senior? Що роблять Staff+ інженери? Як підготуватися до цієї позиції та вдало пройти промоушен?

Ми розглянемо:
📌 Що та як роблять Staff+ інженери. Як бути ефективним для бізнесу, для колег та ще й отримувати задоволення від своєї праці.
📌 Архітектура та розробка. На яких принципах ґрунтується експертиза та рішення Staff+ інженерів. Це працює у будь-яких галузях.
📌 Взаємодія з командою та стейкхолдерами. Як пояснювати речі так, щоб ваше рішення розуміли та були готові його разом виконувати.

👀 На цьому інтенсиві ви розберете роль Staff+ з усіх сторін. Зрозумієте, чи підходить вам цей шлях. Усі теми ми одразу ж закріпимо практикою.

Розвивайте свою карʼєру з Fwdays!
👍9👎21
👆And I want to remind you, that for our close community there is a promo code GOODDEVKNOWS, which gives you 20% discount.
🎉2
I've finished reading the "Learning Domain-Driven Design" book and want to share some thoughts that were the most important for me.

The thing that was most new to me was the types of the subdomains concept. We know that any business can be divided into domains or subdomains, we've met several types of subdomains, and we've been operating this for a long time. But DDD specifies them and suggests, that we work differently with any of them.

In DDD there are three types:
* Core subdomain(s). This is what makes your business different from others. This is your competitive advantage, and the one where you are the experts. This subdomain is the most complex and volatile. It shall be developed in-house and you shall invest in its architecture so that it remains maintainable. What brings your company money?
Example: Imagine our business is a call center — Unique logic of calls distribution.

* Supporting subdomain(s). This is what you have to have to make your core subdomain work. Maybe there are solutions on the market, but they do not satisfy your requirements. So the company decided to develop it in-house. The complexity of such shall be lower than the core subdomain.
Example: internal CRM

* Generic subdomain(s). This is what every company in the industry should have, and they do it the same way. If it's possible, this functionality will be bought as SaaS or it can be outsourced.
Example: authentication system

Good developers shall understand the business of the company well enough. To be able to identify (together with business experts) the types of subdomains. Then we know where we should invest our time and resources. We can explain to ourselves and the stakeholders that it does not make sense to continue to develop our own in-house authentication system.

Subdomain types may change. With time, you can discover that the one that was generic yesterday brings the company more money. So it makes sense to take care of it, and the way we deal with it may change.

Subdomains are, as well, a good way to split the work between teams. No two teams shall work on one subdomain.

In general, I would rate this book 7/10. Have you read it?
👍151
Forwarded from Fwdays
💡Fwdays запрошує розробників на безкоштовний вебінар з розбору позиції Staff+!

🤔Що робити, коли вам вже тісно в ролі Senior, і ви прагнете далі розвиватися в технічному напрямку?
Дізнайтеся про особливості позиції Staff+ та її специфіку в різних IT-компаніях. Ми розберемо приклад промоушену, і ви ознайомитесь з інструментами, які допоможуть вам розвивати кар’єру в цьому напрямку вже зараз!

🕖Коли? 16 квітня (вівторок) о 19:00
👉🏻Участь безоплатна за попередньою реєстрацією: https://bit.ly/3TMUZvE
👥Кому буде цікаво? Senior розробникам, архітекторам та всім, хто планує розвивати свою кар'єру у технічному напрямку.

🗣Спікер - Павло Поляков, Principal Engineer в SHARE NOW. Має досвід 15+ років в IT, 3+ роки на позиції Staff+. Автор ТГ-каналу GoodDevKnows та статей на Medium і DOU.

Розвивайте свою кар’єру з Fwdays!
🎉4
👆It would be great to see you at our free webinar. Just shortly before the workshop we are organising the webinar to talk about Staff+ overall and cover my promotion experience. Also I'm going to share three tools which you can use right away to strengthen your chances for the promotion!
Who are Staff+ webinar starts at 19:00 Kyiv time. Let's meet!
👍9🎉3
Hi people,

The webinar recording is available online: https://www.youtube.com/watch?v=hSWfaFXeeXU

Please, to those who were there, write a short feedback on how was it. What did you like and what can be improved.

To me it was the first webinar. What surprised me and was unexpected, that there is a delay between Zoom and YouTube. And this delay is pretty big for the cognition. I first was not even sure if you see how I change slides.

Thanks to everyone who joined 🙌
👍16
#GoodDevDigest

💸 Start with Render, not AWS

I started my pet project #1to100 with AWS and I paid 50€ monthly for the workload setup. In February I did not work on it and I still paid 50€. In March I wanted to continue and the first thing I did — I moved out from AWS.

Render has much better DX. I was able to migrate during 1 day. Now I have a Web Service node there and a database. Both running on the free tier. Which is enough for development, even if I will upgrade my setup — I will pay less than I paid to AWS. I even got deploy from master for free, which I did not had time to configure with AWS. The only thing which is missing there is an object storage, so I have to continue to use S3. But this is fine and render has this in their pipeline.

I enjoy render.com, first of all because of the convenience of the setup. Next time would start the new project I will do it there.

🦙 Try llama 3 on your local machine

Few days ago Facebook released their AI model Meta Llama 3. And what is cool — we can run it on our machines. I did not manage to run it properly using LM Studio. But I was advised to use another stuff — Ollama. This tool has swiftly. You can also easily run a UI for it, using Open WebUI.

The benefit of the model (besides usual stuff, that it is supposed to be smart) is that the generation speed is really high, it answers literally immediately. I use regular Apple M1 Max. Cool stuff to have an AI running locally!

🗺 Explore your JSON

It happens often, that we have a giant JSON and we want to find something there. JSON CRACK is here to help. It will render your JSON as a nice diagram which is easy to navigate. Just try it.

🦈 A peculiar fact about sharks

I'm currently reading "Why We Sleep: The New Science of Sleep and Dreams". The book is great and full of facts, though the font is small and there are not that many pictures. So I read slowly. But the author shared an interesting fact — before scientists thought that sharks do not sleep, because their eyes were always open! Sooner than later they found out, that sharks just don't have eye lids and they DO sleep.

Now you have a fact to impress your friends!

⬛️ That was it for today.
👍173
#GoodDevDigest

🖼 I started to use Figma

Recently one random TG channel posted a random ad which was advertising the intensive course (marathon) about Figma for UI/UX designers. Obviously it's just a selling funnel for one of the modern IT schools. I'm not going to advertise it. But I thought it's an opportunity for me to learn the new instrument, so I participated.

Throughout the "marathon" I was just repeating what tutor did and now I can do Figma. Enough to cover my own needs.

How Figma can help a good dev:
* I will use it to prototype my #1to100 app. I was struggling to create a design, because I was doing it right away in the app. Now I can quickly draft it there, see and feel how all the screens may look like.
* Figma has their own Jam board or just board like Miro and Mural. We can use it to collaborate (boring, and Miro does better) and to draw nice diagrams. For example, with Cloud Icons plugin we have all the ... cloud icons quickly available!

You can also do this marathon at your own pace (1, 2, 3), also I was recommended this channel to learn even more Figma. ⚠️ This message is not an ad, I don't know anything about the school itself.

Does anyone of you use it for some purpose?

🐘PostgreSQL unknown features

Nice article about the less known features of PostgreSQL. We do know, that PostgreSQL is a great thing. Especially I like it's JSON capabilities, which allow us to store and documents and do complex queries about the content. But there is more, this article covers stuff from the unknown unknown part of our knowledge base. We just did not know that it's there so we would not search for it.

🌍 localtunnel — free ngrok alternative

ngrok is a great tool to tunnel internet request to your local server. But it quickly evolved to the paid one. You need to register, they added bazillion features that you don't need, etc. If you are looking for the free alternative — consider trying localtunnel. For example, it shall allow you to route webhooks to your local server.

⬛️ That was it for today.
👍14
#GoodDevDigest

📚 I listened to the book "Same as Ever"

The author promised to talk about the concepts or traits which remain the same despite the human progress and change. Interesting!

The book is quite short, only 6h and easy to comprehend. I think I was expecting more from it, but for the 6h the content is good. Overall the 2/3 of the book revolves over the simple idea that there is one thing which does not change — presense of uncertainty. Thank you, author, that helps! It does not make the author less right, he is right. We shall accept uncertainty and how things which are out of control influence our life.

But there was interesting insite from the book. It's about the people who we know think different. For example, Elon Musk, Albert Einstein, Kurt Gödel. We know they think different and this allows them to reach certain goals and we may like it and respect them for this. BUT, we also may think that if they are great in certain traits of the complex matter, than they are also great in the more basic stuff (family, friendship, food habit, sport, etc). But they are not! People who think different do not think different because they are like average. This differences usually applies to the rest of their personality. And it's not good or bad, but it's unfair to expect it the other way.

🎧 Podcast episode "Expectations And Limitations Of AI-Assisted Software Engineering"

It appeared that Dave Farley, the author of "Modern Software Engineering" has a podcast. And he invited Birgitta Böckeler there. I've worked with Birgitta when SHARE NOW hired ThoughtWorks to help us to incorporate big Java monolith. So it was twice interesting to hear what they think about the AI assistants.

Insight from the podcast — how Birgitta suggests to evaluate the code assistants. We shall not answer the question if they are good or bad, if they replace us or not. But answer the more simple one — do they bring some added value to your work. In my case they are, I like github copilot and feel that it brings value.

🍪Cookie

Just this week we had a Tech day with our newly formed team. The team name is Customer Core and since we are tight on budget and designers time — we don't have a proper logo. So our logo is ⚛️.

Recently I was browsing amazon for the models of the brain, like this one. I will definitely buy one for myself at some point, but that's another story. And I thought a cookie cutter in the form of the brain. I saw that it's 3D printed and thought that maybe these models are available publicly. And yes, they are, you can purchase one, print it and make brain cookies yourself.

So I did the same for the atom cookie. I purchased the model and made cookies, the team was happy and I was happy.

⬛️ That was it for today.
🎉53
How long do you sleep at night?
Anonymous Poll
3%
<5h
10%
5-6h
30%
6-7h
46%
7-8h
11%
8h+
📚 Why We Sleep: The New Science of Sleep and Dreams

I just finished reading the book about sleep and, as usual, want to share my findings from the book with you. Often there is a perception that sleep is something that is NOT that important, it is something that is stealing our time, something that prevents us to live our life more hours. It turns out that it is...not true.

🧘 Is sleep a time when we relax? No, sleep is the time when our brain works and, sometimes, works as hard as if we are awake. We need sleep to process what we had today and prepare ourself for being awake the next day. So we can ... sleep again. Author also slightly asks the question — what if we live to sleep and not otherwise? Because of us as biological creatures sleep is one of the best states, why do we bother to awake?

🥱 Why do we want to sleep? First — we have suprachiasmatic nucleus in our brain. This thing tracks light and sets our circadian rhythms, so that we live within the 24-25h cycle. This rhythm gives us the "awake" urge. Secondary — when it is getting darker our brain starts to release melotonin. This way our body knows that, in principle, we can go sleep. Third — when we are awake we accumulate adenosine. When we have enough of it, than we want to sleep.
Together — when our circadian rhythm tells us that we do not need to be awake, melotonin tells that we may sleep and adenosin makes us sleepy, than we want to sleep.

☕️ Coffee, does it make me awake? Coffee does not make you awake, it just blocks those receptors that feel adenosin. So that you do not feel the sleep pressure. But when the effect from the coffee dissolves, then you still will feel the same adenosine. Half-life of the coffee is 4h. That means, that if you drink coffee at 4 p.m., that it will still affect you at the time you go to bed. Be careful taking coffee after midday, it might affect your sleep.

🛌 What happens when I sleep? We sleep in 1.5h cycles. There are three phases — deep sleep (NREM), light sleep and REM (rapid eye movement). At the start of the night we experience more NREM sleep, closer to the awake time — more REM. All phases are needed.

NREM — during this phase our brain distributes what we have learned today (and not only) through other parts of the brain. This is why sleep is important when we study. Even more, based on our perception our brain knows what it should remember and what not. After this phase our operatin memory is fresh and we can operate the next day.

REM — our brain bumps into each other the information we already know. This way we can derive new ideas. We see dreams in this phase. This phase is very important for the emotional development and processing of the emotions. Our brain reviews the emotional experience of the day, removes the emotional part and writes it as autobiographical memories. This is why the next day we have less pain thinking about the loss of our favorite football team.

light phase — nothing specific is said, but our brain also cleans itself up from the chemicals from yesterday (glia), so that the next day we feel ourself fresh.

😮‍💨 When we are sleep deprived. In case you do not sleep 7-8h daily you ARE sleep deprived. When we have not enough sleep — everything is bad. We control our emotions worse, we take less initiative, we drive worse, our immune system underperforms. There is another trick, people just do not feel that they underperform, they think they are fine.

It is proven, that you can not sleep it over on the weekends. I mean, you sleep <7h daily, and then sleep 10h on the weekend. It will not compensate your sleep deprivation. We, we as a species, have to sleep 7-8h daily to be in top shape.

There is no hack to sleep. Sleep is integrated very deeply to our biological body. We have to sleep 7-8h. Sleep deprivation leads to the illnesses and all the bad things.
👍15🎉3
⚠️ Attention, fundraising

🛻 Reliable pickup trucks at the front mean saved lives of our military

They help to quickly get to enemy positions, transport supplies and ammunition, evacuate the wounded and protect them from enemy drones.

That is why I am joining the @tazyky.ua fundraiser for pickup trucks for the fighters:
- 92 ОШБр
- 95 ОДШБр
- «Буревій»
- «Хартія»
- 208 ЗРБр

🎯 My goal: 10 000 UAH
Overall goal: 1 000 000 UAH

🔗 Link to the jar:
https://send.monobank.ua/jar/7yFCZtpG3q
🧾PayPal:
me@pavelpolyakov.com
💳 Card number:
5375 4112 1788 8226

You can also join our team by writing to @tazyky.ua to get all the necessary information

P.S.: all assistants also participate in the drawing of unique prizes
8👍8👎1
🎉 We have crossed 10.000 UAH! 🎉
Thank you everyone, you are incredible.

There are also some money on the PayPal.
So I've updated the goal to 15.000 UAH and we move forward.

🔗 Link to the jar:
https://send.monobank.ua/jar/7yFCZtpG3q
🧾PayPal:
me@pavelpolyakov.com
💳 Card number:
5375 4112 1788 8226

Here you can also see my little performance from the instagram fundraising.

Thank you all ❤️
🎉103👎2
#GoodDevDigest

🦆 DuckDB

Recently met an interesting concept. What if you can load ANY information to memory and do SQL queries against in? With DuckDB this becomes possible:
SELECT *
FROM read_json('todos.json',
format = 'array',
columns = {userId: 'UBIGINT',
id: 'UBIGINT',
noscript: 'VARCHAR',
completed: 'BOOLEAN'});


Given the price of the current compute and how powerful are our private machines, it makes sense.

📈Load testing

Simplest thing you can use for the quick load test is still ab. For more complex cases I once used vegeta.

There is now new kid on the block — oha. Written in Rust it is lightweight cli app which also has nice terminal UI. Will use.

📋Lists comparison

Several weeks ago, for a quick analytics I had to compare four lists. To understand how similar are they. I quickly found and online tool which have helped me. You just post txt of the lists there and it does all the basic math about it. What surprised me, that it also draws Venn Diagram, so you can visually see how these lists overlap.

🇺🇦🚙 Five pickup fundraiser

Last but not least. You still have a chance to donate any amount to help UAF to fight 🩸putin. We already gathered quite a sum and I'm thankful to you. Let's do another push. Please, donate.

⬛️ That was it for today.
👍82
#GoodDevDigest

Say No to Notch. For a long time I got pissed that I could not find half of the applications in the menu bar of my Mac. Recently, I learned, that there is a free app to remove Notch. Yes, it makes your screen a bit smaller. But I did not feel it. From the other hand it brings back the convenience and transparency of using the menu bar — all icons are there.

🧹 Unclutter. Another app I want to recommend. Quite often, I need to attach an image or file to the mail. So far I was struggling the next way — put that file to the right bottom corner of my desktop, than drag it to the mail editor. But now it seems I found a better solution. Unclutter does four things for you:
* it is quickly accessible
* it stores history of your clipboard
* it has an area to store files
* it has an area to store texts

This reduces my cognitive load a bit, and each bit is important.

📚 I read Building a Second Brain and started to use it. This book describes a simple framework to organise your digital notes. And by having them it is expected, that you will unload your biological brain and give it more resources for doing what it can the best — creative work. There are two abbreviations which you need to know: CODE (Capture, Organise, Distill, Express) — this is the way you capture the notes and PARA (Projects, Areas, Resources, Archive) — this is how you store them. The framework is quite simple and quite abstract, it is enough to start with and at the same time each of us can adjust it to their own needs.

12 questions exercise. In Building a Second Brain book there was a passage about Richard Feynman and the way he processed information. He said, that according to his own observation each of us has just a handful of topics which we are curious about throughout the life. He had 12. And each time he learned any new information he quickly tested it against each of these 12 topics. Will it be useful there, can I apply it to this topic, does it improve how I understand the topic? If so — this was useful information.

To me it's an interesting perspective. Indeed the things I'm curious about are almost the same through out the life and even if they change — they do it slowly. I didn't yet collected my own 12 questions, but it shall be an interesting exercise to do. What are yours 12 questions?

⬛️ That was it for today.
👍12🎉21
Good day, people,

I want to ask you for help 🙏, especially, from people from the 🇺🇦 IT market (but not only). Please, help me to understand how do you perceive Tech Lead position/role and technical leadership.

I've prepared a small form to fill in: https://forms.gle/jeScqieyyaeWDbhX8 .

Every contribution counts.

Thank you ☀️
👍2
Have you heard about GitHub Copilot? Probably yes. Some of us (I) even pay for it. But are there alternatives and how the AI coding assistant market looks like? Recently I've spent some time to study this and want to share my findings.

🎥 AI assistance beyond code: what do we need to make it work?

Nice talk from one of the persons I was working with. She shared ThoughtWorks experience in investigating the AI assistance field. Key takeaways:
1️⃣ For AI it's right now easier to CREATE new code, rather than CHANGE the existing one. This is why we see lots of demos of how unexperienced people create new stuff using AI (cursor + v0). But we do not see how it is used at scale or the tasks we do daily — there is a large code base, you need to integrate feature.
2️⃣ AI is good in helping you to think in the divergent way. For example — put the story draft there and ask what have you missed? I till help you to improve it and check it from different angles.
3️⃣ How can it help on the organisation level? Codify practices and sharing prompts. Do same things the same way in the organisation. For example, create a prompt for STRIDE analysis and do it the same way always.
4️⃣ Tools like Continue allow you to create custom slash commands (/stride), this way you can share it within the organisation.
5️⃣ AI works better when it has enough of context. It is not enough to just use an LMM which was trained on big amount of data. You need to add YOUR context (code base, wiki, domain expert input, stuff which is unique to your organisation). There is no answer for this question yet, but tools try to start solving it, for example Continue allows you to add context together with your prompt.
6️⃣ Current market state — no magic without some investment. There is no one tool, we need to think how to integrate it in the best way. Right now, choosing to use AI on the organisation (not individual) level always add a big overhead.

I produced too much content for one post, so I will post the 2nd part tomorrow. There is more to share 😉
👍71