Станимира Влаева е софтуерен инженер и е част от основния екип инженери на Progress (преди – Telerik). Тя e само на 20 години и вече заема ключова позиция в ИТ сферата, в която работи и изнася лекции на професионални форуми по света. Наскоро се завърна от Ню Йорк, където говори пред над 100 специалисти в сферата на софтуерното инженерство.
Срещнахме се със Станимира, за да ни разкаже повече за настоящата си позиция. С какво се занимава, какви отговорности има, как поддържа квалификацията си, какви са възможностите за развитие и кои са най-големите заблуди за професията.
Jobs in BG: Какво е да работиш като софтуерен инженер в Progress?
Началото на кариерата Станимира е завършила Природоматематическата гимназия в Бургас, като важна част от развитието ѝ е участието в Телерик Академия. Там за първи път чува за компанията Progress. В момента паралелно с работата си изучава софтуерно инженерство в Софийския университет „Св. Климент Охридски“. „След като завърших първата си година в университета, реших, че искам да се занимавам с нещо, което ми доставя удоволствие и да разработвам истински проекти, които хората използват“. Така стартира кариерата ѝ в Progress и в момента е част от екипа на NativeScript (платформа с отворен код за създаване на мобилни приложения с Angular, JavaScript и TypeScript).
Какви са основните отговорности на тази позиция? Аз съм част от екипа на NativeScript и работя по интеграцията с Angular - уеб фреймуърк, разработен от Google. Благодарение на Angular уеб разработчиците могат да използват своите умения за създаване на мобилни приложения. Интересното при NativeScript е, че спектърът от технологии, с които създаваме платформата, е много голям. Пишем на не един или два програмни езика, като част от тях са JavaScript, TypeScript, Objective-C и Java. Голяма част от работата ни като софтуерни инженери е свързана и с интегриране на други технологии. Светът, в който живеем, се развива много динамично и постоянно се появяват нови версии на технологиите, с които работим. Например миналия месец излязоха нови версии на iOS и Android и нашата задачa е да осигуряваме поддръжка за тях в NativeScript.
Как типично протича един работен ден? Един типичен работен ден за мен започва с т.нар. дневни Scrum срещи, на които всеки от екипа разказва по какво работи. След това продължаваме с дневните си задачи. Голяма част от времето ни минава в получаване на обратна връзка от клиенти, поправяне на бъгове и работа по различни проблеми. Когато имаме някаква нова важна функционалност, отделяме почти целия си работен ден и работим по няколко души по нея. Това е т.нар. Pair programing (Програмиране по двойки).
Какви умения и качества са необходими за тази професия? Може би звучи клиширано и всеки го казва, но според мен логическото мислене, желанието да учиш нови неща и да напредваш бързо са най-важни. Също така работата с хора изисква много комуникативни умения. Много важен е и начинът, по който подхождаш към проблемите и да не се спираш пред предизвикателствата. Трябва да продължаваш да дълбаеш в проблема и когато стигнеш до решение, това е най-доброто възнаграждение.
Как поддържаш знанията и квалификацията си? За моето професионално развитие и развитието ми като програмист голяма роля изигра екипът, в който започнах работа. Той е съставен от едни от най-добрите програмисти в България. Менторството и знанията, които ми дадоха те през първата една година от професионалното ми развитие, ми помогнаха да стигна по-далеч, отколкото бих, само ако бях продължила обучението си в университета. За поддържане на своите знания посещавам и различни конференции, благодарение на това, че работя в Progress. Тази година участвах в най-голямата Angular конференция в Солт Лейк Сити – ng-conf. Говорих на NativeScript Developer Day в Ню Йорк и Ротердам. Предстои ми да изнеса лекция и на една от най-големите конференции в България – DevReach, която беше традиционна за компанията допреди няколко години и тази година възобновява провеждането си.
Какви са възможностите за развитие? Интересното при софтуерното инженерство е, че то обхваща доста голям спектър от човешкия живот и човек никога не може да спре да учи и да каже, че се е научил да програмира. Винаги има нови области, в които човек може да се развива. Най-популярните от тях в момента са изкуственият интелект и Data mining (извличането на знания от данни), за които се изискват много по-различни умения от това, което правя в момента. Има много приложни области на софтуерното инженерство, които са коренно различни една от друга и дори да си специалист в една от тях, винаги може да започнеш отначало в друга и да правиш това, което ти е интересно.
Що се касае до моето лично израстване, за мен е важно да ставам по-добра в това, което правя, и да се развивам в по-широк спектър от области в софтуерното инженерство. Най-добрата валидация на работата ми ще бъде технологията, която разработвам, да се използва от повече хора и да е по-успешна.
Кои са най-големите заблуди за тази професия? Най-голямата заблуда, която хората имат за програмистите, е, че софтуерът се пише от един човек. Софтуерните решения и проекти се създават като колаборация от много хора в екип. И най-важна е комуникацията между хората и как те умеят да работят един с друг. Обикновено програмистите прекарваме много малка част от деня си, пишейки код. Голяма част от времето ни преминава в обмисляне и разрешаване на проблеми, коментиране с други членове на екипа и оказване на взаимна помощ. Най-важен е мисловният процес при решаване на един казус, а ако в края на деня вече имаш готово решение и просто трябва да го напишеш, това е най-малкият проблем.