Bekzod Babamuradov
128 subscribers
2 photos
8 links
15 years in Software Product Development.

prev. Director of Engineering, CPO/Head of Product at a US-based SaaS company. Founder.

curr. Leveraging AI in Education.
Download Telegram
Добро пожаловать! 👋

В этом канале буду делиться рандомными мыслями и экспериментами: управление разработкой, управление командой, программирование, здоровье, образ жизни, книги, профессиональный и личностный рост, итд.

Пишите (@bekzd) если будут вопросы, предложения или отзывы ✌️
Немного о Blockchain.

Говорят, что Blockchain - это технологическое решение социальных проблем. Например, проблем связанных с межличностным или межорганизационным доверием. В основе этой технологии лежит децентрализация власти.

Развитие Blockchain может привести к тому, что разногласия будут решать алгоритмы, а не люди или государство. Как любят твердить в сообществе Blockchain: "Code is Law”.

На данный момент сообщество работает над масштабируемостью этой технологий, пока эта проблема еще не совсем решена.

Трилемма (или треугольник) масштабируемости систем Blockchain состоит из 3-х граней:

- Безопасность
- Децентрализация
- Масштабируемость

Можно построить систему, которая сможет обеспечить только 2 из этих 3-х свойств.

Например, если хотите гарантировать Децентрализацию и Масштабируемость, придется отказаться от Безопасности.

Скорее всего, скорость транзакций в основных системах Blockchain (таких как Ethereum) останется медленным и эти системы будут держать Безопасность и Децентрализацию в приоритете.

На данный момент, компенсировать это можно с помощью таких технологий, как Sidechains и Oracles (речь НЕ о популярной реляционной базе данных).

Следующие ресурсы помогли мне изучить основы технологии Blockchain (теория и немного практики):

1. Курс Bitcoin and Cryptocurrencies https://www.edx.org/course/bitcoin-and-cryptocurrencies

2. Курс Blockchain Technology https://www.edx.org/course/blockchain-technology

3. По этому отличному руководству напишите игру “Crypto Zombies” на платформе Ethereum с помощью Solidity и JavaScript. https://cryptozombies.io/en/course

Технология очень интересная, будем наблюдать за ее развитием и как она меняет мир. Может даже получится написать dApp на платформе Ethereum, когда придумаю хороший use case.
Сегодня я закончил 4-х недельную программу тренировок Yoga Flex & Flow. Эта программа ориентирована на развитие мобильности и подвижности.

Пару месяцев назад, я начал чувствовать, что выгораю работая удаленно (может об этом еще напишу в следующих постах).
После короткого исследования приложений для самостоятельных тренировок, я наткнулся на Nike Training в App Store. Мне повезло, что в тот момент Nike открыли бесплатный доступ к Premium контенту (из-за пандемии COVID-19). Я решил воспользоваться этой возможностью.

Йогой я раньше никогда не занимался. Вообще раньше эта тема меня не интересовала. Но, я решил попробовать, потому что эта была одной из немногих опций тренировки без какого-либо оборудования дома.

42 дня спустя, я очень рад, что нашел в себе силу воли пройти эту программу. Если следовать программе, то ее заканчиваешь за 4 недели. Но, я забросил на несколько дней после завершения первой стадии и потом начал заново. Тем не менее, сейчас я чувствую себя лучше физически и умственно. Я считаю, что качество занятий в этой программе на высоком уровне.

Я решил продолжить тренировки вместе с Nike Training и хотя бы один раз в неделю продолжать заниматься йогой для поддержки мобильности. Параллельно, хочу начать следующую программу, теперь для развития выносливости или силы.

Рекомендую всем чаще выходить из зоны комфорта.
Будьте здоровы 🙏 @bbmuradov
I read a lot and I also spend time talking to people a fair amount. I think two of the most efficient ways to learn, to get information, are reading and talking to experts. So I spend quite a bit of time doing both of them. I think I have just shy of a thousand books on my Kindle. And I’ve probably read about two-thirds of them.

Читая давно сохраненную в getpocket.com статью о Andrew Ng, еще раз убедился насколько чтение книг важно для креативности и постоянного роста. Захотелось поделиться какую роль играет чтение в решении задач или проблем (good problems to have) в моей жизни.

Обычно, если я замечаю какую-нибудь проблему, я вижу возможность роста (личностного и командного) и возможность сделать вклад. Особенно, если я сталкиваюсь с этой проблемой впервые или никогда раньше ее не решал самостоятельно. Также, если это не совсем явная проблема или когда остальным не интересно ее решать, но при этом потенциальный вклад может быть значимым. Это меня мотивирует и появляется “жажда” к получению знаний для решения этой проблемы.

Мой основной источник знаний - это книги. Я захожу на amazon.com, ищу самые популярные (по рейтингу) книги на тему этой проблемы и начиная с жаждой перечитывать литературу. Помимо книг, иногда просматриваю презентации, видео уроки и прослушиваю подкасты.

Во время чтения книг, у меня обычно появляются идеи как можно применить эти знания для решения проблемы. Я обычно собираю эти идеи в Evernote. Когда чувствую, что накопилось достаточно гипотез и знаний для решения проблемы, перехожу на самую сложную стадию - исполнение.

Раньше, я многое забрасывал не доводив до конца. Последнее время, я начал жаждать вкус победы, когда завершаешь начатое и особенно если это было сложно сделать и потребовало твердых усилий. Наверное, я подсознательно пытаюсь себе доказать, что я могу это сделать. Или я просто осознал, что значимый рост может происходить только тогда, когда ты постоянно решаешь сложные задачи/проблемы (то есть выходишь из зоны комфорта). Главное делать то, что может принести большую пользу.

Для меня книги - источник вдохновения и креативности. Особенно, когда уже нет сил и желания что-то делать. Много раз замечал, как книга придает мотивацию после всего 5-10 минутного чтения. Несмотря на то, что только эти 5-10 минут назад не было никакого желания делать что-то полезное, а хотелось просто смотреть сериалы в Netflix или сидеть в соц. сетях. Не зря наверное говорят: “Главное начать - дальше видно будет.” Последние годы, мне нравиться дополнять: “Раз начал, нужно довезти до конца."
On discomfort and hardship

There is no growth without discomfort.

If you think you live a comfortable life, try to put yourself through hardship and discomfort from time to time. It doesn’t have to be anything extreme.

Physical discomfort, such as exercising, fasting, sleeping on the floor, having a cold shower, etc. Mental discomfort, such as studying some complex subject, like programming or any science topics. Stoics also recommend regular negative visualizations. Meditation is probably also some kind of discomfort you can put yourself through, especially at the beginning when you are just learning to meditate.

Hardship and discomfort helps you learn, and prevents you from getting too soft or weak physically and mentally. And occasionally, when life challenges you, you will feel ready and will get through those physical or mental challenges a lot more smoothly.

Put yourself through hardship, create discomforting conditions intentionally from time to time to test yourself, if you are capable of enduring them. If you are persistent, eventually, your endurance will get better and better. In those moments, you will feel powerful, that you can learn and do anything you want. I believe this feeling is a great motivator to continue growing.

Never let this cycle stop.
Основы Машинного Обучения
за 3 месяца (по часу в день)

Как-то в начале этого года, я поставил себе цель изучить тему "Машинное Обучение" (МО) и применить знания на практике. Еще в 2012 году начал курс от Andrew Ng, но тогда у меня не пошло, было сложно. Сейчас я понимаю, что ошибался и проблема была не в сложности, а в моем подходе к обучению. Об этом может расскажу в следующих постах.

Пару недель назад я закончил тот же самый курс Machine Learning на Coursera (за 8̶ ̶л̶е̶т̶ 2 месяца). Я не был уверен, стоит ли инвестировать мое время в этот курс, так как задачи требовалось решать на Octave. Экосистема этого языка программирования для решения задач МО не самая развитая на сегодняшний день.

Не смотря на это, я решился пройти этот курс и пока ни разу не пожалел. Этот курс дает отличные фундаментальные знания для практического применения МО. Никакой высшей математики не нужно знать. Рекомендую начинающим. Параллельно с курсом, прочитал очень короткую и легко написанную книгу Machine Learning for Absolute Beginners.

Вслед за этим курсом, я за пару недель прошел курс Machine Learning, Data Science and Deep Learning with Python на Udemy, чтобы ознакомиться с нужными инструментами решения задач на Python (Anaconda, Jupyter Notebook, Scikit-learn, Apache Spark, Tensorflow, Keras и все такое). Было очень легко, потому что фундаментальные знания уже были.

На все это я тратил по 1 часу времени до начала рабочего дня и по 2-3 часа в выходные в течение почти 3 месяцев. Когда оглядываюсь назад, то понимаю как многое можно сделать если последовательно работать над чем-то всего по 1 часу в день.

С курсами я пока закончил. Буду продолжать укреплять теоретическую базу посредством чтения книг (думаю по 30 минут в день будет достаточно). Также, есть несколько идей, с которыми давно хочу поэкспериментировать в Super Dispatch. Когда знаешь, что есть пользователи, которым твое решение может быть полезным и в процессе можно чему-то научится, это очень вдохновляет.
Чтение книг

Многим из нас с детства прививали идею читать постоянно и много. Всегда неравнодушно и с большим интересом относился к людям, которые много читают.

До недавних пор, я сам стремился к тому, чтобы читать непрерывно, книгу за книгой, едва утоляя жажду к познанию нового.

Только вот, я начал замечать, что если не практикую полученные знания, прочитанное забывается быстро. Получается, я зря все это читал?

Я решил провести эксперимент. Вместо того, чтобы сразу переходить на чтение следующей книги, я начал резюмировать полученные знания и устраивать сессии для коллег в Super Dispatch. Также, стараюсь сразу применить полученные знания на практике.

Так как я в основном читаю про разработку и управление, и Super Dispatch очень ценит эксперименты и постоянный рост, возможности практиковать полученные знания в области разработки и управления, у нас в компании, почти безграничны.

Через пару месяцев, надеюсь, поделюсь результатами эксперимента.
​​О Медитации

Уже больше 90 дней, как я медитирую по 15-20 минут, каждый день (и не планирую останавливаться).

Не буду рассказывать, что такое медитация, в Интернете много ресурсов, где можно почитать/послушать про это. Много исследований сделано о позитивном влиянии регулярной медитации на физическое и психическое здоровье человека. В этом посте расскажу, почему я начал медитировать.

Последние годы начал замечать, что мой мозг набирал "сильные обороты" и не получалось "сбавить обороты" когда нужно. Мне стало тяжело засыпать и высыпаться, концентрироваться на одном долгое время, мозг постоянно перегружен и мне тяжело воспринимать новую информацию. Раньше завидовал Менделееву, потому что ему якобы приснилась периодическая система химических элементов. Сейчас, я ему сочувствую. Когда вы начинаете решать рабочие задачи во сне, это значит, что у вашего мозга не получается "сбавить обороты", чтобы отдохнуть и восстановиться ночью.

В совокупности, это способствовало высокому уровню стресса на работе и дома, постоянной раздраженности, и в конце-концов низкому уровню счастья. Я также начал замечать, что у меня ослаб иммунитет и общее состояние здоровья.

Мне нужно было что-то менять. Чтобы выйти из этого порочного цикла, я решил начать (вновь) медитировать.

Раньше, я несколько раз пытался медитировать, но больше 10 дней не выдерживал. На этот раз, мне очень помогла техника из программы The Intentional Day (расскажу в следующих постах, или почитайте The Atomic Habits). Также, у меня была конкретная цель, которую я каждый день себе напоминал - уменьшить уровень негативного стресса в повседневной жизни и быть более позитивным, для себя и для окружающих меня людей (семьи, коллег, друзей).

Что изменило 90 дней медитации?

- Я считаю, что медитация, в какой-то степени, помогла повысить мой уровень эмоционального интеллекта (про это тоже напишу в будущих постах).

- Я более спокоен (чем раньше), даже в стрессовых ситуациях.

- Я начал относиться проще и более позитивно к событиям, людям и моему окружению. Это большой прогресс для перфекциониста.

- Я больше успеваю, меньше устаю, меньше болею, чувствую себя более счастливым (несмотря на нехватку общения из-за карантина).

Как начать медитировать?

Самый простой способ, если понимаете английский, скачать мобильное приложение (Headspace, Calm, итд.), просыпаться на пол часа раньше и после душа первым делом медитировать. А еще лучше, попробуйте найти наиболее подходящее для вас время и место для медитации.

Не ждите никакого быстрого эффекта от медитации, просто делайте, каждый день.

Через месяц, начнете осознавать пользу. С каждым последующим месяцем, начнете осознавать еще что-то новое.

Если есть вопросы на эту тему, пишите, пообщаемся.
Почему я думаю, что работать в продуктовой команде разработчиком, дизайнером или QA инженером круче и интереснее чем работать директором по инжинирингу (или VP, CTO)?

Инженер 👨‍💻
Маленькая команда, фокус на одну цель, быстрые и видимые результаты, тесное общение, много креативной работы, разрабатывай что считаешь нужным для достижения продуктовых целей - решай вместе с командой, факапы часто имеют незначительный импакт и можно быстро все починить, меньше стресса.

Директор 👩‍💼
Стратегические планы, долгосрочные цели, много коучинга и менторства, работа требует большого терпения и упорства, часто нет своей команды (в небольших компаниях), чувство одиночества, большая ответственность, большой импакт от факапов и исправление требует много времени.

Заработок 💰
Крутой инженер или дизайнер может получать столько же зарплаты что и директор по инжинирингу (а то и больше) и продолжать заниматься любимым делом. Да и не в деньгах счастье.

Тогда почему... 🤔
Тогда почему я взял на себя ответственность директора по инжинирингу в Super Dispatch?

Потому что интересно, несмотря на трудности (читали ранний пост On Discomfort and Hardship?). А еще, потому что остальные не хотят (или не проявляют желания), а компания растет быстро и нужно помогать СТО и остальным лидерам справляться с ростом. Нам бы еще один директор по инжинирингу не помешал.

P.S. Как всегда, мы в поиске опытных программистов, дизайнеров, QA инженеров.
Интернов и джуниоров пока не рассматриваем.
​​Deep Learning или Традиционные Алгоритмы Машинного Обучения

Andrew Ng на простом языке объясняет, почему глубокое/глубинное обучение в последнее время все больше используется для решения разных проблем.

Традиционные алгоритмы машинного обучения (SVM, Regressions, и тд.) достигают своего предела при определенном объеме данных, на которых вы обучаете свою модель. Глубокие нейронные сети, напротив, продолжают выдавать результаты лучше. В целом, чем глубже нейронная сеть и чем больше данных, тем лучше результат.

Также интересно то, что если данных у вас мало (small training sets), то разница в результате моделей построенных на традиционных алгоритмах и нейронных сетях (разной глубины) в целом незначительна.

От сюда можно сделать простой (обобщенный) вывод:

- Если данных относительно мало, то скорее всего модель построенная на основе традиционных алгоритмов выдаст почти такой же результат как и модель построенная на нейронных сетях.

- Если у вас данных много и вам доступна достаточная вычислительная мощь, можно итерационно улучшить результат с помощью глубокого/глубинного обучения.

Как всегда, универсальный совет для решения любых задач: начинайте с простого и итерационно улучшайте (усложняйте) по мере надобности.

В этой статье объясняется как в Airbnb начинали с традиционных алгоритмов и затем улучшили результаты своего поиска с помощью глубокого/глубинного обучения.
Самый важный навык для джуниор разработчика (и не только)

1. Сначала запланируйте свое решение.
2. Затем, расскажите об этом решении более опытному коллеге, получите отзыв и подправьте ваш план.
3. И только в последнюю очередь, начинайте писать код.

Очень часто, происходит обратное.

В результате, джуниор разработчик теряет кучу времени на решение задачи. Решение оказывается не самым простым. У команды начинается фрустрация.

Вывод:

Улучшайте свои софт скиллы и навыки общения/планирования в первую очередь, только потом уже переживайте по поводу своих хард скиллов. И обязательно требуйте, чтобы вам назначили ментора, к которому вы можете обращаться за помощью и советом в любое время.
On Hard Skills

Until you become a true Senior Engineer, you need to focus on your “Getting Things Done” skills. Afterwards, it is important to gradually switch your focus to “Getting the Right Things Done”.

Getting Things Done is all about learning and using new programming languages, frameworks, tools, etc. Your skills help get stuff done on time and in good quality.

Getting the Right Things Done is all about learning and applying the fundamentals of Systems Thinking, Risk Assessment, Game Theory, Behavioral Psychology, etc., and also about the fundamentals of the new approaches to solving technical problems (e.g. Machine Learning, Smart Contracts, Domain-Driven Design). It is NOT about learning Kubernetes or Golang. These fundamental concepts lie at the heart of the relatively novel approaches, such as Lean, Agile, DevOps, microservices, decentralized apps, etc. Your “macro thinking” skills help architect the software and the teams properly to help innovate and quickly achieve the Strategic goals of the business. You read it right, it’s also about building teams the right way, not just software. Building great software is more about people than about tools used.

Most senior engineers don’t go beyond “Getting Things Done”, which is mostly about micro thinking. The latter requires macro thinking. You achieve it if you are able to think macro, to learn and apply effective mental models when solving various problems. It makes you stand out, it makes you accomplish great things fast. It is what will help you grow into someone who doesn’t just copy what others do but into someone who constantly comes up with world-class innovative solutions to problems.
Если разработчики в вашей команде НЕ сфокусированы на:

- понимание индустрии
- понимание потребностей клиентов
- росте компании

и в основном занимаются (или часто просят заняться):

- рефакторингом кода (когда этого не нужно)
- использованием новых хайповых инструментов (без надобности)
- редизайном или фейслифтингом UI (без четкой, измеримой цели)

НЕ вините разработчиков, тим лидов, или продакт менеджеров.

Где проблема?

Ищите проблему в системе (процессы, культура, ценности), которую (часто неосознанно) построило руководство, обычно на уровне топ-менеджмента (СЕО, СТО, Директора, итд.)

Как решить?

Изменение подхода к постановке целей (например, на OKRs) и к разработке продуктовой стратегии, а также к тому как компания отслеживает их выполнение обычно является отличным началом для изменения системы. Это обязательно должно начинаться с CEO и команды топ-менеджеров.
If you are into Machine Learning, I suggest following Santiago on Twitter https://twitter.com/svpino

You will like what he tweets if:

1. You want to learn ML but don’t know where to start. He will help you learn the fundamental concepts in a concise way.

2. You have studied the fundamentals and have done a couple of small projects. He will help you not forget what you learned.

3. You use ML every day professionally. He will help you learn something new that you don’t currently use in your project.

Reading about the fundamentals of ML every day will take you a long way, even if you don’t have a chance to practice it regularly but want to stay in the game.
If there was one thing you could do in order to Move Fast, it would be to learn to Split your work into Small Chunks.

Product/Feature shape-up - Choose the smallest scope possible that delivers value to the customer. It’s faster to design, faster to develop, faster to fix issues, faster/easier for customers to learn, etc.

Design - Sketch the simplest/easiest/fastest design that can be changed quickly by the designer and the engineering team after the release.

Software Architecture - Split into small chunks that can be committed and deployed to Production without breaking anything. Optimize for “being able to change quickly”.

This principle of “Starting Small”, “Working in Small Batches”, “Building a Minimum Viable Product”, etc. is fundamental to building fast, learning fast, growing fast, reducing the number of mistakes/errors/bugs, and being happier in general.
The ability to NOT take things personally is gonna get you much further in your professional life than your ability to code in Python or whatever hard skills you can develop (they are important but hardly enough).

Teamwork is critical for success.
There is NO productive teamwork when there is ego in the room, and when team members take comments or arguments personally. It makes healthy and necessary conflicts impossible to have. There is no progress, no improvement, no perfection without healthy and constant conflict in the team.

Next time when you feel offended, guilty, defensive, demotivated when you hear your teammate comment and argue about something you are working on, focus on the problem being brought up and not on yourself or others.
🧘‍♂️It’s been a long time since I last posted. I hope all of you guys, who are still here (and those who left), are doing well! 🙂

My AI assistant just helped me capture a moment in my life that I wanted to share with you: the parents 👨👩, programmers and craftspeople🧑‍💻🏗️, and the dreamers 💭 out there in the wild, hoping it would resonate with some of you.

Here we go:

Code hums softly, lines in flow,
As winter’s chill begins to grow.
A toddler’s tantrum fills the air,
But still, I code with quiet care.

"Either Way" plays, raw and true,
Chris Stapleton’s voice cuts through the blue.
Foolish and hungry, I stay in this space,
Chasing dreams while I embrace the chase.

Through the storm, I build with grace,
A future bright, in this sacred place.
Tonight, I breathe, I fight, I stay,
A parent, a coder, in a world of gray.


I hope to write more in 2025 and connect with you all.

Take care of yourself.
Stay hungry and foolish.
5👍3
This morning, I converted a cup of Americano into code at Palo Alto Cafe and pushed it to my Github repo. A simple moment but it completely made my day.

After a rough 4-hour sleep last night, coding on a fun project was exactly what I needed.

And the fact that my first ever café coding session happened in Silicon Valley? Just the cherry on top.

Tim Ferris’ idea of Identity Diversification resonates deeply with me. I recently discovered "training for long-distance swimming" as another fun project that makes my day, especially when other things I work on don’t go according to plan. I am still able to make progress on something else.

What’s your go-to for finding joy when things don’t go as you wanted?
👍62
Here’s how most pre-AI SaaS companies will die

- Person A: Have you guys considered leveraging AI to solve this problem for the customer?

- Person B: Not really, we don’t have time. We have to design, build, and release it quickly, there’s a (usually large) customer waiting for it to be released.

If you frequently hear this response during product design review sessions, it may be time for a change.

You basically have 3 options:

1. Advocate change: help PMs, Designers, Team Leads, Senior Managers shift their mindset.

2. Look for new opportunities, leave the company to join teams/companies w/ better standards.

3. Do nothing, keep doing what you’re doing, why bother.

Most people go with Option 3.
❤‍🔥41🔥1💯1