Good dev knows


Kanal geosi va tili: Ukraina, Ruscha


Everything what the good dev shall know. Stories, hard skills, soft skills. Regularly.
Instagram: https://www.instagram.com/gooddevknows/
Questions: @PavloPoliakov

Связанные каналы  |  Похожие каналы

Kanal geosi va tili
Ukraina, Ruscha
Statistika
Postlar filtri




Who are Staff+ webinar starts at 19:00 Kyiv time. Let's meet!


👆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!


Fwdays dan repost
💡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!


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 lover 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?

935 0 10 2 15

👆And I want to remind you, that for our close community there is a promo code GOODDEVKNOWS, which gives you 20% discount.


Друзі, привіт!

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

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

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

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

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

Розвивайте свою карʼєру з Fwdays!


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 title, 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 📈


📚Staff+ on books

Today I want to share with you a list of the MUST READ books for the Senior+ grade. Yes, let's talk Senior+. Not everyone needs and will be a Staff+ engineer by title, but the knowledge from this books will help to get into the right mindset and master tools that will distinguish you as an expert.

1️⃣ Clean architecture by Robert C. Martin. This book was the one that taught me, that we write code to help business. Potentially, there shall be no line of code we produce that does not bring business closer to its purpose. This book is more about the application architecture than the workload architecture, but the principles that are explained there can be scaled.

2️⃣ Designing Data-Intensive Applications. For me, this book is an almanack about present technologies. Yes, before this book, I knew that there are relational databases, document databases, graph databases, etc. But I did not have everything sorted out clearly. This book goes over almost all the technologies that might be used during the design of distributed systems and explains them in detail. It will make you a much stronger specialist. Hard skills will flourish 📈.

3️⃣ Пиши, сокращай. Our work, to a high degree, consists of written communication. It's very important to be able to express your thoughts shortly and effectively, make them such, so they can be consumed quickly. This helps you convey your ideas and get information from others swiftly.

4️⃣ Leading Great Meetings. It was the book that made me confident, that I could create and facilitate any meeting. It explains what meetings are, what their purpose might be, and how to effectively achieve this purpose. Also, it provides a simple set of tools that you can use in meetings. It's a great start into the meetings facilitation topic.

5️⃣ Nonviolent Communication. Satya Nadella the CEO of Microsoft demanded that top management read this book when he was appointed CEO in 2014. This book changes your mindset about communication and helps you create and maintain a healthy, non-toxic environment. The concept helps both at work and in your day-to-day life. I second Satya and would love more people to read or listed to the book.

These five books will definitely make you a better specialist. The one that is confident in their actions, the one that achieves results, the one that people want to work with and companies want to hire 😉

Please, share your favourite books in the comments. I'm looking forward to update my reading list.


🪨 Staff+ on being a bedrock

During the Technical Guidance Training, an internal training, which we have at SHARE NOW we ask people from the leadership positions to tell their leadership stories. It's an open form where people talk about the things they consider important. One person, the head of our tribe once shared their ⚡️ insight that I consider important: when you are in the leadership position, people look at how you behave.

Pfff, you may say. I look like anyone behaves, that's what our monkey-like species do! But hear me out. In any team, group, or party of people, we have leaders. Assigned or the ones who emerged themselves, but we have someone to look at and assess their behaviour. Staff+ are also leaders, your team and other people in engineering are watching you. This is your privilege and another tool that you can use to help ourselves and business.

How?

1️⃣ Be confident. Once, when I wasn't staff yet, I was pairing with a person who had just finished university and started to work for a big consulting agency here in Hamburg. We had a task to write some tests to solidify critical software migration. I took this as an opportunity to learn Java and overall, I thought, that I was learning more from this person than they from me.
Later, I got feedback from their supervisor that they are happy with my contribution to this task because my calm and steady approach has brought confidence to the task. My pairmate was quite hectic initially, he knew the theory, but he was under the pressure of the task size and how critical this task was. From my side, I was not scared at all. I did not know what to do, but I was confident that we could do it. My behaviour made them feel safe and do the job.
As Staff+ you need to radiate confidence and calmness. We know that this is only a job, and we can do it. It's only a matter of time. Other people will follow you.

2️⃣ Normalise things. Some people might be hesitant to ask questions, because they consider them "stupid" and obvious to others. There are lots of such people, actually. You, as Staff+ can change that — just ask a "stupid" question and show others that it's safe and helps to achieve the results. This way, you normalise some behaviour in your group.
You can normalise other things as well and make your team stronger this way:
* fail, take public accountability for the failure, and fix it — this way you show that making mistakes is safe;
* on the meeting, ask a person who has something to say, but is silent, about their opinion. Make a room for them to speak out.
* praise or celebrate in public — normalise acknowledging the good things 🎉

3️⃣ Be positive. You have to be positive you don't have any other choice. Staff+ it's not a role where you can say — things are shit and I don't know what to do about it. Things might be tough, and it's fine to recognise that. But you need to indicate that there is a way out or that you, together, will figure it out. Because if you don't do it, people might lose hope at all, and this is not what we want. For any problem, after a short period of grief, there is only one question to ask: what can we do about it?.

Staff+ behaviour might be an effective motivation for people around. Let's use it wisely. You and your actions shall lay down a solid bedrock upon which it's possible to build and strive to success.


⚙️ Staff+ and architecture

When I started professional software development the world was different. It was fine to slap PHP here and there and you got your software masterpiece. Frameworks were not a thing for me. I remember I had a dialog with my friend that time and we both agreed that nobody needs a framework because "we can do it ourselves". It was a time when each company had their own framework, which at first was nice and slick but than quickly grew to 🧟‍♂️ Frankenstein as more and more of the new functionality was added. Reality has proven, that it was impossible to maintain such, which meant it was impossible to grow the business.

There are still businesses that bring their owners thousands of dollars and consist of a the huge PHP file and no frameworks. But these are exceptions and, usually, are maintained by the small amount of people.

Architecture for the Staff+ engineers is not a question whether to use PHP or Go or to use framework or not. From my perspective architectures which Staff+ is helping to build shall confirm to two purposes:

1️⃣ It shall help the business reach its goal

2️⃣ It shall be maintainable in the long run

Good Staff+ engineer possesses the skill of balancing between these two goals. There is no single article or book that will help you to understand how to find this balance. You rather master it through out your life.

However, there are quite good tools that we can use as a baseline when we reflect on the architecture. I like these two:
* AWS Well-Architected Framework. This framework explains to us, that each successful software solution (and business) relies on six important pillars: operational excellence, security, reliability, performance, cost optimisation, sustainability. When we have this foundation solid and developed relatively equally, then we have a higher chance of building a long-lasting software setup.
* DORA metrics. Four metrics that can predict if the engineering component of your business is performing well. Deployment frequency, lead time for changes, change failure rate, time to restore service. Investing in these four is a safe investment and will definitely help your setup to keep going.

As Staff+ engineers we are not expected to be the best architects and experts in their company, but what we shall do — we shall apply our expertise to make sure that the architecture performs it's purpose. Which means it will be something which teams can maintain and develop throughout the years and it will help business to achieve it's goals.


Do you have Staff+ positions in your organisation?
So‘rovnoma
  •   Yes
  •   No
177 ta ovoz


💭On being Staff+ Engineer

It has been almost 3 years since I officially assumed the role of Principal Engineer at SHARE NOW. Having in mind that promotion to this role usually happens when you are in the position, we can count 3 years.

I already shared a brief description of this role. But now, after being Staff+ for a while, I think I can tell even more. I want to dedicate this week to the Staff+ positions and talk about my experience and ⚡️ insights.

Let's start with a high-level overview. And think who`Staff+` people are NOT.

When you are good Staff+ you are:
1️⃣ NOT the one who picks up a task from the board and "works". It is not written anywhere, but it is also expected, that Staff+ people will choose what they work on based on their inner priorities. Yes, there is the board for the team, but you, as a professional, shall also have a high-level overview and consider where you invest your time, so you contribute the most into the domain's success. Sometimes it is a ticket, sometimes it's a cross-team alignment, and sometimes it's a quick work on the proof of concept that will help your organisation. It's your choice, and the price of the choice is high.

2️⃣ NOT an individual contributor. In the role of Staff+ you are expected to be a multiplier. You shall not do complex stuff alone in stealth mode, just because you think you know how to do it the best way. You shall enable people, improve processes, and arrange available things in such a way that the desired result becomes closer. You can not do this alone. You need to be and act as a lever, that helps business to achieve success.

3️⃣ NOT a people's manager. You are not their manager, but you are their strong ally. You are the role model in the company, and engineers watch what you do. They come to you for advice. It's your privilege to be useful and help people to 🌱grow. Staff+ engineers shall directly or indirectly mentor tech people from engineering.

4️⃣ NOT a scrum master. You are not the one who forces your team to follow all scrum ceremonies, etc. But you are aware that agile processes help to build sustainable businesses and tech cultures. You are the one who knows how to use agile tools effectively; you can organise and facilitate a meeting so everyone will feel heard, and at the same time, your team will reach an agreement and commit to the decision.

Staff+ engineers are NOT many things, but they are skilled experts who have different tools in their belt — hard skills, soft skills, emotional intelligence, tarot, you name it. They use these tools effectively to help business to achieve it's goals; that's why they were given this role. And they have ✨fun along the way.

Later this week, we are going to talk more about the skills Staff+ shall have and stories from my experience.

When you have any particular topics you want me to cover, please share them in the comments.


1to100 🚀

Last week, I did not have much spark to work on 1to100. My kids, my wife, and me were sick in turns and this created not the best conditions to work 📉:)

Nevertheless, I managed to do something interesting. 1to100 app is supposed to help users create their own digital art. Make pictures of the numbers from 1 to 100 and then receive their own digital art with a composition of these numbers. I had to create a code that compiles that mosaic from numbers. So I decided to work on that and also involve AI.

📝I created my own digital art:
1. I found a list of 100 art styles
2. I asked OpenAI to generate 100 images, one for each number from 1 to 100 using the specific style. As simple as:
const image = await openai.images.generate({
model: "dall-e-3",
prompt: `Draw a big number ${i+1} at the center of the picture and do not draw anything else. Use ${styles[i]}.`,
});
3. Using sharp lib and chatGPT I wrote a script to combine these numbers into the 10x10 mosaic

Then I had to check numbers manually and regenerate some of them; for some, I had to do it several times. For some specific numbers (58, 63, 93), I failed to get proper pictures. It seems that it's a model limitation; despite a number of my attempts, it is not able to generate a clear number.

The final image size is 260 MB, but on the one I attach, it's also possible to see different styles and be impressed how well, in general, dall-e-3 does its job. All the generations, including the regeneration attempts, costed me about 8$.


1to100 🚀

Another week of working on 1to100 each day at least for 25 minutes. This week I worked on the app for 5 days.

* Last week I focused on the stabilisation
* I converted the api project to the TypeScript project and integrated jest
* Integrated jest and Testing library to the app project
* Started to use bun and not npm, because it seems to be faster and expo's twitter recommended to do so
* Learned that bun has a tests runner, which is supposed to be compatible with`jest`, but it does not. Decided to continue to use jest and not spend time on this right now.
* Tried to upgrade to the Expo SDK 50 and test new camera, but saw some issues. I understand that fixing them will not bring me closer to the release of the app, so I reverted to the @49. Anyhow I made camera screen to look better.
* Found a publishing service, where I can call an API and order the printed poster to your home. Probably will use it to print image, when all the numbers are collected.
* Made react-native-confetti-cannon to fly over the other content, looks great, check out 🎥video in the first comment

How was your week?


1to100 🚀

Another week of working on 1to100 each day at least for 25 minutes. This week I worked on the app for 6 days.

* The website https://1to100.app still shows 404 and it's ok
* I worked on the camera view and now it looks much better. Seems that expo-camera is good thing to start with, but it sucks in general. Later I can switch it to something more smooth.
* Integrated PostgreSQL to the api, now the information about the numbers which customer collects is stored there. I used typeorm but plain JavaScript, not TypeScript for now. So far I like the library.
* Integrated sharp to do previews of the images, works really smooth. I now show previews in the grid. Also it seems I will be able to glue the images together in the future using the same lib.
* I understand that I need to integrate tests otherwise even after just 10 days of development it is difficult to make changes and be confident that something works. Shift tests left. Even for your pet projects.

Can anybody already guess what the app is supposed to do?

Will attach a 🎥 video of the current user experience to the first comment.


1to100 🚀

Good day,

I start this year with my first "build in public" project. Last week I bought a domain (https://1to100.app) and the same day started to develop the project. To improve my accountability and make it a little more fun I do it in public.

Each day I publish small reports to my twitter (or how youngsters shall call it — X): https://twitter.com/PavloPoliakov . I try to spend at least 25 minutes a day working on the project (or one 🍅).

Last week a already did a lot:
1. Set up AWS Elastic Beanstalk and put my API online https://api.1to100.app . I use fastify and PostgreSQL.
2. Set up an expo app and started to shape it (to me it's much more difficult than a back-end API).
3. Function wise it's now possible to take a picture from the app, the app will throw it against the API and API uploads it to s3.

Let's see what I can do this week. Overall my goal is to publish a real iOS MVP app as soon as I can. I will attach a 🎥 video of the current user experience to the first comment.




⚡️ Channel needs your energy

Telegram just dropped stories for channel functionality. It is not enabled by default, subscribers of the channel need to boost the channel to enable stories posting.

For our channel we need just 12 boosts. And another interesting piece of statistics — we have 346 premium members here, already.

Btw, being in Germany, I can not buy premium neither can I be gifted one. But there is a positive side as well — no Telegram ads. Each time I leave Germany they start to appear.

🚢Let's boost and see what happens. For example, I would have shown you a giant ship a day before yesterday if I had that option.

https://t.me/gooddevknows?boost


🧪 ChatGPT hallucinations

Today I got tricked by ChatGPT. I asked it to help me write a custom AWS policy, and it quite confidently told me that I shall use
{"s3:RequestTag/validationProvider": "TEST"}
and everything will be great. So I did it this way, AWS accepted my code, but nothing was great, and the thing I wanted to work — did not.

After some time of googling and checking the AWS IAM UI I found out that there is no RequestTag for S3, but there is RequestObjectTag. I made that change, and it started to work as I wanted it to 🚀

Still, I can say ChatGPT saved me some time, but we shall not forget that we cannot trust it blindly. Honestly speaking, it wasn't a complete hallucination because there is such a thing as RequestTag at AWS; it just has a different context, not the S3 one.

Happy ChatGPT to everyone!

20 ta oxirgi post ko‘rsatilgan.