Search
Write a publication
Pull to refresh
-17
0

Системный архитектор

Send message

Зарплаты украинских разработчиков за 2020 год. В среднем — $2500

Reading time4 min
Views35K

Украинский ресурс DOU.UA (Developers.Org.Ua) провел зарплатный опрос среди IT-разработчиков, в котором приняло участие 10280 украинских специалистов. Более половины из них 5359 это разработчики: Software Engineers, Tech/TeamLeads и System Architects. Все зарплаты указаны в долларах США по курсу межбанка, чистыми, т.е. после уплаты всех налогов.

Данные в CSV доступны на GitHub. Для оценки зарплат в выборках используется медиана.

Читать далее

Как начать программировать в парах

Reading time6 min
Views9.9K
Привет. Меня зовут Дима Вдовин. В предыдущей статье я излагал теорию о парном программировании и говорил о том, какие плюсы вижу в этом подходе. Сегодня я бы хотел продолжить эту тему и поговорить о том, как начать практиковать парное программирование у себя в команде. Полный перечень всех плюсов есть в предыдущей статье, а тут мы просто тезисно вспомним, что нам дает парное программирование.

  • Обучение и онбординг новичков.
  • Шеринг кода/процессов и обмен опытом.
  • Пара решает проблему быстрее и реже обращаются за помощью.
  • Повышение производительности.
  • Сплочение коллектива.
  • Увеличение скорости ревью.

Последний пункт стоит пояснить отдельно. Так как при работе в паре процесс ревью, фактически, проходит в фоновом режиме, то и часть ошибок отсеивается еще на этапе написания кода. Благодаря этому итераций на ревью становится значительно меньше. Тут хорошо подходит вот эта картинка:


Но давайте начнем с грустного и поговорим о том, что может помешать начать внедрять парное программирование в своей команде.
Читать дальше →

Если у родителей нет планов на будущее собственного ребенка, они есть у государства

Reading time4 min
Views46K

Если у подростка, а потом и у взрослого тоже нет планов на собственное будущее — вы уже знаете ответ. До этого важного тезиса мне пришлось идти овердофига лет. 

Иными словами.

Читать далее

Время-деньги. Сколько стоит час инженера

Reading time5 min
Views70K

Сколько стоит час работы сотрудника? Это обязаны знать в любой компании, которая продаёт свои часы. А тем, кто не продаёт, а покупает, не лишним будет понять, почему именно столько просят подрядчики, и сколько на самом деле стоят внутренние проекты. Давайте разберёмся, как мы считаем стоимость часа и что туда входит.

Читать далее

Атопический дерматит (нейродермит): что сломалось и как лечить

Reading time11 min
Views81K
image
Одно из возможных проявлений атопического дерматита

Знаете, чему учат студентов-медиков, когда они в первый раз попадают на курацию по кожно-венерологическим заболеваниям? Правильно общаться с пациентом и корректно его осматривать. Типичный студент, увидевший кожу с неприглядными корочками или покраснениями, сразу отодвигается на полтора метра и делает круглые глаза. А потом чуть ли не палочкой пытается тыкать в пациента, стараясь не приближаться. Людей это расстраивает, особенно с учётом того, что большинство пациентов там вовсе не болеет чем-то страшным и заразным.

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

  1. Базовая причина связана с генетическими дефектами, которые мы пока не можем чинить, несмотря на все успехи генотерапии.
  2. Есть куча непонятных факторов, которые могут запускать этот процесс.

В итоге можно попытаться загнать заболевание в постоянную ремиссию. Сегодня мы поговорим:

  1. Что это за патология, с которой сталкивается около 20 % людей.
  2. Что ломается в организме у атопиков.
  3. Как это связано с аллергией.
  4. Что лучше мазать на кожу.
  5. Почему антидепрессанты могут сильно помочь.

Под катом будет несколько фотографий повреждённой кожи, но не ужас-ужас, как вы и просили.
Читать дальше →

Кеш бывает разным

Reading time11 min
Views11K

PostgreSQL хранит данные на каких-то носителях. И между PostgreSQL и, например, магнитной поверхностью диска находится несколько кешей: кеш самого винчестера, кеш RAID-контроллера или винчестерной полки, кеш файловой системы на уровне операционной системы и кеш самого PostgreSQL. Если первыми перечисленными кешами мы практический не можем управлять, то последними, находящимися в ОЗУ сервера, управлять можем: например, выделяя больше ОЗУ под кеш PostgreSQL в ущерб кешу ОС, или наоборот. В официальной документации можно прочитать ничем не подтвержденные рекомендации, типа выделять под PostgreSQL четверть ОЗУ. Это вызывает сомнения. PostgreSQL в виде Postgres95 впервые появился в 1995 году и, кто знает, быть может и эти рекомендации относятся к тому же году. Поэтому появилась идея эксперимента с целью разобраться, как лучше распределять ОЗУ.

Читать дальше →

Почему в InVision затаскивают микросервисы обратно в монолит

Reading time7 min
Views24K

Прим. перев.: автор этой статьи — Ben Nadel, сооснователь и главный инженер InVision App Inc. Миссию своей команды, поддерживающей серверную инфраструктуру компании, он сам характеризует как «advocate for the users», т.к. её главная цель — гарантировать пользователям InVision «получение опыта, который они заслуживают». Его опыт — яркая иллюстрация того, что микросервисы не серебряная пуля.

Если вы следите за мной в Твиттере, то наверняка заметили, что периодически я публикую победные твиты о возвращении одного из наших микросервисов в InVision обратно в монолит. Обычно эти твиты сопровождаются гифкой, в которой Танос вставляет последний Камень бесконечности в Перчатку бесконечности. Нахожу ее вполне уместной, поскольку воссоединение камней придает Таносу невероятную силу — так же, как воссоединение микросервисов придает силу мне и моей команде. Меня много раз спрашивали, почему я избавляюсь от микросервисов. Настало время поделиться своими мыслями по поводу этого путешествия в мире разработки веб-приложений…

Читать далее

Как меня чуть не уволили за выбор React для корпоративного приложения

Reading time8 min
Views58K

Предполагалось, что React облегчит разработку, но он создал препятствия


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

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

Мне нравится его дружелюбное отношение, и я могу сказать, что он готов сотрудничать с нами. У Джеймса уже есть партнёр по развитию в Индии, но ему не хватает опыта в создании веб-приложений. Казалось бы, что может пойти не так?


Приятного чтения!

Я тимлид, зачем мне все это?

Reading time4 min
Views6.9K

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

Ну правда, зачем? Задача тимлида – сделать всё, чтобы команда работала эффективно. Зачем быть искренним и эмпатичным, если люди – это ресурс, и вы умеете ими управлять?

Но мы все люди, а не какой-то безличный ресурс. А значит, для качественного взаимодействия друг с другом нам необходима эффективная коммуникация. Овладев ею, вы сможете разбираться с конфликтами в команде, а в некоторых случаях не допускать их, понимать мотивацию и интересы сотрудников. Есть и ещё кое-что важное: вы наладите коммуникацию с собой, разовьёте самосознание и здоровую рефлексию.

С этого и начну. 

Читать далее

Психология для основателей стартапов: учимся правильно конфликтовать (часть 1)

Reading time8 min
Views10K
image

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

Конфликтуют все. Ваша задача – научиться конфликтовать правильно


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

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

Мой первый совет основателям, которые учатся конфликтовать, заключается в том, что вы должны отдавать себе отчет в том, как именно вы конфликтуете (я называю это «стилем, которого вы придерживаетесь»). Используйте эти знания, чтобы изменять свое поведение с целью уравновешивания динамики в вашей команде. Таким образом вам удастся снизить эмоциональную напряженность, свойственную командам основателей, а также сделает внутренние конфликты более здоровыми.
Читать дальше →

Агрегаты в БД — эффективная обработка потока «фактов»

Reading time5 min
Views5.2K

Предположим, вам надо обработать на PostgreSQL большое (не, не так... БОЛЬШОЕ) количество записей, чтобы посчитать какие-нибудь агрегаты. В предыдущей статье были разобраны различные варианты, как это можно организовать, а в этой посмотрим, как при этом особо никого не заблокировать, включая "набегающий поток" данных.

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

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

Читать далее

Моделирование микросервисов с помощью Event storming

Reading time8 min
Views83K

Event storming — метод, который смещает акцент у событий с технического на организационный и бизнес уровни и помогает создать устойчивую модульную систему. Он нередко используется в контексте моделирования микросервисов. Но как применить его на практике?

При создании системы на микросервисах можно легко получить распределенный монолит. Event Storming не уберегает от этого на 100 %, но позволяет существенно снизить риск этого события. О том, как именно этого добиться, рассказал в своем докладе на конференции TechLead Conf 2020 практикующий консультант по архитектуре, процессам разработки и продуктовым практикам Сергей Баранов.

Читать далее

Symfony и Гексагональная архитектура

Reading time8 min
Views15K

В данной статье мы коротко пройдемся по теории и на практике разберемся как перевести любое Legacy приложение на гексагональную архитектуру. Повествование будет в контексте фреймворка Symfony и PHP 7.4, но синтаксис приведенных примеров настолько прост что вы без труда поймете как сделать так же на вашем языке программирования (если он поддерживает ООП).


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

Читать дальше →

Агрегаты в БД — зачем, как, а стоит ли?

Reading time5 min
Views15K

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

Если это какая-то локальная утилита - не страшно, само ее существование у пользователя достаточно ограничено. Но если это что-то вроде нашего СБИС, который накапливает и помогает анализировать операции за все время существования бизнеса, то, по мере его роста, не только операций становится больше, но и понимания, какие именно сводные отчеты помогают в оперативном управлении.

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

Читать далее

Прежде чем запустить свой первый стартап. Или о чем не пишут в книгах про стартапы

Reading time8 min
Views7.8K

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

Речь пойдет о том, что нельзя пощупать, но можно и нужно знать и понимать. Без чего не стоит не только мечтать о единороге, но даже и начинать не стоит. Поговорим о мотивации основателей и о том, какие испытания духа ждут каждого фаундера.

Читать далее

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

Reading time17 min
Views38K

Как часто мы задаемся вопросом о том, почему порой так сложно настроить себя на некоторые виды деятельности?

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

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

Читать далее

Слайды для миллиардного стартапа

Reading time8 min
Views12K

В рамках бесплатного спринта по созданию презентаций для стартапов я перевела полезные советы от Y Combinator.

Y Combinator — лучший в мире акселератор для стартапов по количеству единорогов (25), по объему привлеченных инвестиций ($27 млрд) и по капитализации выпускников ($300+ млрд). 125 компаний с оценкой $150M+

Ниже приведена адаптация презентации, которую я даю стартапам YC, прежде чем мы попросим их создать свои презентации для Demo Day.

Вот как сделать надежную презентацию для Demo Day. Следует помнить, что у вас уже есть все необходимое для создания отличной презентации.

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

Как вы уже поняли после Prototype Day, вам повезет, если они смогут вспомнить хотя бы 1 или 2 из этих пунктов в контексте 100 других компаний, презентующихся вместе с вами.

Читать далее

Почему управлять государством должен продуктовый менеджер?

Reading time9 min
Views15K

Потому что государство – это продукт. Со своими метриками, экономикой, жизненным циклом. У граждан-пользователей есть и лайфтайм, и отток, и средний чек. Да и цели те же: найти свою нишу на мировом рынке, решить боли пользователей, повысить выручку и капитализацию. Только вот чиновники, которые управляют нашими странами, угробили бы любой стартап примерно сразу.

Читать далее

Новое в Symfony: инициатива UX — новая экосистема JavaScript для Symfony

Reading time4 min
Views6K

С момента своего создания JavaScript всегда был ориентирован на создание инновационного пользовательского опыта (UX - User Experience). Он позволяет разработчикам создавать максимально интуитивно понятный и удобный UX под конкретную задачу.

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

Эта проблема не нова: она очень похожа на состояние Symfony в PHP до появления Symfony Flex. Нам нужен эквивалент Symfony Flex для JavaScript - инструмент способный создавать прекрасный пользовательский опыт так же быстро, как теперь мы можем настроить HTTP-клиент, почтовую программу или панель администрирования.

Представляем вам Symfony UX

5 диаграмм, необходимых для документирования архитектуры решений

Reading time8 min
Views95K

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

Читать далее

Information

Rating
Does not participate
Location
Москва, Москва и Московская обл., Россия
Registered
Activity