Стилиян Атанасов е роден в Свиленград, като в момента заема позицията Senior #Java Developer в офиса на ScaleFocus в Пловдив. Занимава се активно със софтуерно инженерство от почти 8 години. Споделя, че най-трудната част от работата му е менторството на колегите му, а най-приятната – предизвикателствата и динамиката на работната среда. Научете повече за неговата позиция.
Стилиян, как започна да се занимаваш с технологии и какви са твоите интереси?
Занимавам се със софтуерно инженерство по-активно от почти 8 години. Преди това съм работил различни неща, но винаги ме застигаше еднообразието на работния ден, а аз винаги търсех нови предизвикателства и динамична работна среда. Така се насочих към софтуерното инженерство главно с Java, тъй като преди 8 години когато започнах да търся нови предизвикателства. Java ми се стори като по-лесен език за учене, open-source e, общността е голяма и успявах да открия доста детайли за него в интернет. Java дава изключително много възможности и предизвикателства, така се вдъхнових да уча повече и повече с всеки изминал ден.
От друга страна, свободното си време обичам да прекарвам на различни места в природата, да се наслаждавам на спокойствието и споделено време със семейството ми. Едно от последните места, на които ходих, беше екопътека “Бяла Река” близо до Калофер. Когато нямам време да избягам от града – спортувам, като ходя на фитнес, също обичам да гледам филми и да играя компютърни игри.
Какви са изискванията за тази позиция?
За един Senior Java Developer е много важно не само добре да познава Java, нo и да бъде инициативен, организиран, иновативен. Минимум 4 години опит с Java. Умение да открива и разрешава проблеми бързо и ефикасно. Да е участвал в различните фази на един проект. Технологиите, които съм използвал в различните проекти, по които съм работил, са не малко. Въпреки това има такава, която продължава да е неразделна част от всеки нов проект и това е SpringFramework.
Какви са отговорностите на един Senior Java Developer ?
Част от неговата работа е да може да изгражда архитектура на проекти, да избира най-добрите инструменти и технологии спрямо изискванията на един проект. Участие в подбора на нови колеги, провеждане на технически интервюта. Също така, ключова роля играе умението му да вдъхновява, мотивира и съветва колегите с по-малко опит от него.
Какви средства за разработка използваш?
Трудно е да се изброят всички. Много зависи от особеностите на даден проект. Въпреки това неразделна част от живота на един Java Developer са умно IDE, добър текстов редактор и Linux. Ето и част от технологиите, с които работих по един от последните ми проекти – Spring, Apache Camel, Apache ActiveMQ, Mongo Atlas, SOAP, REST, GCP, Maven, Jenkins, OpenShift.
Има ли tool, платформа, service, който използваш, въпреки че виждаш проблеми в него?
SoapUI! Нямам избор, ако в проекта има Soap services. Един от най-честите проблеми, които ми се случват е, че както си работи, изведнъж просто замръзва. Нямам друг избор освен да го затворя и да започна работата си отначало. Като оставим този дефект настрани, този tool е доста полезен в автоматизирането на тестове, симулиране на web и rest services.
С какви други позиции в компанията има връзка твоята професия?
Професията ми има връзка с други Developers, QAs, PMs и понякога консултанти от клиентска страна. Ежедневна комуникация с моя екип. Работя съвместно с готиния HR екип в Пловдив при срещи с кандидати за отворени Java позиции.
Какви са предизвикателствата, които срещаш?
Работата в екип от колеги в различни часови зони може да бъде предизвикателна, но с добра организация постигаме целите си. Разбира се, не минава и ден без да се сблъскам с някой неразрешен бъг.
Коя е най-трудната задача, с която си се сблъсквал?
Това несъмнено е задачата да бъда ментор на по-малко опитните от мен колеги. Нужни са убедителност и индивидуален подход, за да успееш да мотивираш някой да покаже най-доброто от себе си и да развие своя потенциал.
Колко време отнема, за да се достигне до Senior ниво?
Не мисля, че времето е точната мерна единица. Според мен всичко зависи от желанието за развитие, натрупания опит и набор от умения. На мен лично ми отне повече от 5 години професионален опит с Java. През цялото време в израстването ми до тази позиция ми се налагаше да използвам различни бази данни като Oracle, MySql, MS Sql Server и други. В различните проекти, през които минах, натрупах по-голямата част от знания, а именно опит със Spring, REST, Maven, Continuous Integration, Application Servers, Networking, Linux
Колко души работят в твоя екип?
Проектът, по който работя в момента, се състои от 7 души.
А какъв е този проект, по който работиш?
Работя за голяма retail и e-commerce компания. Проектът представлява съвкупност от много backend системи, които комуникират помежду си. На технологично ниво включва следните технологии: Spring, Databases, SOAP, REST, MQ, GCP.
Какви други умения са необходими, за да бъдеш добър професионалист на твоята позиция?
Смятам, че не само за тази позиция, но като цяло за добрия професионалист ключовите качества и умения са отговорност, самокритичност, работа в екип и добра комуникация.
На кои въпроси трябва да може да отговори всеки кандидат за твоята позиция?
Трябва да може много добре да разбира и говори свободно за Java EE. Опитът с многонишково програмиране е от особена важност. Опит с бази данни като MySql и/или Oracle. Да е запознат с JMS API-а. При стартиране на нов проект, изграждането на архитектура му и избирането на стек от технологии също така са една важна част от работата на един Senior Developer. Това, разбира се, не изчерпва всички знания, които един Senior трябва да притежава, по-скоро това са някои от основните неща.
Да не забравяме и че за да стане Senior, на един човек му трябват поне 5 години опит в областта. Четенето и разбирането на код, който е написан от колега е плюс. Независимо дали става въпрос за Java или друг език, Senior Developer с достатъчно опит успява да улови бързо синтаксиса и преведе кода на разбираем език.