.NET е една от платформите, към които интересът в IT сектора никога не стихва. Дали това се дължи на високото ниво на сигурност и надеждност, които предоставя framework-a или на разнообразието от направления, в които може да се развива един програмист?
Предполагаме, че е комбинация от всичко. Факт е, че много големи и световни IT компании развиват .NET проекти, а някои дори имат специално организирани департаменти в това направление.
Coherent Solutions е една от тези, които залагат на платформата и имат изграден .NET департамент, състоящ се от близо 300 души, като над 35 от тях са локирани в България. Всяка страна , в която компанията има офис, има свой локален .NET департамент, но всички те са обединяват под една шапка и работят заедно на глобално ниво.
За да научим повече за .NET проектите и технологиите в Coherent Solutions се срещнахме с Милан Джокич, мениджър на департамента, който търсейки нови предизвикателства напуска родния Ниш, открива своя втори дом в София и сбъдва желанието си за професионално развитие в Coherent Solutions. Разговаряхме и с Николай Даскалов, Team Lead, Сергей Бабитски, Senior Solutions Architect и Костадин Спиридонов, Full Stack Developer в .NET департамента.
Разнообразие от проекти
Финанси, застраховане, строителство и Ecommerce са само част от индустриите, за които .NET екипите създават решения. Интеграциите, които правят ежедневно, са различни, системите за това – също.
„Проектите при нас са много разнообразни, както в технологичен аспект, така и в бизнес нуждите, които обслужват. Един от проектите ни е в сектора на здравеопазването и има над 50 млн. потребители, друг се занимава с различни smart устройства за дома, а трети е за публичния транспорт в САЩ и Канада. За последния например, ползваме най-новите и модерни технологии като .NET Core 6, Microservices, gRPC, Kubernetes, Docker, Azure“, споделя Николай.
Един от проектите, над които работят хората от департамента, се занимава с визуализацията на 3D модели в браузера на клиента – американска строителна компания, изграждаща домове и офис пространства. „Използвайки automation процеса, който създадохме, при вече подготвени скици за един етаж, клиентът няма нужда да прави наново всеки следващ етаж. Много лесно може да добавя определени preset-и, за да може целият модел и проектиране да стане по-бързо“, разказва Милан, като допълва, че изграждат и друг automation процес, с който 2D визиите лесно се превръщат в 3D, реализират виртуална разходка, помагаща на хората да визуализират и разгледат сградата или части от нея.
Друг клиент – LifeTime Fitness, един от най-големите фитнес и СПА центрове в САЩ, също се обръща за съдействие към Coherent Solutions. Екипите от програмисти разработват за тях различни мобилни и уеб приложения, които помагат за резервация на зали за спорт, плащания, запазване на тренировка с инструктор. Също така правят и мобилното приложение, което чрез bluetooth се свързва по време на практиката – тичане на пътека, каране на колело, а статистиките от уреда се прехвърлят на мобилния телефон на спортуващия и позволяват да се следят прогреса и постиженията.
Милан споделя, че този проект е бил много предизвикателен, тъй като е било нужно development екипа на Coherent Solutions да стане част от development екипа на клиента и всички да работят в синхрон. „Работата при тях беше много различна и ползваха други системи, но бързо успяхме да изчистим процесите и сега имаме над 30 човека от наша страна, включени в този проект. Нуждите на клиента непрекъснато се увеличават и отваряме позиции като Мobile developers, Front-end, Backend и DevOps за разработката.“
Разнообразието от решения не спира дотук. Друг интересен проект пък помага на хора с увреден слух, ставайки изключително нужен, особено по време на пандемията. Coherent Solutions предоставят на своя клиент продукт, който е в помощ на пациенти, притежаващи слухови апарати, като чрез него те могат да се консултират с лекаря си от дистанция. „Създадохме система за дистанционна проверка и настройване на слуховите апарати, чрез нашия портал лекаря се свързва с мобилния си телефон към слуховия апарат на пациента чрез bluetooth и може да наблюдава настройките на самия апарат, как чува клиента и дали има нужда от допълнителна настройка“, допълва Милан.
WEX Health или как се създава продукт за над 50 млн. активни потребители
Един от най-големите проекти на компанията обслужва сектора на здравеопазването. Крайният продукт, който създават в Coherent Solutions, се оказва нелека задача и се състои от множество модули и приложения. “Винаги казвам на хората, че е подобно на айсберг. Повече от 50 милиона потребители използват няколко уеб приложения – най-горната част на айсберга. И има долната част: стотици приложения, работещи във фонов режим, непрекъснато извличат и трансформират данните, изпращат ги до банките или организациите, получават и обработват входящи данни, генерират отчети, създават и отпечатват чекове, електронни плащания”, обяснява ни Сергей.
Продуктът се състои от стотици модули и 10 милиона кодови линии и за да работи всичко ефективно е необходимо тясно сътрудничество между екипите. От една страна клиентът разполага с много екипи на място – администратори на бази данни; DevOps; Applications/Solutions Architects; Enterprise Architects; Mobile Application екип и много други, но пък екипите на Coherent Solutions са малки и гъвкави, което помага за справянето с такъв тип задача и постигането на невероятно добри резултати.
Сергей споделя, че компанията е задължена да спазва много регулации и една от тях е, че няма право да използва софтуер и компоненти, които не получават актуализации за сигурност и корекции, а това се превръща в предизвикателство. “Поради тази причина ще трябва да мигрираме цялата кодова база от .NET Framework към .NET Core съвсем скоро. Преди няколко години започнахме да разработваме нови модули, използвайки .NET Standard и .NET Core. Но имайки предвид количеството код, с който разполагаме, това все още се разглежда като голямо предизвикателство и то не защото е трудно да се мигрира кодът, а защото искаме да го „надграждаме“ и да комбинираме това с предстоящи актуализации и редизайн на технологията на портала”.
Azure и други cloud технологии
Над 70% от проектите, които Coherent Solutions разработва се базират на новите и най-модерни технологии, a друга, макар и малка част от тях, на legacy технологиите. Това прави използваните инструменти и езици изключително разнообразни. „Стараем се в работата всичко да се преработва към модерните технологии. Използваме .NET Core, голяма част от нещата са на cloud, било то Azure, AWS, Google Cloud. При клиенти, с които имаме дългосрочни партньорства, някои от решенията им са вече на пазара от 15 – 20 години, и с тях работим по подобряване и преминаване от по-старите към по-новите технологии“, обяснява Милан.
Популярността и лесният достъп на бизнеса до дигитализация чрез cloud технологиите, е това, което насърчава Coherent Solutions да се съсредоточат именно върху тях и по-точно върху Azure, целейки постигане на по-голяма ефективност и качество.
Към момента проектите на компанията обхващат почти всички направления на Azure – AI, Analytics, Compute, Integration, IoT и Web. „В .NET департамента работим с голям брой клиенти от различни индустрии, като значителен брой от продуктите им са базирани в Azure или се подготвя тяхното мигриране. Така всеки от колегите в отдела има възможност да се докосне до най-новите и интересни услуги, предоставяни от Azure“, казва Костадин.
Предизвикателствата и качествения код
При такова разнообразие от индустрии и решения, предизвикателствата на .NET департамента също не са малко и всеки един от експертите ги открива в различна част от работата си.
Според Милан някои от най-предизвикателните моменти са свързани с миграциите от по-старите към новите технологии „ Понякога старата платформа трябва да функционира, но паралелно и да се разработи новата, базирана на предходната. Така миграциите на данните стават проблемни, но самият код също. Работейки върху новия код, програмистът трябва да разбере и бизнес логиката на стария, което отнема доста време“, споделя той и разказва, че е времеемко, както процесът по разработка на кода, така и това да убедиш клиента, че тази инвестиция наистина си струва.
За Николай едно от най-големите предизвикателства се оказва това винаги да си в крак с cutting edge технологиите и същевременно да имаш достатъчно рутина, за да ги прилагаш или адаптираш по най-добрия възможен начин за съответните проекти.
Именно, за да бъдат на гребена на вълната в технологичния свят, в .NET екипа има създадени някои добри практики, които помагат за написването на качествен код.
„Всеки проект има специфики, но като цяло имаме разписан документ кои стандарти трябва да се следят при създаването на код. На по-младшите програмисти им отнема време да разберат това, но затова има code review процес, който по-опитните правят. Винаги е възможно да се допусне грешка, така че още един преглед на кода никога не е излишен“, обяснява Милан.
Като друга добра практика в департамента Милан определя и agile development-a, разделен на спринтове. Така че на всеки няколко спринта се отделя време за code refactoring. Екипът се събира и обсъжда какво е направено в изминалите спринтове и къде е нужна преработка, за да се следват добрите практики, а и да се улесни работата в бъдеще.
„Всеки разработчик работи в технология, която му е интересна“
Ключът към постигането на симбиоза между проектите и екипите, които работят за тях, се оказва точната за всеки технология. Николай споделя, че стремеж на компанията е всеки да се развива в направлението, в което предпочита и се чувства най-добре.
Така всеки може да избира от различните отворени позиции за .NET Core developers, Microservices, Cloud, Azure, AWS или за legacy технологиите.
„Независимо от проекта, един програмист трябва много добре да познава структурата на данните, основите на C#, да разбира бази данни и да има основни познания за Frontend. Това би допринесло не само за по-качествения код, но и за по-добро вписване в екипа“, уточнява Милан.
Също така компанията дава възможност и на хора с базови познания, които имат основите на .NET и такива, които стартират кариера в сектора или се преквалифицират.
Coherent Solutions има собствен тренировъчен център, предлагащ програми за професионално израстване, като обучението за тези, които искат да се занимават с .NET, продължава около 6 месеца. „През първата половина от програмата, колегите работят върху 4 модула – C# Basics, Database, Front-end и .NЕТ Web Development. Втората половина включва работа по реален вътрешен проект“, обяснява Костадин.
Освен развитието на технически умения, курсовете помагат и за работата в екип, комуникация, презентиране, критично мислене и позитивно отношение. „Една от основните цели е да ентусиазираме младите колеги да се развиват, занимавайки се с това, което харесват. От друга страна, инициативата е чудесна възможност за опитните хора да споделят знанията си и да вдъхновят начинаещите“, допълва Костадин.
Обученията са подготвени така, че новите кадри преминават Basic Training, Project oriented training, Mentorship. Целта е след една година специалистът да бъде напълно готов за истинкси клиентски проект. А Милан споделя, че в повечето случаи практиката показва, че хората усвояват знанията много по-рано и влизат в реален проект по-бързо.
Искаш да работиш за различни индустрии и обичаш предизвикателствата? Стани част от .NET екипа на Coherent Solutions и избери най-подходящата за теб роля тук.