В начальном сообщении не было ничего про десятки миллионов рублей. Наоборот - даже приписка «не москва» Это только сейчас появилось.
Насчет всех - да не всех, но многих - Хабр побольше части айтишная и инженерная тусовка.
Насчет города - город миллионник на европейской части России. Однушка панелька, дома 1970-2000 годов постройки, неплохой район, стоила 1.7-1.8 млн. Вполне себе ликвидная. Половина многоквартирного жилого фонда пожалуй из эти квартир состоит. Вторая половина - хрущевки.
Зп 4-6 кило бакса. Думаю любой программист с опытом и релевантным стеком типа явы, ноды, го, си шарпа - мог этого добиться, выйдя на зарубежную удаленку. И добивались.
Все это было в 2015 - 2019 годы. Цены на жилье и ремонт стали повышаться во время пандемии + льготная ипотека + думаю эскроу счета. А в 2022 в принципе все посыпалось.
Перечитал еще раз. Малец хаос. Уведомления - это журнал, все туда пишут, когда им захочется, пачками или по одному. И отдельный поток (или несколько) это дело читает и рассылает. Тоже по одному или пакетом.
Можно прикрутить rest api, чтобы пополнять журнал, а можно подписаться на брокера сообщений.
На первое время журнал можно сделать в виде таблицы в реляционной БД. Когда перестанет хватать - перейти на кафку. Но это случится, когда если проект станет очередным фейсбуком.
Если надо как в UDP (отправил и забыл) - то никакого логирования, только указатель на последнюю прочитанную запись из журнала или флаг "обработано".
Если надо как в TCP - тогда да, придется писать логи, что было отправлено, что нет, последнюю ошибку, политики повторов и так далее. Но тут сразу проблемы с пакетной отправкой - из пакета в 100 штук могут упасть только 10.
Никаких кэшей. Можно ежедневно мониторить размер не обработанной очереди. Если она растет - значит мало серверов на отправку. Добавляем или настраиваем авто масштабирование в облаке по этому признаку в облаке.
Откуда взялось 10-20-100 модулей, которые читают уведомления и отправляют их? Зачем дублировать код отправки в 100 местах? Это должен быть один модуль, с настраиваемым кол-вом одновременных потоков, от 1 до n. И уже экспериментальным путем подбирать оптимальное кол-во потоков. Зачем кэш?
Но вообще да - в осознанном сне было скучновато, статично, «npc» исчезают и остаются декорации. А вот выход из тела… там все по-другому. Гуляешь не в декорациях сна, а в проекции реального мира. Но там капец страшно… неизвестность и бесконечная безграничность очень очень очень пугают.
В сфере бизнес приложений поверх понимания кода есть еще один уровень - это понимание бизнес процесса. Выглядит это так - пользователь пожаловался, что у него не печатаются этикетки, а в процессе раскапывания узнаешь об особенностях конфигурации бизнес процесса под конкретного клиента.
А код то в целом понятен. Каждый блок делает одну законченную вещь. Понятные входные/выходные данные. Без дублирования. Но из-за сложности процесса - тот или иной блок участвует в разных местах.
И, знаете, с недавних пор я стал не любить отсутствие дублирования - потому что когда вижуал студия подсвечивает 5 reference над методом - это означает вплоть до 5! потенциальных комбинаций, которые мне предстоит раскопать, чтобы выяснить почему этикетки не печатаются. И только один приведет к победе ?
Короче линейный лапшекод с дублированием - порой самый понятный код ?
К сожалению мой аппаратно-программный комплекс в виде мозга и Nokia 3110 был не способен решать задачу графов в реальном времени. А еще клавиши зависали... :)
Однажды я как не-искусственный-интеллект понял, что игра змейка подразумевает алгоритм змейки - например начинать с верхнего левого угла, вниз до конца, на одну клетку правее, вверх почти до конца, оставляя коридор в одну клетку по верху, одну клетку правее, снова вниз до конца и так далее и потом замыкать на хвост, возвращаясь по верху.
Яблоки появляются только на свободном поле и конец игры - когда змейка настолько длинная, что заполняет собой все поле и догоняет свой хвост. Но в этот момент змейка переходит в бесконечность, потому что отстает от своего хвоста на соседнюю клетку и яблоку негде упасть. Ну а если программисты не предусмотрели такой исход и яблоко падает на змейку, то она переходит в сингулярность. Game over.
В далеком 2007 году я накодил saas стартап с веб-мордой (самый первый айфон тогда еще только появился, поэтому никаких мобильных приложений). Только тогда широкие массы таких слов еще не знали. Идея - сливать в базу гос тендеры с сайтов и навесить каких-нибудь удобных функций. Кодил не больше года по вечерам.
Потом решил, что надо теперь как-то это продать. Заспамил потенциальных клиентов по емейлу. Одни даже ответили - спросили сколько стоит. Но я ж тогда был мамкин бизнесмен. Напридумывал себе бизнес план, посчитал окупаемость. Сказал подписка 10 тыщ в месяц. И тишина. На этом все и закончилось ?
Это я через несколько лет только прочитал книгу Гая Кавасаки про стартапы. И там было написано про trial период.
А еще однажды мне попалась вакансия в компании, которая допинала эту же идею до конца. Это был разговор двух прошаренных людей на уровне бизнес идей, а не начальника и программиста. Короче хвастались. Друг у друга мы узнали кое-что новое. У них например был крутой полнотекстовый поиск по документам, а я планировал сделать парсинг результатов тендеров и продавать эту информацию для принятия решений.
В целом в ит отрасли снижение зп в рф. Потому что снизилась конкуренция. Зарубежная удаленка скукожилась и местным работодателям нет смысла платить много денег. Раньше сениорам предлагали массово 350-400, теперь 200, а 300 тех/тим лидам. И еще курс стал 100, вместо 60.
В начальном сообщении не было ничего про десятки миллионов рублей. Наоборот - даже приписка «не москва» Это только сейчас появилось.
Насчет всех - да не всех, но многих - Хабр побольше части айтишная и инженерная тусовка.
Насчет города - город миллионник на европейской части России. Однушка панелька, дома 1970-2000 годов постройки, неплохой район, стоила 1.7-1.8 млн. Вполне себе ликвидная. Половина многоквартирного жилого фонда пожалуй из эти квартир состоит. Вторая половина - хрущевки.
Зп 4-6 кило бакса. Думаю любой программист с опытом и релевантным стеком типа явы, ноды, го, си шарпа - мог этого добиться, выйдя на зарубежную удаленку. И добивались.
Все это было в 2015 - 2019 годы. Цены на жилье и ремонт стали повышаться во время пандемии + льготная ипотека + думаю эскроу счета. А в 2022 в принципе все посыпалось.
Были времена, когда можно было за 5 месячных окладов купить однушку в панельном доме. Не Москва. Но потом бахнула пандемия и сами-знаете-что.
Перечитал еще раз. Малец хаос. Уведомления - это журнал, все туда пишут, когда им захочется, пачками или по одному. И отдельный поток (или несколько) это дело читает и рассылает. Тоже по одному или пакетом.
Можно прикрутить rest api, чтобы пополнять журнал, а можно подписаться на брокера сообщений.
На первое время журнал можно сделать в виде таблицы в реляционной БД. Когда перестанет хватать - перейти на кафку. Но это случится,
когдаесли проект станет очередным фейсбуком.Если надо как в UDP (отправил и забыл) - то никакого логирования, только указатель на последнюю прочитанную запись из журнала или флаг "обработано".
Если надо как в TCP - тогда да, придется писать логи, что было отправлено, что нет, последнюю ошибку, политики повторов и так далее. Но тут сразу проблемы с пакетной отправкой - из пакета в 100 штук могут упасть только 10.
Никаких кэшей. Можно ежедневно мониторить размер не обработанной очереди. Если она растет - значит мало серверов на отправку. Добавляем или настраиваем авто масштабирование в облаке по этому признаку в облаке.
Откуда взялось 10-20-100 модулей, которые читают уведомления и отправляют их? Зачем дублировать код отправки в 100 местах? Это должен быть один модуль, с настраиваемым кол-вом одновременных потоков, от 1 до n. И уже экспериментальным путем подбирать оптимальное кол-во потоков. Зачем кэш?
Короче, ничего не понятно с самого начала.
И Робертом Монро
Но вообще да - в осознанном сне было скучновато, статично, «npc» исчезают и остаются декорации. А вот выход из тела… там все по-другому. Гуляешь не в декорациях сна, а в проекции реального мира. Но там капец страшно… неизвестность и бесконечная безграничность очень очень очень пугают.
Хм, https://career.habr.com/salaries?qualification=All - тут по всем специальностям показывает 152. В виджете в том году было максимум 187 или что-то в этом роде, если мне память не изменяет.
Интересненько, а статья, что зарплаты упали - будет? Виджет раньше показывал 160-180 среднее по больнице, а теперь упало почти до 100
Я в тот момент представлял себе спагетти в упаковках на полках магазинов ?
Это же про гейм дев?
В сфере бизнес приложений поверх понимания кода есть еще один уровень - это понимание бизнес процесса. Выглядит это так - пользователь пожаловался, что у него не печатаются этикетки, а в процессе раскапывания узнаешь об особенностях конфигурации бизнес процесса под конкретного клиента.
А код то в целом понятен. Каждый блок делает одну законченную вещь. Понятные входные/выходные данные. Без дублирования. Но из-за сложности процесса - тот или иной блок участвует в разных местах.
И, знаете, с недавних пор я стал не любить отсутствие дублирования - потому что когда вижуал студия подсвечивает 5 reference над методом - это означает вплоть до 5! потенциальных комбинаций, которые мне предстоит раскопать, чтобы выяснить почему этикетки не печатаются. И только один приведет к победе ?
Короче линейный лапшекод с дублированием - порой самый понятный код ?
А для PM и аналитиков разве не существует bus factor?
К сожалению мой аппаратно-программный комплекс в виде мозга и Nokia 3110 был не способен решать задачу графов в реальном времени. А еще клавиши зависали... :)
Капец ?
Однажды я как не-искусственный-интеллект понял, что игра змейка подразумевает алгоритм змейки - например начинать с верхнего левого угла, вниз до конца, на одну клетку правее, вверх почти до конца, оставляя коридор в одну клетку по верху, одну клетку правее, снова вниз до конца и так далее и потом замыкать на хвост, возвращаясь по верху.
Яблоки появляются только на свободном поле и конец игры - когда змейка настолько длинная, что заполняет собой все поле и догоняет свой хвост. Но в этот момент змейка переходит в бесконечность, потому что отстает от своего хвоста на соседнюю клетку и яблоку негде упасть. Ну а если программисты не предусмотрели такой исход и яблоко падает на змейку, то она переходит в сингулярность. Game over.
Лол ШТО??? Отрисовка зубов в закрытом рту каждого жителя ??? ???
Воспоминание разблокировано ?
В далеком 2007 году я накодил saas стартап с веб-мордой (самый первый айфон тогда еще только появился, поэтому никаких мобильных приложений). Только тогда широкие массы таких слов еще не знали. Идея - сливать в базу гос тендеры с сайтов и навесить каких-нибудь удобных функций. Кодил не больше года по вечерам.
Потом решил, что надо теперь как-то это продать. Заспамил потенциальных клиентов по емейлу. Одни даже ответили - спросили сколько стоит. Но я ж тогда был мамкин бизнесмен. Напридумывал себе бизнес план, посчитал окупаемость. Сказал подписка 10 тыщ в месяц. И тишина. На этом все и закончилось ?
Это я через несколько лет только прочитал книгу Гая Кавасаки про стартапы. И там было написано про trial период.
А еще однажды мне попалась вакансия в компании, которая допинала эту же идею до конца. Это был разговор двух прошаренных людей на уровне бизнес идей, а не начальника и программиста. Короче хвастались. Друг у друга мы узнали кое-что новое. У них например был крутой полнотекстовый поиск по документам, а я планировал сделать парсинг результатов тендеров и продавать эту информацию для принятия решений.
В целом в ит отрасли снижение зп в рф. Потому что снизилась конкуренция. Зарубежная удаленка скукожилась и местным работодателям нет смысла платить много денег. Раньше сениорам предлагали массово 350-400, теперь 200, а 300 тех/тим лидам. И еще курс стал 100, вместо 60.
228 человек на вакансию… насколько это большое значение, если смотреть по всем вакансиям такого рода?
Удалено
Таки в итоге - если лететь со скоростью 0.9999999999с, то можно пролететь весь Млечный Путь за месяц/год и не надо никакой гибернации для экипажа?
Помнится по рукам били, когда бизнес логика была в слое презентации