На Reddit есть интересный тред, где программисты из SpaceX отвечают на любые вопросы пользователей. SpaceX — это та компания, которая построила ракеты Falcon и корабли серии Dragon, а совсем недавно запустила первый в своей истории пилотируемый корабль с экипажем.
Вот они собрались на Reddit, чтобы поотвечать на вопросы, а мы перевели самое важное. Если вы знаете английский — почитайте в оригинале, там много интересного.
На каком языке написана большая часть кода для ракет и корабля?
Весь софт, который должен работать автономно, написан на C++. Нам нравится объектно-ориентированный подход в C++, но при этом мы стараемся писать настолько простой код, насколько это вообще возможно. Ещё мы используем несколько библиотек с открытым исходным кодом, но у нас очень жёсткие требования к их качеству, поэтому нам проще написать свои библиотеки, где мы точно уверены в качестве кода.
Расскажите о своём стеке
Весь софт, который отвечает за сам полёт, мы пишем на C и C++, для вывода информации на экраны мы используем HTML, JavaScript и CSS. Python нам нужен для тестов. А ещё мы используем стандартные веб-компоненты. Всё просто.
Программирование Дронов — так ли страшно, как многие себе представляют
Мы знаем, что весь интерфейс на мониторах в Crew Dragon отображается с помощью движка Chromium и JavaScript. А кроме этого вы используете какие-то библиотеки и компоненты, и если да — то какие?
Да, мы используем тот же Chromium, который лежит в основе браузера Chrome, ещё есть собственные библиотеки. При этом важно понимать, что мы используем Chromium только как движок для отображения интерфейса на экранах. То, что мы выводим на мониторы, никак не влияет на сам полёт и отказоустойчивость системы.
Тем не менее у нас один и тот же процесс разработки любого кода, независимо от его применения и языка программирования. Мы параллельно учим наших разработчиков писать код для двигателя на языке C++ и придерживаться того же подхода к надёжности во всех проектах.
Вообще этот проект начинался как симулятор полётов для NASA, чтобы показать, как ещё может выглядеть полётный интерфейс. Потом мы попробовали запустить его на настоящем оборудовании, которое ставят в космические корабли, и там наш интерфейс тоже отлично работал.
Нам нравятся все эти штуки, которые умеют современные браузеры, а ещё у нас работает много талантливых ребят. Мы не боимся делать что-то новое — нам нравится быть первыми в чём-то, даже если это не соответствует стандартам в отрасли.
Как работает система безопасности полёта?
За эту систему отвечает специальный набор чипов, который работает независимо от основного компьютера. Эти чипы напрямую получают и сигналы с основных датчиков, и данные с бортового компьютера. Если они поймут, что ракета летит не туда, теряет скорость или будет что-то подобное, то эта система сразу закончит полёт и постарается посадить ракету на Землю.
Как вы отслеживаете и исправляете ошибки, которые возникают во время полёта?
Здесь много нюансов. Ошибки, которые возникают от воздействия радиации на микросхемы и датчики, отслеживают несколько резервных компьютеров, а мы смотрим, что они показывают на выходе. Ошибки в датчиках решаются установкой разных дублирующих датчиков. Ошибки в передаче данных обрабатываются с помощью кодов обнаружения или исправления ошибок.
Заграничная жизнь главного ракетостроителя России
Что будет, если во время полёта что-то пойдёт не по плану — например, если откажут двигатели или что-то подобное?
Чтобы исключить любую непредвиденную ситуацию, мы почти всё, что можно, ставим в тройном объёме — датчики, приводы, микросхемы и всё остальное. Даже если в полёте сломается один или даже два из них, система будет работать как обычно.
Наши космические корабли спроектированы так, что им не страшен даже отказ одного из двигателей или механизмов управления — их компенсируют алгоритмы, которые перераспределят нагрузку. Кроме того, у нас есть отдельные алгоритмы для обработки действительно критических ситуаций. Например, Crew Dragon может сам прервать полёт и приземлиться обратно, если сбой в работе будет слишком большим.
SpaceX использует искусственный интеллект внутри своего ПО?
Нет, искусственного интеллекта у нас нет. Вместо этого корабль использует алгоритмы компьютерного зрения и распознавания, например, для ориентации в пространстве. Но кто знает, возможно, в новых космических кораблях мы поставим искусственный интеллект, чтобы он ими управлял
Если я ещё учусь в школе, что мне нужно сделать, чтобы когда-нибудь прийти к вам работать программистом?
Получите профильное образование или по-настоящему заинтересуйтесь компьютерами. Найдите время, чтобы разобраться в том, как всё работает. Наши инженеры, которые работают в SpaceX, отлично разбираются в том, как работает их код, как устроена сеть, зачем нужен Linux, разбираются в железе и так далее. Отличный вариант — личные проекты или стажировки в крупных компаниях, чтобы получить опыт создания нового и решения сложных проблем.
А вообще чтобы разрабатывать ПО, нужно сосредоточиться на двух важных вещах:
- алгоритмы и структуры данных;
- понимание того, как компьютер работает на самых низких уровнях.
Даже если вы не будете регулярно копаться в драйверах устройств, сетевом стеке и сборке, то понимание того, как всё это сочетается, позволит вам решить любую проблему.
Какую версию Linux вы используете?
Языки программирования в космической отрасли
Системы, используемые космической сфере, должны соответствовать определенным отраслевым стандартам безопасности, без права на ошибку, и, таким образом, важность кода, критичного для безопасности, сильно влияет на принятие решений, связанных с выбором языка. Большинство организаций используют в своих исследованиях C, C++ и Python. Например, языком программирования, которым пользуется NASA, является HAL/S — язык, предназначенный для аэрокосмических систем реального времени. А Роскосмос использует язык — ДРАКОН. На нем написана значительная часть ПО для ракетоносителей.
Вот список языков, который обычно встречается в космонавтике:
Ada
Является одним из старейших в мире. Это язык, который ценится за склонность обнаруживать ошибки во время компиляции, а не во время выполнения, а также за его ключевые функции поддержки, критически важные для безопасности. Например, синтаксис Ады предпочитает использование слов, а не символов, что снижает риск ошибок из-за опечаток и повышает удобочитаемость. Он поддерживает как объектно-ориентированное, так и необъектно-ориентированное программирование и хорошо работает как для крупномасштабных систем, так и для низкоуровневого системного программирования.
Assembly
Возможно и, вероятно, самый старый язык в этом списке. Это язык, наиболее близкий к реальному машинному коду процессора.
С
Язык C, который часто называют «языком общения» операционных систем, широко используется в системном программировании. Он ценится за высокую производительность и гибкость
С++
С помощью С++ можно сделать специальное программное обеспечение, которое сэкономит время, необходимое для ручных расчетов при проектировании двигательных установок. SpaceX используют его для своих ракет.
FORTRAN
Язык уже несколько десятилетий широко используется в области науки и техники. Его предпочитают использовать для числовой обработки входных данных, и он был представлен в 1950-х годах как альтернатива ассемблеру, сокращая время, необходимое для создания программ, на несколько порядков. Этот язык — один из немногих, сохранившихся до сих пор.
MATLAB
Подобно FORTRAN, MATLAB предпочтительнее для вычислений, и его цель часто включает использование анализа статистических или полетных данных, а также разработку моделей и симуляций в аэрокосмической отрасли.
Python
Python является относительно новым по сравнению с другими языками в этом списке. Часто используется для внутренней разработки приложений и анализа данных. Все видели фотографии с телескопа Джеймса Уэбба? Так вот на Земле программисты используют Python для получения, систематизации и хранения всех данных, поступающих с телескопа.
Источник: vc.ru
Как SpaceX пишет софт
Даглас Хёрли и Боб Бенкен в капсуле «Индевор»
Компания SpaceX ведёт стремительную разработку проектов сразу по нескольким направлениям. Первая ступень ракеты Falcon 9 после запуска полезной нагрузки в космос возвращается на Землю для повторного использования, подобное тестируют для прототипов Starship. На МКС корабль Crew Dragon доставляет экипаж, готовится второе поколение грузовиков Dragon. Рой спутников связи Starlink выдаёт больше сотни мегабит в секунду для реальных пользователей открытого бета-теста.
Все эти проекты требуют высокой степени автоматизации, за которую отвечает команда разработки программного обеспечения. Про неё специалисты SpaceX рассказывают с удовольствием: это не только важно для привлечения соискателей на открытые вакансии, но и интересно для всех остальных.
Сложность космоса
14 декабря 1966 года в беспилотном испытательном запуске «Союза» корабль 7К-ОК № 1 встал на стартовой площадке: не сработала «зажигалка» на одном из двигателей. Автоматика остановила последовательность действий запуска до того, как ракета успела отделиться от поверхности стартового стола. Персонал приблизился к ракете для её осмотра и оценки возможности повторного запуска.
Внезапно сработала система аварийного спасения (САС) «Союза». Её пороховые двигатели бережно вынесли спускаемый аппарат на высоту 700 метров и отдали его во власть парашютов, но также зажгли разлившуюся горючую жидкость системы терморегулирования приборного отсека, который остался на Земле. Верхушка ракеты загорелась. Как вспоминает Черток, память о катастрофе Неделина заставила людей покидать стартовую площадку бегом. Погиб один человек.
Выяснение причин срабатывания САС на неподвижной ракете началось ещё до тушения стартовой площадки. Во время полёта ракета постоянно сравнивает отклонения инерциальной системы отсчёта от расчётной траектории. Если разница слишком велика, то срабатывает САС. Стоящая на стартовой площадке ракета всё же движется: она вращается с Землёй, а гироскопы «привязаны» к звёздам.
При проектировании аварийных систем Земля предполагалась неподвижной. За 27 минут «набежало» примерно 8 градусов, и на 32 пиротехнических заряда САС поступил сигнал зажигания.
Этот «баг» упустили из виду даже без сложностей современных компьютеров. Сегодня электроникой управляются все критические системы любого космического аппарата. Это уже даже не «самый дорогой дефис в истории» зонда «Маринер-1» 1962 года: в современных системах пространство для ошибок исчисляется десятками, сотнями тысяч строк кода. Любой заметный сбой программного обеспечения вызывает деградацию качества работы или вовсе приводит к потере аппарата.
Кажется, что зрелость направления и сама культура аэрокосмической разработки свели на нет любые «детские» ошибки. Но это не так. До сих пор ракеты взрываются с ошибкой преобразования переменной, марсоходы зависают с инверсией приоритета, а орбитальные зонды падают из-за значения не в той системе измерения. Даже «Старлайнер», прямой конкурент Crew Dragon, не долетел до МКС из-за качества софта.
SpaceX выложила этот видеоролик с любовью к своей культуре проб и ошибок
На этом фоне любопытно выглядит пример SpaceX. Эта относительно молодая компания с заметными достижениями не случилась бы без программного обеспечения, которое быстро разрабатывают и тестируют небольшие команды.
«Сокол» на x86
Проблемы вызывает не только надёжность кода — космос враждебен даже к «железу». На Земле от радиации мы защищены магнитным полем и атмосферой. В космосе поток высокоэнергетических частиц с лёгкостью превратит единицу в ноль в ячейке памяти или вообще выведет из строя компоненты. Космическая микроэлектроника как минимум требует специальной сертификации, а иногда прибегает к специальным микросхемам, к примеру, на технологиях полупроводников кремния на сапфире.
В SpaceX игнорируют сформировавшееся щепетильное отношение к космическому оборудованию. Компания с момента основания выделялась своей любовью к относительно дешёвым компонентам. К примеру, в 2005 году журналисты сообщали, что в ракете Falcon 1 компьютеры общались по обычному кабелю Ethernet.
Как рассказывали (1, 2) инженеры SpaceX на конференции GDC 2015, на ракете Falcon 9 на каждой из ступеней установлены по три двухъядерных компьютера архитектуры x86. В каждом компьютере на каждом из двух ядер независимо друг от друга работает операционная система с полётным софтом. Также в ракете установлены микроконтроллеры архитектуры PowerPC. Они управляют разными исполнительными механизмами: двигателями, решётчатыми рулями и так далее.
Всё это оборудование объединено в систему actor-judge.
- Почти всё выражается в традиционном для ТАУ виде контура управления: много раз в секунду с датчиков приходят данные, по ним и прошлым состояниям системы принимается решение, компьютер выдаёт сигналы устройствам.
- Ядра выполняют вычисления независимо друг от друга. Результат работы двух ядер сравнивается. Если на обоих ядрах получился разный результат, этот инстанс команду не посылает.
- Микроконтроллеры получают команды от трёх разных компьютеров. Микроконтроллер решает, кому из трёх верить, и выполняет команду. При рассинхронизации компьютеров контроллер положится на тот, который был самым точным в прошлом.
- Успешный полёт Falcon 9 возможен всего с одним оставшимся компьютером из трёх.
Управляющие компьютеры тестируют на так называемом стенде table rocket, «ракете на столе». «Мозги» Falcon 9 раскладывают на плоской поверхности и соединяют так, как они работают в реальной ракете. Затем специалисты запускают полный симулированный полёт, следят за поведением системы, её производительностью и возможными отказами. Во время симуляции могут отключить один из полётных компьютеров, чтобы понять, как на это ответит ракета.
Также всю систему управления в состоянии виртуализировать одна рабочая станция, что делает возможными массовое автоматизированное тестирование и проверку кода для полёта всего за сутки.
Похожая система с тройной избыточностью установлена в космическом корабле Dragon, говорили на GDC 2015. В ответах 2020 года сотрудники туманно намекнули, что кораблём Crew Dragon управляет отдельный четырёхъядерный процессор, сравнимый по вычислительной мощности со смартфоном пятилетней давности.
Вообще, SpaceX не отчитывается о точных моделях процессоров. Возможно, контроллеры PowerPC — это радиационно устойчивый RAD750, хорошо зарекомендовавший себя в марсоходах и зондах, а процессоры x86 — промышленные встраиваемые решения с низким тепловыделением и скромной производительностью.
Но для космоса многого не нужно. Сама МКС управляется процессором Intel 80386SX-20 с математическим сопроцессором 80387. Даже на момент запуска станции это был продукт десятилетней давности.
В космос в браузере
30 мая компания SpaceX впервые запустила людей на орбиту. Наконец появилась вторая опция доставки экипажа на Международную космическую станцию. С 2011 года единственным решением для этого были российские «Союзы».
Аудитория онлайн-трансляции обратила внимание, насколько корабль Crew Dragon выглядел крупнее трёхместной капсулы «Союза». При схожем внутреннем объёме у корабля SpaceX 4 метра диаметра против союзовских 2,2 м. SpaceX изначально рекламировала корабль как семиместный, но НАСА будет запускать на пилотируемых «Драконах» четырёх астронавтов.
Кроме физических различий наиболее заметно было то, как управляли кораблём люди. «Союз» не отходит от традиций авиационно-космического машиностроения: экипаж нажимает на тумблеры и клавиши, а сигнальные табло выводят информацию. «Крю Дрэгон» всё делает по-своему. Для футуристичного корабля SpaceX основной элемент — тачскрин.
Экраны Crew Dragon работают на браузерном движке Chromium, то есть интерфейсы созданы на HTML с использованием веб-компонентов, JavaScript и CSS. Внутри компании написали собственную реактивную библиотеку. Разработка интерфейсов идёт по методологии Agile с высокой планкой для покрытия юнит-тестами.
Скриншот браузерного симулятора стыковки.
Ещё до первого пилотируемого запуска SpaceX опубликовала браузерный симулятор стыковки «Крю Дрэгона» к МКС. Симулятор начинался как хобби двух разработчиков компании. Затем его решили закончить и опубликовали для широкой публики.
Симулятор остаётся симулятором: ничего общего с реальным кодом у него нет. Хотя оба продукта писала одна и та же команда, это два абсолютно разных проекта.
Всё это не значит, что космический корабль летает на JavaScript. Chromium на корабле используется только как средство отрисовки элементов пользовательского интерфейса. Слой взаимодействия с полётным программным обеспечением имеет все необходимые меры резервирования и находится за пределами дисплеев, говорят сотрудники SpaceX. Бэкенд написан на C/C++.
Обычный браузерный движок в космическом корабле — дерзкое решение. В ответах сотрудники SpaceX заверяли, что вне зависимости от технологического стэка стандарты разработки одинаковы, принципы написания надёжного и производительного ПО не меняются, а для понимания возможных ошибок тестирование идёт под разнообразными условиями. На случай отказов есть соответствующие уведомления и процедуры. Наконец, к тестированию добавляются сотни часов обучения астронавтов на полётных симуляторах на Земле.
На всякий случай под тач-дисплеями расположены физические клавиши. Они предназначены для критических ситуаций, к примеру, пожара в кабине корабля. Также есть физические кнопки «начать» и «прервать» для большинства операций, которые можно вызвать с дисплеев. НАСА разработало специальные требования к самим экранам, и решение SpaceX им соответствует.
Сотрудники SpaceX также объясняли, как они пришли к такому внешне нетрадиционному для аэрокосмической отрасли решению. Проект начинался как прототип для демонстрации образца дизайна для НАСА. Затем прототип с успехом запустили на реальном полётном «железе». Разработчикам понравились современные функции, которые присутствовали в браузерном движке, да и разработчиков под него на рынке достаточно.
Диаграмма показывает, как код на JavaScript изолирован от основных систем управления телескопа «Джеймс Уэбб»
Если отвлечься от опыта SpaceX, то ничего возмутительного в выборе JavaScript для космической области нет. В случае космического телескопа «Джеймс Уэбб» код на JS будет выполняться прямо на аппарате. Он не будет напрямую контролировать, к примеру, двигатели, он будет лишь вызывать другие программы.
Почему в космосе нет звука?
Потому что ракета летает на Linux.
Софт Falcon 9 регулярно обновляют. Почти каждый запуск ракета летит с незначительно обновлённым кодом. Хотя обновления настолько часты, «базу» под каждый конкретный запуск специально не адаптируют. Этим занимаются другие отделы SpaceX, которые вносят свои коррективы в полётные конфиги: задают переменные ветра в день запуска, меняют пределы отказоустойчивости и так далее.
Crew Dragon управляется операционной системой Linux с патчем PREEMPT_RT для работы в реальном времени. В SpaceX не используют какой-то стандартный сторонний дистрибутив. В компании собрали собственное ядро и связанные с ним утилиты. За годы разработки ядро почти не модифицировали. Были лишь мелкие изменения и несколько специализированных драйверов для работы с аппаратным обеспечением.
Среди используемых проектов с открытым исходным кодом — загрузчик операционной системы Das U-Boot, система сборки дистрибутива Buildroot, стандартная библиотека С++ и библиотека языка C Musl. Но вообще в SpaceX используют не так много написанного вне компании софта и выбирают открытые проекты только с максимально возможным качеством.
В SpaceX тесты пишут на Python, тестируют в LabVIEW, а летают на С++. При написании в С++ используют объектно-ориентированные техники языка, хотя предпочитают сохранять всё как можно более простым.
SpaceX на уровне кода закладывает возможность нормальной работы с потерей маршевых или маневровых двигателей с компенсацией алгоритмом. В конечные автоматы заложены всевозможные аварийные ситуации. К примеру, в конечный автомат корабля «Дрэгон» заложен автономный переход от сближения со станцией к уходу, если наблюдаются некоторые отказы.
Сотрудники SpaceX говорят, что в Dragon нет «ИИ» (вероятно, подразумеваются нейросетевые алгоритмы), хотя какое-то машинное зрение для навигации используется. Разработчики пояснили, что не исключают использование программ с машинным обучением когда-нибудь в будущем.
Starlink
Проект спутникового Интернета Starlink — это ещё больше компьютеров. В каждом запуске ракета Falcon 9 выводит на орбиту 60 спутников, которые содержат более 4 тысяч компьютеров на Linux. SpaceX вывела на околоземную орбиту десятки тысяч нод на Linux и более тысячи микроконтроллеров.
Анимация показывает, как раскрывается солнечная панель спутника
Полгода назад Starlink генерировал около 5 ТБ телеметрии в сутки, и группировка стала лишь крупнее. Растёт число спутников, идёт работа над уменьшением объёма пересылаемых данных. Чтобы снизить объём данных, которые хранятся на борту и пересылаются на Землю, часть проблем диагностируются на самом устройстве.
Каждый из спутников Starlink снабжён двигателем на эффекте Холла. За счёт него спутник занимает нужную позицию в рое и уходит от столкновения с космическим мусором. Но эти манёвры ещё нужно правильно выполнить, а отдел управления у крупнейшей группировки спутников крошечный.
Поэтому программисты озадачились тем, как избегать столкновений и управлять положением спутников автоматически. В разработанной системе спутникам задают, в какое окно нужно попасть — и они самостоятельно отправляются туда. Также несколько раз в сутки спутники получают с Земли данные по сближениям с другими объектами на орбите. Затем спутники самостоятельно вычисляют нужные манёвры и уходят от космического мусора.
Дублирование внутренних систем в случае спутника Starlink выполняется лишь до определённого предела. Из-за общего числа спутников отряд не заметит потери бойца. При отказе одной ноды пользователь на Земле будет подключаться к другому видимому в небе спутнику.
При разработке и тестировании каждый из спутников флотилии Starlink рассматривают не как отдельный спутник, а как сервер в дата-центре. Часть задач критически важна: это управление, обновление программного обеспечения, питание и безопасность. Под эти приложения пишутся отдельные тесты. Многие другие функции допускают более гибкий подход, похожий на разработку веб-сервисов.
Поэтому команда разворачивает тестовый билд на небольшое число спутников и сравнивает, как они себя ведут в сравнении с остальной группировкой. Далее при возникновении проблем софт улучшают или откатываются к предыдущей версии.
Этот процесс тестирования нужен для быстрого улучшения системы. Разработчики SpaceX утверждают, что много раз так удавалось найти и исправить отказы, которые на Земле предугадать было невозможно.
Спутник Starlink пропускает через себя пользовательские данные, и компьютерный взлом угрожает прослушкой. В SpaceX предусмотрели этот случай и добавили оконечное шифрование. Также каждый из компонентов — спутники, шлюзы и пользовательские терминалы — исполняет только подписанный код, поэтому надолго в системе злоумышленнику не прописаться.
Культура разработки
Б́ольшая часть инженеров программного обеспечения SpaceX работает в Сиэтле (штат Вашингтон) и Хоторне (Калифорния), часть — из офисов в Техасе.
Команда разработчиков ПО SpaceX, 2013 год
Традиционную аэрокосмическую отрасль повергает в шок и скорость разработки, и размер подразделений SpaceX. Как в 2019 году заявил (подкаст, отметка 44:00) главный директор по программному обеспечению ВВС США Николас Чайллан, там, где у государственных агентств потребовалось бы как минимум 2,5 тысячи программистов, SpaceX нанимает 50. При этом команда разработчиков пишет софт на девять разных аппаратов и проверяет код за 24 часа.
SpaceX пытается привлекать разработчиков из игровой индустрии. На GDC 2015 представители компании говорили, что у обладетелей диплома с направлением computer science навыков управления памятью нет. Неожиданно, но для космоса подходят темп работы и методы оптимизации игровых разработчиков. Как говорит Илон Маск, по сравнению с MMO стыковка двух кораблей — это элементарно просто.
В рамках AMA на «Реддите» в 2013 году сотрудники рассказали про структуру отделов разработки программного обспечения.
- В команде полётного программного обеспечения 7 лет назад было 35 человек. Примеры деятельности отдела: программы для ракеты Falcon 9, прототипа для отработки посадки первой ступени Grasshopper и космического корабля Dragon. Команда пишет основные компоненты для этих платформ, тестирует полётный код, разрабатывает программное обеспечение для связи и анализа данных на наземных станциях. Иногда эти сотрудники помогают в местном ЦУПе обеспечивать полёт.
- С продуктами отдела разработки внутреннего корпоративного софта сталкиваются все сотрудники SpaceX. Основное направление — внутреннее веб-приложение компании. Через него, к примеру, создают заказы на оборудование, проводят инвентаризацию и отслеживают часы работы. Для всего этого есть сторонние решения, но в SpaceX предпочитают самописную систему. Стэк разработки — типичное веб-программирование начала десятых годов: C#, MVC4, EF, SQL; Javascript, Knockout, Handlebars, LESS; REST API, положительно охарактеризованный сотрудниками как «super sexy».
- В 2013 году 9 человек писали софт для полётных компьютеров, которые не летают. Чтобы управлять космическим аппаратом из современного ЦУПа, нужно передавать много данных в высокораспределённых системах. Эта команда разработчиков реализует сложные пользовательские интерфейсы со строгими требованиями.
- Команда тестирования авионики работает с конструкторами авиационной электроники и пишет программы для тестирования аппаратного обеспечения. Такой софт обычно работает во время механических тестов в реальной среде. Цель этого отдела — автоматизация поиска проблем с оборудованием.
Глава и технический директор SpaceX Илон Маск известен своей нелюбовью к 40-часовым рабочим неделям. Он неоднократно заявлял, что работает по 80—120 часов в неделю. Каков поп, таков и приход. Частая жалоба на Glassdoor про SpaceX — плохой баланс жизни и работы. В анонимных отзывах сотрудники и стажёры говорят про частое выгорание и ставшие нормой 12 часовые смены.
- Блог компании Дата-центр «Миран»
- Управление разработкой
- Научно-популярное
- Космонавтика
Источник: habr.com