C#razy
144 subscribers
253 photos
51 videos
2 files
389 links
Путь в IT, рост, менторство, поддержка, прокачка, мотивация

👨‍💻 Senior .NET dev с 12+ лет опыта
📚 Учусь в MIT по Computer Science
🖥 100+ дней подряд LeetCode
⚒️ Работаю на зарубеж
💻 Веду блог про рост в IT с нуля
🧭 Помогаю понять, куда двигаться
Download Telegram
C#razy pinned a photo
Friday 🏃‍♂️

#humor

💡 Channel | ✏ Chat
Please open Telegram to view this post
VIEW IN TELEGRAM
🤣3
As usual, nothing new 🥹

#humor

💡 Channel | ✏ Chat
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3
ALWAYS 💦

#humor

💡 Channel | ✏ Chat
Please open Telegram to view this post
VIEW IN TELEGRAM
😁3
Please open Telegram to view this post
VIEW IN TELEGRAM
😁4
🔥 ML system design: Материалы

Я хотел с вами поделиться просто бомбическим ресурс который вам поможет подготовиться к собеседованиям, связанным с проектированием систем машинного обучения ML System Design. В нём рассматриваются основные концепции, подходы и вопросы, многие кейсы уже разобраны, которые могут быть заданы на интервью по ML. Это включает архитектуру, обработку данных, выбор моделей, оптимизацию и масштабируемость. Если вы заинтересованы, вам необходимы просмотреть и выучить все эти кейсы.

ML System Design — это процесс проектирования и разработки систем, использующих машинное обучение для решения конкретных задач. Важные аспекты включают выбор моделей, работу с большими объёмами данных, интеграцию ML-моделей в существующие системы и обеспечение их масштабируемости и надёжности.

📎 Ссылка: github

#datascience #ai #ml #mlsystemdesign #systemdesign

💡 Channel | ✏ Chat
Please open Telegram to view this post
VIEW IN TELEGRAM
✍2
Data Science и ML: FAANG MAANG и карьерные вызовы

Есть супер стрим про карьеру в Бигтехах из первых уст от ребят которые работает в MAANG.

Рассматриваются собеседования в Amazon, Google, Meta.

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

Прокачивай свой Data Science/ML/System desiign/Behavioral или как продукт-менеджер (нужно Ph. D), и будь готов к нестандартным кейсам по сути это достаточно чтобы покарить MAANG.

📎 Ссылка: YouTube

#datascience #ai #deeplearning #generativemodels

💡 Channel | ✏ Chat
Please open Telegram to view this post
VIEW IN TELEGRAM
ABBYY за час уволила почти всех разработчиков.

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

ABBYY, это как бы компания с мировым именем в сфере AI и OCR, буквально за один час распрощалась с практически всеми своими разработчиками.

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

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

📎 Ссылка: Forbes

#news #ABBYY #разработка #увольнения

💡 Channel | ✏ Chat
Please open Telegram to view this post
VIEW IN TELEGRAM
😱3
Системный аналитик: Матрица компетенции и путь развития в ТехБанке

Заинтересованным ребятам мастхэв посмотреть видео про System Analyst и про развитие. Разбор как устроен найм и карьерный рост в техбанке.

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

📎 Ссылка: YouTube

#systemanalyst

💡 Channel | ✏ Chat
Please open Telegram to view this post
VIEW IN TELEGRAM
Multitenancy и виды стратегий для масштабируемых SaaS-решений

📌 Что такое multitenancy?
Multitenancy позволяет одному приложению обслуживать множество организаций или пользователей, при этом данные каждого тэнанта изолированы. Это важно для масштабируемости и безопасности.

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

Существуют различные "виды" multitenancy, но честно они все хороши:
📌 Shared Database & Shared Schema
Подходит для маленьких проектов или некритичных приложений, где изоляция данных не является первоочередной задачей.

📌 Shared Database & Separate Schemas
Хороший выбор для средних SaaS приложений, где необходима некоторая изоляция данных, но проект все еще должен быть экономически эффективным.

📌 Separate Databases
Подходит для больших организаций с критически важными данными, где безопасность и изоляция являются основными приоритетами.

📌 Separate Application Instances
Применимо для корпоративных клиентов с особыми требованиями по безопасности, производительности или кастомизации.

📝Итого
Для большинства SaaS-приложений Shared Database & Separate Schemas, по моему мнению, оптимальный выбор. Это подход предлагает баланс между изоляцией данных и экономичностью, особенно если приложение предполагает гибкую настройку под каждого клиента. Так же этот подход легко масштабируется для "среднего" числа тенантов.

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

Shared Database & Shared Schema, а вот это лучше избегать в серьезных приложениях из-за недостаточной безопасности и риска нарушений целостности данных. Это скорее подход для очень маленьких и простых решений, где изоляция не важна или на старте попробовать надо ли оно вам. Тут беда что утечки и протечки данных возможны, по сути этот что то типо хостала, вроде бы всё разграничено, но в тоже время всё доступно, но скрыто.

Separate Application Instances, я считаю что это спорный подход, когда необходимы максимально независимые и кастомизированные приложения для каждого клиента, что по сути редкость для типичных SaaS решений. Так как искать и разделять инфраструктуру будет не просто и нужно ли. Но, если взять разбитие на регионы\зоны то этот подход может быть удачным решением.

📎 Ссылки: devops-habr, dev-habr, product-habr

#multitenancy #SaaS #devops

💡 Channel | ✏ Chat
Please open Telegram to view this post
VIEW IN TELEGRAM
Workaround 🌚

#humor

💡 Channel | ✏ Chat
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
The semicolon cats of real programmer;

🦉;

#humor

💡 Channel | ✏ Chat
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1
This media is not supported in your browser
VIEW IN TELEGRAM
Demonstration of a new feature to a customer 🥹

#humor

💡 Channel | ✏ Chat
Please open Telegram to view this post
VIEW IN TELEGRAM
Всем привет!

Есть отличный "задачник" для тех кто готовится к собеседованиям по C# и не только, ну или вы хотите проверить свои знания в .NET

Андрей Акиньшин создал давно книгу ProblemBook.NET которая может поломать мозг многим ребятам кто давно в отрасли.

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

#csharp #interview

💡 Channel | ✏ Chat
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1
Raft Consensus Algorithm

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

🙉 Что такое Raft?
Raft — это алгоритм, разработанный для достижения согласия между несколькими серверами в распределённой системе. Он упрощает процесс выбора лидера и управления состоянием системы, делая его более понятным по сравнению с другими алгоритмами, такими как Paxos. Raft спроектирован с учётом возможных сбоев. Если Leader выходит из строя, система быстро выбирает нового Leader, что обеспечивает высокую доступность и надёжность.

Основные компоненты Raft
➡️ Leader и Followers
В Raft серверы делятся на Leader и Followers. Leader координирует действия и обрабатывает команды от клиентов, а Followers следуют указаниям лидера.

➡️ Выбор Leader
Когда система запускается, происходит выбор лидера. Если текущий Leader не отвечает, Followers могут инициировать новый выбор. Это напоминает демократические выборы, где каждый голос важен.

➡️ Логи
Каждый сервер ведёт лог операций. Leader принимает команды от клиентов, добавляет их в свой лог и реплицирует эти записи на Followers. Все серверы должны применять команды в одном и том же порядке, чтобы избежать несогласованности.

🙉 Зачем это нужно?
Raft делает сложные вещи понятными. Он упрощает реализацию распределённых систем, что позволяет разработчикам сосредоточиться на бизнес-логике, а не на борьбе с алгоритмическими тонкостями.

📝Итого
Raft — это не просто алгоритм, а подход к построению надёжных распределённых систем. Если вы хотите создать систему, которая будет устойчива к сбоям и легко понимаема, обратите внимание на Raft. Хоть она и реализована уже во многих местах, но стоит знать что это и как это работает.

📎 Ссылки
- https://habr.com/ru/companies/dododev/articles/469999/
- https://habr.com/ru/companies/otus/articles/793198/
- https://pk.org/417/notes/raft.html
- https://blog.container-solutions.com/raft-explained-part-23-overview-core-protocol

#consensus #raft

💡 Channel | ✏ Chat
Please open Telegram to view this post
VIEW IN TELEGRAM
❤2
Discord - это было быстро

Роскомнадзор (РКН) принял это решение 8 октября 2024 года. Люди уже заметили недоступность сервиса, думаю это относится в первую очередь к игровой индустрии, предполагаю что все вернутся обратно в TeamSpeak. Причины отключения нарушения требований местного законодательства.

В итоге люди уже начали искать решения и альтернативные платформы для общения, такие как Zoom или Skype. Я учу английский через Discord 🙉 и преподаватель накануне поменял площадку на Zoom.

#news #discord

💡 Channel | ✏ Chat
Please open Telegram to view this post
VIEW IN TELEGRAM
👀2
Garbage Collector: Large Object Heap

В .NET Core память управляется при помощи нескольких куч (heaps). Они предназначены для оптимизации работы с объектами разных размеров.

Small Object Heap (SOH) — используется для хранения объектов размером до 85,000 байт.
Large Object Heap (LOH) — для объектов размером более 85,000 байт.

Почему есть разделение на SOH и LOH?
➡️ Разделение на SOH и LOH помогает эффективно управлять памятью и оптимизировать работу сборщика мусора GC.

➡️ Мелкие объекты (массивы, строки, небольшие классы) хранятся в SOH, где они могут быть быстро размещены и освобождены. В SOH объекты перемещаются между поколениями (Generation 0, 1 и 2) что позволяет более эффективно управлять памятью.

➡️ Крупные объекты, такие как массивы с большим числом элементов, помещаются в LOH. Порог в 85,000 байт был выбран из-за компромисса производительности и минимального переноса данных.
В LOH крупные объекты не перемещаются между поколениями, как в SOH. Это снижает нагрузку на GC, так как перемещение крупных блоков данных требовало бы значительных ресурсов.

➡️ Разделение на SOH и LOH уменьшает фрагментацию🧐. Крупные объекты занимают отдельное место и не смешиваются с мелкими, что снижает риск создания множества небольших пустых областей в памяти, которые не могут быть использованы для новых больших объектов.

Вспомним что было в предыдущих сериях
❕Сборка мусора в .NET Core организована по принципу разделения на поколения

Generation 0 — для новых объектов
Generation 1 — для объектов, которые пережили одну сборку Generation 0
Generation 2 — для объектов с долгим сроком жизни и тех, что пережили несколько сборок.
LOH в .NET Core считается частью Generation 2!!

❕Сборка мусора для LOH запускается во время сборки Generation 2

Поскольку LOH управляется как часть Generation 2, очистка памяти в LOH происходит только во время сборки Generation 2. Это происходит реже, чем сборки Generation 0 и Generation 1, что минимизирует влияние на производительность. Это позволяет избежать частых остановок программы (GC pauses) при работе с крупными объектами.

❕В отличие от .NET Framework, Compact Phases для LOH была вручную, команды запускали сборку Generation 2 и LOH что сильно бьёт по перформансу. .NET Core GC делает это автоматически Compact Phases в LOH, если понимает, что фрагментация становится проблемой. Под капотом в .NET Core GC анализирует состояние памяти и принимает решение о том, когда целесообразно выполнять Compact Phases в LOH, основываясь на текущей нагрузке и уровне фрагментации.

❕.NET Core также поддерживает два режима работы GC: Server GC и Workstation GC.
Для серверных приложений чаще используется Server GC, который управляет сборкой мусора параллельно на нескольких потоках, у каждого потока свой heap, подходит для большой нагрузки (API). Workstation GC в основном использует один поток для выполнения сборки мусора, оптимизация для GUI приложений.


📝Итого
Large Object Heap в .NET Core управляется автоматически GC и поддержка Compact Phase. Разделение на LOH и SOH позволяет эффективно управлять памятью для мелких и крупных объектов, снижая частоту сборок мусора и фрагментацию.

📎 Ссылка: Microsoft

#NoAI #GC #s01e05

💡 Channel | ✏ Chat
Please open Telegram to view this post
VIEW IN TELEGRAM
Friday 👋

#humor

💡 Channel | ✏ Chat
Please open Telegram to view this post
VIEW IN TELEGRAM
😁3
It is RUST 👩‍💻

#humor

💡 Channel | ✏ Chat
Please open Telegram to view this post
VIEW IN TELEGRAM
Mail Cloud/Yandex cloud не доступены

Всю неделю лихорадит инфраструктуру, сложности с доступом как внутри так и снаружи.

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

💡 Channel | ✏ Chat
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM