MayhemHello

На Пикабу
Дата рождения: 11 ноября 1990
поставил 908 плюсов и 76 минусов
979 рейтинг 141 подписчик 1 подписка 5 постов 2 в горячем

Загадка на 50к рублей

Спойлер - на самом деле это скорее вопрос, и вопрос сложный (по крайней мере для меня)

Дано:

Гражданин РФ (я), который хотел бы инвестировать в американский фондовый рынок без страновых рисков.

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

Необходимо:

Развернуто предложить законный вариант, используя который возможно вкладываться в США и не переживать о блокировках

Критерий принятия ответа:

1) Время реализации рекомендации - до пары месяцев (т.е. "переедь в Германию, проживи там N лет, получи гражданство" приемлемым ответом не является)

2) Я воспользуюсь рекомендацией и она сработает на практике

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

Дополнительные данные:

1) У меня нет оснований претендовать ни на какое гражданство, кроме российского
2) Я не хотел бы сейчас уезжать из РФ в какую-то другую страну
3) Есть возможность официально трудоустроиться в ряде стран (Казахстан-Киргизия-Армения-Сербия), но этот процесс не является чем-то удобным и было бы круто обойтись без смены страны работы
4) Стоимость реализации решения не должна превышать 10 тыс. долларов (т.е. варианты вида "купи гражданство страны Х" не рассматриваются, это очень дорого)

Примеры не слишком хороших ответов:

1) "закидываешь деньги в IB, покупаешь что хочешь"

Как в IB сейчас что-то закинуть и как делать это регулярно (а-ля райф уйдет)?
Как при этом не нарушить закон РФ?
Где уверенность что IB через месяц не приостановит аккаунты клиентов с паспортом РФ? (т.е. страновые риски сохраняются)

2) "В тинькофф-инвестициях можно покупать американские инструменты"

Не уверен в безопасности, у меня с прошлого года висят заблокированные европейские акции
"С инструментами США такого точно не произойдет" - почему?
Другой депозитарий/дружественный прокладки/что-то еще - как будто бы "надежды юношей питают", не звучит безопасно, если хотите предложить вариант с тиньковым - объясните пожалуйста очень доходчиво и аргументированно почему нет угроз со стороны западных ребят и со стороны РФ

3) "получаешь базовую легализацию в стране Y, и через нее идешь в условный IB"

Так паспорта страны Y нет, я все еще россиянин для любого зарубежного брокера => страновые риски на месте

4) "При таких вводных никак, много хочешь"

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

Если забыл про какую-то важную информацию - пишите, в комментариях все укажу)

Показать полностью

IT просвет #3

Давайте немного поговорим о том, в какой компании лучше работать it-специалисту, в большей степени это будет применимо для разработки, но думаю и для других специальностей внутри сферы +- ок.

"Да все же очевидно" - весьма вероятно, тогда этот пост не для вас)

Дисклеймер:
Мир большой и разнообразный, бывает всякое, к любому пункту можно привести контрпример, это нормально. Данный пост - попытка обобщить мой опыт (и опыт товарищей) за последние 8-10 лет в разных компаниях.

Сразу уточню что я понимаю под it-компанией или компания с it-профилем:
IT-компания -
1) дочернее юрлицо "большого" бизнеса, необходимое для создания it-системы данного бизнеса (СберТех, ОзонТех, ..)
2) компания, основной продукт который является it-продуктом/it-системой (Яндекс, Positive Technologies, Профи, ..)
3) компания, разрабатывающая it-решения на заказ aka бодишоп (EPAM, Luxoft, ..)

Пойдем от худших (на мой взгляд) мест к лучшим.

5 - Маленькая компания с не-it профилем
Плюсы:
Обычно невысокие требования для соискателей
Вероятно отсутствие бюрократии

Минусы:
Устаревший технологический стек
Зп ниже рынка
Отсутствие существенного роста навыков
Отсутствие карьерного роста
Отсутствие специализации, может потребоваться заниматься широким профилем проблем (да, это минус)

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

4 - Большая компания с не-it профилем
Плюсы:
Все еще не слишком высокие требования для соискателей
Зп может быть рыночной или практически рыночной
Какой-никакой карьерный рост возможен

Минусы:
Возможен устаревший технологический стек
Отсутствие существенного роста навыков
Может быть отсутствие четкой специализации
Вероятна очень сильная бюрократия

"Ну вроде ничего так, почему бы и нет?" можете подумать вы
Если нет больших запросов - да в общем-то пойдет
Если же есть интерес к сфере и желание сильно расти по деньгам (а как правило значит и навыкам) - не, не подойдет.

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

3 - Небольшая компания с it-профилем

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

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

"Ну теперь то ок?"
Ну почти
Не самый плохой вариант для старта, не самый плохой вариант для работы
Есть риски стабильности, есть риски "потолка", выше которого будет сложно двигаться

В подобной компании также работал, вполне ок, коллектив можно разделить на 2 части
1 - Те, кто уже работал в наших следующих вариантах компаний, устал, и пришел в тихую гавань доживать it-век в удовольствие
2 - Те, кто еще не работал в наших следующих вариантах компаний и практически гарантированно уйдет туда

2 - Большая компания с разработкой на заказ (бодишоп/галера, да простят меня работающие в них люди)

Плюсы:
Как правило актуальный стек технологий
Хорошая зп
Карьерный рост
Рост навыков
Может быть релокация силами компании

Минусы:
Возможно отсутствие постоянной команды (== "команды под проект")
Возможно отсутствие интереса к контексту (== "Username, надо проект вот в этой сфере, давай")
Проекты могут быть устаревшими/неинтересными
Может быть отсутствие четкой специализации

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

1 - Большая it-компания

Имхо - чудо какой хороший вариант, но не без проблем

Плюсы:
Зп от "рыночная" до "сильно выше рынка"
Актуальный технологический стек
Прозрачный и понятный карьерный рост
При желании крайне сильный рост навыков
Четкие выработанные процессы
Максимально четкая специализация
Большая стабильность
Может быть релокация силами компании*

Минусы:
Возможна сильная бюрократия
Возможно понимание незначительности вклада в общее дело (== "я винтик")

"И вот эти ваши тиньковы-авито лучшее что есть на рынке что ли?"
На мой взгляд - да
Крайне уважаю большие продуктовые компании, работаю в подобной, весьма доволен)
Также считаю что это очень хорошее место для начала карьеры, если получится попасть стажером или джуном - есть шансы что у вас все сложится очень-очень хорошо)


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

Показать полностью

IT просвет #2

Суть - "как проверить свои силы, если хочешь стать бэкэнд-разработчиком?"

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

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

Библиотека

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

Что должна уметь система:
1 - Добавить новую книгу в библиотеку
2 - Удалить книгу из библиотеки (например сценарий физического износа и списания)
3 - Получить список книг, название которых содержит заданную строку
4 - Получить список книг указанного автора (также должен быть доступен поиск по произвольной строке)
5 - Зарегистрировать читателя в библиотеке
6 - Выдать читателю книги
7 - Получить от читателя книги
8 - Проверить есть ли книги на руках у читателя
9 - Открепить читателя от библиотеки

Для каждого из пунктов должен быть свой метод api
Желательно сделать и http-методы и аналогичные grpc-методы, но для простоты можно ограничиться только http.
Все методы должны быть доступны для вызова например через Swagger.

Подробнее про техническое решение:

У системы должна быть база данных. Лучше использовать postgres или ms sql, они по моему опыту наиболее популярны в российский компаниях. Уделите достаточно внимания проектированию таблиц, это крайне важно.

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

Приведу минимальный стек для c# (делать данную задачу можно практически на любом языке, это не столь важно)
.Net core (сам сервис) + Dapper (библиотека для осуществления запросов к БД) + Swagger (в данном случае для возможности удобно вызывать ваши методы апи из браузера) + Postgres

Рекомендации:

Уровень у всех разный, кому-то задача покажется слишком легкой, кому-то невообразимо сложной, это нормально.
Если вам изначально страшновато - можно разбить задачу на этапы.
1 - Выносим пункты 1-4 из "что должна уметь система" в первый этап, пункты 5-9 во второй
2 - Проектируем бд для этапа 1
3 - Пишем все необходимые запросы к таблицам для этапа 1 не выходя из субд
4 - Пробуем написать как-то работающий сервис с методами апи
5 - Смотрим на получившийся сервис, читаем немного про архитектуру приложений, стараемся выделить уровень данных, уровень бизнес логики и пр.
6 - Снова смотрим на получившийся на сервис, понимаем что не писали тесты, читаем про юнит-тесты, добавляем их
7 - Можно переходить к этапу 2 (проектирование таблиц, добавление новых методов апи и пр.)

Некоторые бизнес-кейсы:

При проектировании системы не забудьте пожалуйста, что
1 - Есть книги с более чем 1 автором
2 - Есть книги без конкретного автора (а-ля русские народные сказки)
3 - У книг есть версии/редакции, мб вы захотите это учесть
4 - Каждой книги может быть более 1 штуки (== в библиотеке может быть 10 экземпляров книги "Незнайка на Луне", это нормально)
5 - Нельзя выдать больше экземпляров книги чем в целом есть в библиотеке (если все 10 экземпляров Незнайки уже кто-то взял, вы не можете выдать 11ый желающему)
ну и т.д., это больше подсветить что "над любой задачей надо думать не только с технической стороны"

"Я крутой, как сделать задачу сложнее?":

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

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

Послесловие:

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

Готов ответить на вопросы в комментариях, если таковые будут)

Показать полностью

IT просвет #1

Суть поста - "как стать стажером/джуном в бэкэнд-разработке"
Пост навеян разговором с @storykaber

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

Я попробую на примере бэкэнд-разработки и языка c# (для условной java полагаю будет +- тоже самое) расписать какие знания позволят с большей вероятностью успешно пройти собесы и этапы отбора.

Спойлер #1
Это очень примерный список.
Куда-то (особенно стажером) наверно можно пройти имея меньше знаний.

Спойлер #2
Не воспринимайте список как непреложную истину, он составлен исходя из моего опыта, а мой опыт не абсолютен.

Этап 0
Хорошо разобрать язык, на котором вы хотите работать
В случае с C# это означает "полностью прочитать и понять хотя бы на 80% CLR via C# Джеффри Рихтера"

Этап 1
Хорошо разобрать основные коллекции и структуры данных, которые лежат в их основе
В случае c C# этими коллекциями является List и Dictionary
Надо понимать как они работают внутри, понимать сложность операций вставки/поиска/удаления

Этап 2
Хорошо разобрать асинхронность
Очень хорошо
Надо понимать как она работает
В случае с C# речь про async/await и Task

Этап 3
Узнать sql на среднем уровне
Можно на примере ms sql, можно на примере postgres, в целом не столь важно
Что надо уметь -
1 - писать несложные запросы с join-ами
2 - знать про существование индексов, зачем они нужны, примерно понимать как устроены
3 - знать про существование плана запроса и что в нем можно увидеть
4 - уметь проектировать несложные таблицы

Этап 4
Узнать про http и grpc
Что такое/где используется/в чем разница

Этап 5
Узнать про бэкэнд-разработку
.Net core, контроллеры, middleware,..

Этап 6
Узнать про параллельность и поработать с ней
Узнать про средства синхронизации поток и как с ними работать
В C# надо разобраться во внутрянке lock-а + узнать еще хотя бы несколько средств синхронизации

Этап "было бы хорошо, но необязательно"
Прочитать "Современные операционные системы" Таненбаума
и "Архитектура компьютера" от него же

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

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

Показать полностью

IT просвет

Ребят, а есть у кого вопросы по it-сфере?
Посетила мысль, что хочется поделиться информацией и опытом, вдруг кому буду полезен)
Пара слов о себе - профильное образование (магистр, фундаментальная информатика), 8 лет в сфере, прошел путь от стажера до сеньора в ветке разработчика, сейчас тимлид.
Работал много где (инвест-фонд, не-it компания с it отделом, компания с разработкой на заказ, средняя it-компания с собственным продуктом), сейчас в огромной it-компании с собственным продуктом

Могу рассказать про профильное образование и его необходимость/актуальность, могу про зарплаты, могу про процессы
Да много про что могу на самом деле

Если есть вопросы - накидывайте)

Отличная работа, все прочитано!