23.04.2020

История одного ядра от Татьяны Кондриковой: «Мне по душе и математика, и тестирование, и работа в КОМПАС-3D»

Мы продолжаем серию интервью «История одного ядра» с командой C3D Labs о том, как создается российское геометрическое ядро. Сегодня свою историю рассказывает Татьяна Кондрикова, математик-программист C3D Modeler.



Расскажи немного о себе, своей семье, как давно вы живете в Коломне?

Я родилась в Коломне. Моя мама переехала сюда из Архангельской области, по профессии она — фармацевт. Папа учился и долгое время жил в Херсоне, работал мотористом речных судов.

Что тебя привело на физмат Коломенского педагогического института?

Я хотела обязательно изучать математику — это единственное, что мне давалось легко. К остальным школьным предметам приходилось прикладывать усилия. Ну и далеко от дома уезжать не хотелось.

В институте был факультет дополнительных специализаций с курсами по программированию на C++, которые вел Андрей Богуславский. По его книгам на третьем курсе я начала изучать С++.



Почему ты пошла на курсы программирования?

Мне всегда было интересно на уроках информатики: составлять алгоритмы, придумывать, как они работают. В школе в 10 классе мы изучали Basic, Visual Basic. На информатике, как и на математике, мне было легко.

После окончания института удалось поработать по педагогической специальности?

Нет, и, честно говоря, я не хотела работать в школе. Пошла в педагогический только из-за возможности заниматься математикой. У нас были практики: после 3 курса — вожатыми в лагере, на 4 курсе — в 6 классе, на 5 курсе — в 10 классе. Я поняла, что у меня нет выдержки, которая нужна для общения с детьми в большом коллективе.

Конечно, знания по педагогике и психологии полезны для жизни. Поэтому я отучилась на психолога по дополнительной специальности.

Как состоялось твое знакомство с компанией АСКОН?

В 2008 я защитила диплом и летом отдыхала. Моя одноклассница, жена одного из сотрудников АСКОН, рассказала, что «компании нужны программисты, а ты училась на курсах, работа хорошая, иди». Она меня отправила, я и не готовилась особенно к собеседованию. В итоге меня взяли в тестировщики. Хотя я шла на программиста, но тестирование тоже вполне устроило. На тот момент я вообще не представляла, чем буду заниматься, в чем состоят обязанности. Системы проектирования (САПР) видела издалека на экране монитора. Когда ходила на курсы по программированию, там сидел Александр Абрамович Богуславский (прим. — инициатор применения КОМПАС в образовании и автор первых методических разработок) и показывал КОМПАС.

Моим первом делом в АСКОН стали автотесты в подразделении автоматизированного тестирования.

Сколько длилась твоя работа в тестировании?

Полтора года. Я занималась обработкой автоматизированного тестирования. Когда запускается проверка большой базы моделей и приходят результаты, надо руками проверить, что действительно ломается, и записать ошибку. Я писала скрипты с помощью программы TestComplete. Например, был скрипт по упрощенным сборкам, когда появился новый функционал «упрощенные сборки» (упрощенный тип открытия). Надо было открыть сборку в разных типах, разрезать и закрыть — и так пройти все сборки из папки. Хороший был скрипт — много вылетов нашлось.

Насколько близкой оказалась тебе работа в IT, в промышленной разработке софта?

Это единственное место, где я работала, и оно мне нравится. Мне по душе и в тестировании, и в математике, и просто работа в КОМПАС-3D как пользователю.

Как случился твой переход к математикам?

Точно помню, что в отдел математики перешла 1 апреля (в России этот день считается неофициальным Днем математика). Изначально ведь я шла в программисты, и Николай Николаевич Голованов, руководитель разработки ядра, тоже проводил со мной собеседование. Видимо, он запомнил мой интерес и как-то предложил: если хочешь к математикам, вот тебе задание.


2010 год: сотрудники отдела математики АСКОН

Ты помнишь это задание?

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

Когда ты готовилась к переходу к математикам, тебе хватило твоего вузовского образования? Ведь ядро — сложная область: дифференциальная геометрия, численные методы.

По сплайнам я пользовалась книгой «Геометрическое моделирование» Н.Н. Голованова, т.к. раньше их не изучала. Этого вполне хватило для работы. Моя база — «Геометрическое моделирование» и четыре книги по программированию Андрея Богуславского. Они всегда лежали в ящике рабочего стола.

Что стало твоей первой задачей в ядре?

Доработка мультилинии. Аналитиком от команды КОМПАС-3D по этой работе был Борис Пастухов — он сейчас тоже работает в C3D Labs инженером DevOps. Еще одно из первых заданий — ускорение проецирования спиральных поверхностей — спроецировать кусок и размножить.


Проецирование кинематической операции с направляющей цилиндрической спиралью

Занималась поддержкой операций выдавливания и вращения. Сотрудник, который делал новую функциональность, уволился, и мне передали вращение и выдавливание пространственных кривых и кривых на поверхности. Раньше в ядре было только выдавливание плоских контуров.


Выдавливание контура на поверхности

Кроме того, мне передали все запросы-ошибки по ассоциативным видам, т.е. по проецированию. Исправляла ошибки в триангуляции.

Все эти работы делались в интересах КОМПАС-3D, т.к. в то время отдел математики был частью разработки КОМПАСа. В 2012 году отдел становится компанией C3D Labs, выходит на рынок и сразу же получает первого внешнего заказчика — разработчика мебельных САПР «БАЗИС». Как ты восприняла это событие?

Мы стали больше внимания обращать на интерфейс ядра, приводить его к виду, чтобы удобно было пользоваться не только разработчикам КОМПАСа, но и нашим новым заказчикам. Занялись всеобщим переименованием файлов для единообразия названий, потом все дружно писали документацию.

С кем из внешних заказчиков C3D Labs ты начала работать?

Мы ездили в Петербург к разработчикам системы информационного моделирования Renga, когда она еще не называлась Renga. Я объясняла, как работать с ядром. Они пытались его встроить в проект, спрашивали, как правильно использовать операции. К примеру, построили выдавливание на дугах, на отрезках. Я показывала, как применить операцию выдавливания для этих случаев.

У тебя был перерыв в работе, связанный с декретным отпуском…

В апреле 2014 года я ушла в декрет и в июле родился старший сын, а в 2016 году — младший. Между ними я успела поработать — из дома, по 2 часа в день в течение года. Это сложно. Дома вообще плохо работать — там своих дел хватает.

Когда ты вернулась?

В октябре 2019-го.

Какие изменения ты заметила после декрета — в компании в целом, в своей работе?

Из нового — это Jira. Когда я уходила в декрет, ее только вводили, я чуть-чуть успела поработать удаленно. Что касается меня лично, то мне стало проще принимать решения, брать на себя ответственность.

Николай Голованов, руководитель разработки C3D Toolkit:

«Очень здорово, что Таня к нам вернулась, мы ее ждали, рассчитывали на нее. Хотя ей, наверное, было нелегко, потому что за то время, что она отсутствовала, многое изменилось. Ей пришлось осваивать новое, например сливы кода в разные ветки; функционал увеличился; вырос поток запросов от пользователей. Но Таня — боец, любит свое дело, справилась. Никаких поблажек я ей не делаю, стараюсь помочь. Считаю, что это нормальная обстановка, когда коллеги помогают друг другу».


За что ты сейчас отвечаешь в геометрическом ядре?

Ко мне вернулись все мои прошлые задачи: операции выдавливания и вращения, триангуляция, построение двумерной эквидистанты. Оказалось, что я все помню и хорошо ориентируюсь.

Еще я собираю математику для КОМПАСа, выкладываю ее в нашу ветку, потом запускаю тесты, которые в КОМПАСе запускают, смотрю ошибки и сообщаю о них. Когда ошибок нет, сливаюсь дальше в главную ветку КОМПАСа. Это тестирование к нам пришло от КОМПАСа. Процедура организована так, что каждый слив сопровождается сборкой КОМПАСа и запуском тестов. Если твои тесты не прошли, ты не можешь в главную ветку слить.

Ты по-прежнему тесно связана с разработкой КОМПАСа, а с другими заказчиками работаешь?

Да, на меня переводят запросы из техподдержки. С сервисдеском я напрямую не работаю, вижу запросы уже в Jira.

Вопрос, который сейчас не обойти — как тебе удается работать дома с двумя детьми в самоизоляции?

Конечно, мне больше нравится работать в офисе. Сейчас пришлось приспособиться. У меня есть расписание:

  • до 8:00 делаю завтрак, готовлю детям все на столе, вместе с перекусом на потом, завтракаем
  • 8:00-10:00 работа
  • 10:00-12:00 прогулка на балконе, занятия с детьми, домашние дела
  • 12:00-13:00 обед
  • 13:00 всех кладу спать
  • 13:00-17:00 работа


Старший сын спит мало, встает и идет собирать Lego. Младший может спать все 4 часа. Так что я за первую неделю приспособилась, дети привыкли, уже дают работать без криков. Но такой вариант работы — на крайний случай, как сейчас. Постоянно мне бы так работать не хотелось. Готовить надо гораздо больше, чем в обычный рабочий день. К выходным все усыпано игрушками — это уборка. Ну и грустно, общения не хватает.

Расскажи о своих увлечениях, что нравится помимо математики и алгоритмов?

Мы всей семьей любим велосипеды, даже младший сын на двухколесном катается. Я езжу на работу на велосипеде, когда тепло и не грязно. Велосипед для меня — средство передвижения по городу, а не только прогулка, тем более я не вожу машину.



Вопрос, который завершает каждую «Историю одного ядра»: твое напутствие будущим сотрудникам C3D Labs? Почему стоит заниматься разработкой геометрического ядра?

По-моему, заниматься разработкой геометрического ядра очень интересно: как из написанного кода получаются поверхности и тела, как несколько тел объединяются в одно, как одним движением с модели получается проекция. И все это является результатом нашей работы.