Сергей Афанасиев оглавява екипа за мобилна разработка в Devexperts. Започва в компанията като програмист преди повече от 10 години, когато първите мобилни проекти тепърва започват да се появяват. Сергей е изпитал всички трендове в сферата от първо лице – от J2ME, Blackberry до смарт часовници, извити екрани и десктоп процесори. Той ще бъде един от лекторите на Financial Mobile Software Challenges на 16-ти май, организирано от Devexperts. Преди това, Сергей ни сподели малко повече за спецификите при разработката на софтуерни решения във FinTech индустрията.

Какво те мотивира в работата?

Всякакви предизвикателства ме вдъхновяват, но най-вече такива, които са свързани с динамиката на мобилната софтуерна разработка. Например, чистата бекенд разработка е доста пораснала и стабилна на този етап от технологичното си развитие, докато мобилната не спира да еволюира месец след месец.

Кои са най-интересните аспекти от работата ти в момента?

На този етап от кариерата си имам възможност да наблюдавам и координирам развитието на няколко мобилни проекта в компанията, всеки от които си има своя собствена специфика. Това ми помага да видя по-мащабната картина в тази индустрия. Софтуерните решения, които разработваме в мобилния отдел варират от приложения, фокусирани върху комплексни трейдинг производни, през крипто трейдинг, до други финансови приложения, които не са толкова тясно обвързани с трейдинга. Боравим както с огромно количество изходен код, така и с малки експериментални сорсове. Кодът, с който работим също е доста разнообразен – такъв, разработен от клиента, който ние подобряваме и модернизираме: бекенд код, интеграционен код, както и множество програмни езици и среди.

Кои са най-големите технологични предизвикателства, с които си се сблъсквал?

Спомням си за едно специфично предизвикателство, което се превърна в сложен казус за екипа ми. Един от нашите големи клиенти успя да постигне огромен растеж на потребителската си база за изключително кратък период от време. Десетки хиляди потребители буквално започнаха да атакуват бекенда ни в началото на трейдинг деня – и то не чрез единична последователност от заявка-отговор, а чрез постоянен поток на трейдинг данни.

Как се справихте с тях?

Аз и екипът ми трябваше да действаме бързо и да използваме всяка удобна възможност да дадем малко чист въздух на бекенда. Затова се наложи да навлезем на дълбоко докато наблюдаваме нещата от високо: събрахме възможно най-много данни от всяко ниво на разработката, за да намерим начин да подобрим кода. Както можете да предположите, нямахме магическа пръчка, с която да решим проблема, но чрез няколко малки промени тук и там, успяхме драстично да подобрим цялостната производителност на системата. Върхът на айсберг беше, че трябваше да се допитаме дали клиентът получава достатъчно данни на всяка точка, за да избегнем допълнителни изчисления на сървъра. Навлизайки по-дълбоко в кода, успяхме да профилираме поведението на бекендa, за да идентифицираме най-ценните и най-неефективни операции. Например, прекалено много обекти се създаваха постоянно, което принуждаваше GC да използва повече ресурси от очакваното. С този проблем се справихме чрез контра-интуитивно решение като направихме кода “less object-oriented” – и го накарахме повторно да използва обекти, вместо да създава нови непроменими такива. Всичко това, плюс няколко малки поправки на начина, по който компонентите се комуникират ни позволи да се справим с претоварването от потреблението.

Какво би препоръчал на програмисти, които се занимават с разработката на приложения във FinTech индустрията?

Лично усъвършенстване на основна технология, с която боравите е изключително важно. Независимо дали е iOS, Android или нещо друго, да бъдете експерти само в една технология не е достатъчно, за да постигнете максимални резултати в разработката на софтуер за FinTech индустрията. Ако целите това е необходимо да дълбаете в корените на компютърната наука, за да разберете как работи дадена технология и защо е създадена да работи по този начин. В допълнение, не всяка технология ще оцелее в динамиката на софтуерната разработка, затова е важно да имате добра и стабилна основа, вместо просто красив антураж от програмни езици.

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

Трейдинг софтуера борави с огромни количества данни в реално време, което го прави доста чувствителен към забавянето. Ако подобен софтуер доставя остарели данни, дори с части от секундата, то той става почти безполезен. Нещо повече, мобилните трейдинг терминали вече не са просто екстри към някое цялостно уеб решение, напротив, от тях се очаква да доставят същата функционалност както десктоп решенията, само че на по-малък екран. Именно всичко това налага прилагането на множество комплексни логически схеми, които боравят не само с входящите данни на потребителите, но и с динамичното подаване на данни (data feed). А, да, и нека не забравяме необходимостта от добър UX, отзивчивост и стабилност – това са критичните фактори за всяко мобилно приложение.

Как Devexperts се справя с трудностите и предизвикателствата, които среща в това начинание?

Devexperts предприема нестандартен подход по няколко начина:

  1. Успяхме да преизползваме логически схеми, които са били създадени за Android & iOS приложения, с които подобрихме мобилната си разработка.
  2. Създадохме бинарен Data-aware протокол, който помага на приложенията да се справят с динамичното подаване на данни, дори при наличието на нестабилни мрежови условия, нещо, което е типично за мобилните устройства.

Ако имате интерес да научите повече, заповядайте на 16-ти май (четвъртък) от 19:00 ч. в офиса ни! С колегата Кирил нямаме търпение да разкажем в детайли за спецификите на мобилните приложения, които разработваме в Devexperts, както и за различните предизвикателства, с които се сблъскваме постоянно.

 

Share This