Для любого разработчика глубокое понимание основных принципов системного проектирования является необходимым условием для создания стабильных и масштабируемых программных систем, способных обеспечивать высокую производительность. Системное проектирование (System Design) включает разработку архитектуры и структуры программной системы, направленную на удовлетворение специфических требований и обеспечение требуемых показателей производительности.
Рубрика «system design» - 3
Что нужно знать, чтобы успешно пройти System Design Interview
2024-05-04 в 15:00, admin, рубрики: development, software, software development, system design, проектирование систем, системный дизайнКак получил оффер от Microsoft
2022-01-31 в 22:51, admin, рубрики: .net, algorithms, C#, interview, leetcode, microsoft, system design, Алгоритмы, ооп, распределенные системыО чем эта статья
Это продолжение моих похождений по ФААНГ. Предыдущая статья была о моем опыте собеседования в Амазоне: https://habr.com/ru/post/646319/.
Здесь я тоже поделюсь всем процессом: как я попал на собеседование, все этапы, вопросы на интервью, как я готовился, некоторые детали офера, и общее впечатление от интервью. Также будут всякие сравнения опыта собеседования в Майкрософте и в Амазоне.
К слову, все собеседования тоже сейчас проходят онлайн, и никаких онсайт интервью нет.
Предложение в Линкедине
Мой опыт собеседования в Amazon
2022-01-18 в 14:37, admin, рубрики: algorithms, Amazon Web Services, AWS, C#, interview, leetcode, system design, Алгоритмы, распределенные системыО чём эта статья
Это не история успеха, потому что в Амазон меня не взяли, но и не история полного лузера, который бомбит из-за своей тупости, ибо позже я прошел в Майкрософт, о чем будет отдельный пост.
Это история о моем опыте собеседования в Амазоне, почему мне в целом не понравилось по сравнению с другими FAANG. Так же тут будут ответы на “а что конкретно спрашивали на интервью, какие были задачки, что на систем дизайне было”, потому что мне не дали подписать NDA, все с пруфами, скринами и прочее.
ORM: почему эта задача не имеет решения, но делать с этим, тем не менее, что-то нужно
2019-06-30 в 22:25, admin, рубрики: database design, orm, system design, Анализ и проектирование систем, ооп
Современные информационные технологии поражают своей мощью, ошеломляют открывающимися возможностями, обескураживают заложенным в них техническим совершенством, но есть один смехотворный пункт, об который IT раз за разом снова и снова ломает зубы. Показать пользователю данные из базы, получить от него ввод, положить обратно в базу, показать результат. Поля ввода, кнопочки, галочки, надписи — казалось бы, что в них может быть такого запредельно сложного, чтобы потребовалось городить головоломные конструкции типа фреймворков поверх шаблонизаторов поверх фреймворков поверх транспайлеров? И почему несмотря на все колоссальные усилия мы имеем то, что игрушечные примеры по туториалу, конечно, делаются легко и приятно, но как только инструментарий сталкивается с реальными задачами реальной жизни… как бы это сказать помягче… с ростом сложности решаемых задач наблюдается сильная нелинейность возрастания сложности реализации. Ладно бы речь шла о чём-то действительно головоломном уровня теоретической физики или космической техники, так ведь нет же — кнопочки и галочки. Почему эта ерунда десятилетиями продолжает отравлять жизнь гражданам и трудовым коллективам?
Причин, наверно, как всегда оно бывает, много. Наверно все они так или иначе достойны рассмотрения, но здесь и сейчас мы поговорим о задаче объектно-реляционного отображения (Object-Relational Mapping, ORM), которая всегда в каком-либо виде стоит за всеми этими «кнопочками и галочками».
Читать полностью »
What to think during NALSD interview
2019-01-15 в 13:15, admin, рубрики: design interview, distributed system, Google, interview, library, long story, nalsd, system design, work at google, Анализ и проектирование систем, Блог компании Google, высокая производительность, Карьера в IT-индустрии, распределенные системыThere are a lot of posts about what a typical coding interview at Google looks like. But, while not as widely described and discussed, there is also quite often a system design interview. For an SRE position it’s NALSD: non-abstract large system design. The key difference between SWE and SRE interviews consists in these two letters: NA.
So, what is the difference? How to be prepared for this interview? Let’s be non-abstract, and use an example. To be more non-abstract, let’s take something from the material world, such that you won’t be asked the exact same thing at the real interview (at least, not at the Google interview) :)
So, let’s design a public library system. For the paper books, like you have seen everywhere around. The whole text below was written all at once within around one hour, to roughly show you the areas that you should be able to cover / touch during the interview. Please excuse some disorder, that’s how I think (therefore I am).
Читать полностью »
Список статей и литературы про NAS
2018-08-22 в 12:49, admin, рубрики: cloud, containers, crypto, DAS, data storage, diy или сделай сам, freenas, home server, linux, luks, NAS, omv, openmediavault, sas, system design, virtualization, zfs, zfsonlinux, оборудование, проектирование систем, сервер, сетевые хранилища, хранение данных, хранилища данных, хранилище данных
В рамках цикла статей по построению NAS, либо домашнего сервера, по просьбам пользователей я погуглил за вас и сделал небольшой обзор информационных источников.
В этой статье собраны ссылки на большую часть материалов, которые я использовал. По мере накопления и обработки материалов, тут может появиться что-то новое.
Проектирование программной платформы защищённого NAS
2018-07-24 в 4:58, admin, рубрики: cloud, cloudns, containers, data storage, DNS, docker, ldap, ldapadmin, NAS, nginx, nginx reverse proxy, omv, openmediavault, system design, virtualization, Анализ и проектирование систем, архитектура, виртуализация, проектирование систем, хранение данных, хранилища данных, хранилище данных
Допустим, аппаратная часть NAS собрана и на неё установлена ОС, например, как показано здесь. И сейчас у вас есть работающий сервер с Debian, который загружается, подключен в сеть, и вы имеете к нему полный физический доступ.
Теперь надо спроектировать среду, позволяющую легко и безопасно добавлять, удалять прикладные сервисы, а также управлять их работой.

