.NET Core – DevStyleR https://devstyler.bg Новини за разработчици от технологии до лайфстайл Fri, 10 Feb 2023 08:53:45 +0000 bg-BG hourly 1 https://wordpress.org/?v=6.8.5 В бъдеще професиите в ИТ сферата няма да са излишни https://devstyler.bg/blog/2022/05/25/v-badeshte-profesiite-v-it-sferata-nyama-da-sa-izlishni/ Wed, 25 May 2022 06:00:12 +0000 https://devstyler.bg/?p=72578 ...]]> Стамо Петков е ръководител на отдел Майкрософт Технологии в Информационно Обслужване АД. Повече от 20 години работи в сферата на информационните технологии и продължава с огромно желание да научава нови неща, да споделя опит и знания със студентите си в Софтуни или с други професионалисти на различни конференции по целия свят. Проектирането и изграждането на мултиплатформени, скалируеми web приложения, включващи разнообразни технологични и инфраструктурни решения са негова страст. В компанията е част от екипа създал едни от най-значимите информационни системи в България: Националната Здравно-информационна Система и Единната Информационна Система на Съдилищата. Обича да пътува, да среща нови и различни хора и прекарва по-голямата част от свободното си време в каяка или в планината.

Като Ръководител Отдел Microsoft Технологии, имате пряк поглед над стремглавото развитие в ИТ сферата. Кои технологии са широко популярни днес? Как очаквате технологичният стек да се промени в бъдеще?

Много тежък е въпроса за това кои технологии са популярни в момента, тъй като те станаха изключително много. Но е много трудно човек да обхване целия спектър от развиващи се, появяващи се непрекъснато нови неща. В недалечното минало – по-малко от 10 години назад, беше доста по-просто. Всички знаем в кой стек работим. Задачите бяха горе-долу еднотипни, всички вендори предлагаха близки решения и по функционалност, и като използваемост. Общо взето хората си се вместваха в един технологичен стек. Имаха някакви компетенции и работеха само в тях – нещата бяха много лесни. За съжаление, това време е тотално загубено. Аз не очаквам по-нататък работата да продължи по същия начин.

В момента за всяка една задача, върху която започваме да работим, ние трябва да разгледаме и оценим няколко различни технологии и да изберем най-добрата от тях, т.е тази, която ще свърши най-добра работа. След това трябва да измислим как точно да съберем всички тези технологии в една работеща система, защото те много често са доста различни. Понеже споменахте отдела “Microsoft Технологии” май остана само в името на отдела това нещо, тъй като в момента непрекъснато ни се налага да променяме нещата и да shift-ваме в различни посоки, включително и доста далеч от това, което разработват Microsoft в момента. Очаквам в бъдеще непрекъснато да се появяват все повече и повече новости. За да бъдем конкурентни ще трябва да се ориентираме, като водеща тук ще бъде задачата, която искаме да изпълним и по нея ще трябва да си подберем правилната технология и правилния технологичен старт. Хората ще трябва да се нагаждат. Няма да имаме комфорта, който имахме до скоро – да работим нещата, които знаем. Сега ще трябва нонстоп да се търсят и учат нови неща. Никакъв шанс за някакво по-добро развитие в индустрията, ако спрете да научавате и виждате новостите, които излизат. Така че е много трудно да се специфицира точно какъв технологичен стек ще бъде. Ние виждаме, че в развитието на ИТ сферата има много скокове. Има технологии, които замират, след това отново се появяват. Има такива, които сме забравили и идват. Има тотално нови. Прогнозирането е практически невъзможно. Единственото, за което съм абсолютно убеден е че този стек ще бъде супер разнообразен и ще трябва непрекъснато да се търсят новите варианти.

Кои са технологиите, които променят пазара на ИТ кадри? Какви специалисти вече се търсят и предстои да се търсят през следващите 10 години? Какво е образованието, което бъдещите професии ще изискват и в кои компании ще има необходимост от най-много кадри? Цялото интервю с Стамо Петков, както и още мнения на водещи експерти от ИТ индустрията в България може да намерите в специалното издание „ИТ Професиите в Бъдещето“.

]]>
В А1 приемаме за своя мисия да сме двигател на дигиталната трансформация https://devstyler.bg/blog/2022/05/18/v-a1-priemame-za-svoya-misiya-da-sme-dvigatel-na-digitalnata-transformatsiya/ Wed, 18 May 2022 06:00:09 +0000 https://devstyler.bg/?p=72506 ...]]> Марин Бодичев заема настоящата си позиция в А1 от април 2016 година. Отделът, който ръководи, е част от направление „ИТ и дигитална трансформация“ и работи по създаването и развитието на системи за обслужване на клиенти и осигуряване на вътрешни бизнес процеси, като CRM, Data Warehouse, Digital Signing, управление на документооборот, разплащателни решения и други. Марин става част от компанията през 2009 като системен анализатор, след което последователно заема няколко инженерни и мениджърски позиции, които го водят до днешната му роля. Завършил е Техническия университет в София като бакалавър по телекомуникации и магистър по индустриален мениджмънт.

Марин, Вие сте старши мениджър „Билинг и бизнес системи“ в А1 България. Какви са отговорностите и предизвикателствата, свързани с Вашата роля?

Има два аспекта, които трябва да се вземат предвид. От една страна е специфичната професия в сферата на билинг и бизнес системи в компания от мащаба на А1, а от друга – самата мениджърска роля.

А1 е компания, която едновременно създава част от продуктите си със собствени ресурси и екипи, но също ползва и готови решения, създадени от други компании. За целта е необходима значителна по своята същност и сложност интеграция между системите, така че те да работят ефективно и в синхрон. Една от основните ми отговорности е да намирам правилния баланс между тези два фактора. Помага ни това, че в А1 имаме ясно очертани приоритети и цели за развитие. Друго предимство е, че разполагаме с голям екип от професионалисти с различни специалности, което ни помага да намираме успешно решение във всяка ситуация.

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

Що се отнася до ролята ми на мениджър, моя отговорност е да направя така, че всички колеги в екипа да се чувстват добре на работното си място, да знаят какви са задачите им, да имат необходимите ресурси за изпълнението им и да се чувстват оценени. Предизвикателствата в това отношение са свързани с голямата динамика в последните години. Предполагам това важи за всички мениджъри. Изискванията към ръководителите днес се различава сериозно от тези преди 10 години. Скоростта, с която се обменя информация и се вземат стратегически решения се увеличава непрекъснато. Освен това днес са необходими много по-разнообразни умения, за да можем да общуваме с трите различни поколения – Х, Y и Z – всяко със своите особености, потребности и отношение към комуникацията, работните процеси, развитието на технологиите и всичко останало.

Моя отговорност е да привличам нови колеги с подходящия начин на мислене, в синхрон с корпоративната ни култура, които същевременно имат и необходимите технически познания. С бързия темп на развитие на екипа това е и сериозно предизвикателство. Радвам се, че компанията ни инвестира усилено в програмите за млади таланти – това много помага да намерим хора с потенциал, които се превръщат в блестящи професионалисти.

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

Кои са технологиите, които променят пазара на ИТ кадри? Какви специалисти вече се търсят и предстои да се търсят през следващите 10 години? Какво е образованието, което бъдещите професии ще изискват и в кои компании ще има необходимост от най-много кадри? Цялото интервю с  Марин Бодичев, както и още мнения на водещи експерти от ИТ индустрията в България може да намерите в специалното издание „ИТ Професиите в Бъдещето“.

]]>
В А1 изграждаме професионалисти, които създават аргументирани решения https://devstyler.bg/blog/2022/04/18/v-a1-izgrazhdame-profesionalisti-koito-sazdavat-argumentirani-resheniya/ Mon, 18 Apr 2022 04:59:57 +0000 https://devstyler.bg/?p=65568 ...]]> Даниел Йорданов става част от направление „Информационни технологии и дигитална трансформация“ на А1 през 2015 година, след сливането с blizoo. Там той работи от 2010 г. като ръководител на екипа, който отговаря за разработването и поддръжката на основната CRM система в компанията, базирана на .NET Framework и ползваща C# като основен език за програмиране. След присъединяването на екипа му към А1 тази система е интегрирана в останалите платформи за оперативна поддръжка. В резултат на добрите резултати екипът последователно придобива по-широк обхват на дейности и отговорности в компанията. Впоследствие Даниел получава покана от мениджмънта да поеме проекта за модернизация на сайта a1.bg и self-care приложението Моят А1. В началото работи в сътрудничество с външна компания, но с течение на времето екипът на Даниел се разраства и поема разработките, като от близо година отговаря за тях самостоятелно. Решението за a1.bg/Моят A1 е базирано на микросървиси, написани на .NET Core, с FrontEnd решения, базирани на React, native IOS/Android, React Native. Даниел има дългогодишен опит в работата със C#, HTML, CSS, Javascript (JQuery). В последните години добавя към програмните езици, с които борави, React, NodeJS, Python, Bash. Отвъд директно свързаните с програмирането технологии, в посока деплоймънт има опит с containers (Docker, Podman, Buildah), Kubernetes и OpenShift, които счита за изключително важни заради микросървис архитектурата.

Даниел, разкажи ни повече за твоя старт в кариерата. Как се насочи към информационните технологии и по-специално към разработването на софтуер?

Моят старт в професията беше отдавна и е доста по-различен от този на голяма част от хората в индустрията. Учех в Софийската математическа гимназия и бях убеден, че ще се занимавам с приложна математика, до момента, в който получих задание по информатика. Това беше и първият път, когато се докоснах до програмиране. Хареса ми дотолкова, че много бързо промених визията си за бъдещето – от човек, който учи и е решил да се занимава с приложна математика, в човек, който се насочва към информатиката. Сравнително късно започнах с програмирането. По време на втората година от следването ми по информатика започнах и първата си работа като програмист – през 2005-та година.

Интересен кариерен обрат! Дълги години работиш със C#, HTML, CSS, JavaScript, боравиш с React, NodeJS, Python, Bash, имаш опит с Docker, Podman, Buildah, Kubernetes и OpenShift. Направо може да се каже, че си технологичен полиглот – как се стига до това ниво? Има ли основа, която е задължителна?

Да, това са технологии, с които работя в последно време. Най-дългогодишен опит имам със С#. Преди 2-3 години започнах да се занимавам с React, контейнерните технологии – OpenShift, Kubernetes. Тогава поех екипа „Разработка на потребителски софтуер“ в А1, който ръководя и в момента. Преди това не бях използвал тези технологии, но доста бързо “влязох в час”. Преходът за мен беше от конвеционалното програмиране, както аз го наричам, с HTML, JavaScript, библиотеки като JQuery и т.н., към React и въобще към модерните front-end frameworks, React, Angular, Vue. Имаше доста за учене, със сигурност бих го описал като предизвикателство

Мисля, че е показателно за многобройните възможности за професионално израстване, че вече 12 години се развивам в компанията. Първо като член на екипа на Blizoo, а след това и като част от А1. В Blizoo ръководех екипа, който изграждаше система, която правеше почти всичко в компанията, включително имаше функционалност за обслужване на клиенти. С колегите ми бяхме стигнали до ниво провизиониране на услугите. Системата, която бяхме изградили, беше базирана на така наречените конвенционални технологии и аз вярвах, че вече съм измислил едва ли не всичко. Но когато поех екипа, с който работя в момента, пред мен се откриха изцяло нови хоризонти, включващи контейнерни технологии, modern JavaScript frameworks и т.н.

А по какви проекти работите сега? Кои са чисто технологичните предизвикателства, които срещате?

През последните години отговарям за екипа в А1, който се занимава със сайта на компанията и приложението за самообслужване Mоят A1. Дотогава те се разработваха от външна компания и практически трябваше да създам нов екип, който да поеме задачите, изпълнявани преди това от външната компания. Необходимо беше и да направим плавно предаване на знания, така че да сме запознати с проекта. Започнах с екип от 3-4 човека, а в момента сме вече 26, което е доста сериозен ръст в рамките на изминалите две-три години.

От около година започнахме да участваме в проекти, свързани с партньори на А1 И разработваме приложения и за външни компании. Основният технологичен стек, който се използва конкретно в моя екип, включва ASP.NET Core за back-end-а и React – за front-end. Стараем се да създаваме колкото се може по-голяма база от „преизползваем“ код, за да може, когато се наложи, да не започваме отначало, а да стъпим върху основа, върху която да надграждаме.

В А1 се работи и с многообразни други съвременни технологии –  с Node.js, Java и др.

Споменахте, че екипът, който ръководите е 26 човека. Какви са техните позиции и отговорности?

Да, вече сме 26 човека и плановете са и още да се разширяваме. Екипът ми е обособен в 3 основни звена: mobile development, front-end development и back-end development. Стараем се хората, които работят в domain-a, свързан със сайта на компанията и приложението за самообслужване Моят A1, да могат да работят и по съвместни проекти с фирми-партньори. Постигаме това, като разработваме компоненти, които могат да се използват за база и при други проекти. Вярвам, че това е полезно и за тяхното професионално развитие, дава им нови идеи и поле за изява.

Структурата в екипа, както и в цялата компания, е сравнително плоска по отношение на отговорностите и позициите. Визията ни е с течение на времето да започнем да разделяме екипа на по-малки екипчета, които да работят заедно по популярните вече Agile или Scrum методологии. Въпреки това, към момента аз се старая да нямаме стриктно разграничаване на ролите на хората в екипа.

Екипът ни се разраства бързо и плановете са да расте и занапред. Каним да се присъединят към нас както junior-и и стажанти, така и хора с повече професионален опит. По отношение на младите кадри, смятам, че е много ценна възможност, както за тях, защото имат възможност да учат тънкостите на професията в реална бизнес среда от по-опитните колеги, така и за нас – ние винаги се радваме на новите идеи на младите хора. Пример за бързо развиващ се професионалист е и Мелик Пехливанов, софтуерен инженер , част от екипа ми, с когото работя успешно в последните 2 години.

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

Как ти се отразява лидерската роля и какви предизвикателства крие тя? Ти сподели за хубавата част, виждайки израстването на тези junior-и във вече, така да се каже, по-опитни специалисти в различните екипи на компанията.

Голямо удовлетворение е да виждаш развитието на младите колеги. Разбира се, лидерската роля има и своите предизвикателства – това е неизбежно. Вярвам, че разликата между лидер и бос е огромна и винаги се старая да съм добър лидер. Целта ми е да направя така, че хората от екипа ми постепенно да развият най-добрите си професионални знания и умения, и да се превърнат самите те в лидери, които ще са движеща сила за нови постижения. Старая се да бъда не просто мениджър, а човек, към когото винаги могат да се обърнат за идея и помощ при технологичен, или дори чисто житейски въпрос.

Целият процес на изграждане на екипа, който ръководя, и работата с колегите в него, за мен е една цяла нова ера. Чувствам голямо удовлетворение от постигнатото развитие – от това, че започнахме 3-4 човека и се разрастнахме многократно. Горд съм, че непрекъснато се доказваме и надграждаме.

А според теб какво не може да си позволи един ръководител на екип?

Отнасям се с хората в екипа така, че те да се чувстват добре. Вярвам, че откритата комуникация е много важна не само за постигането на целите в краткосрочен план, но и за развитието на всеки от екипа и създаването на още повече нови възможности.

Може ли да споделиш някоя тънкост или да дадеш ценен съвет на база на твоя опит до момента на разработчиците, които са 90% от нашата аудитория? 

Съветът ми е към по-младите колеги, които сега навлизат в професията. В началото на кариерния си път в много по-голяма степен повечето хора наблягат на технологиите. “Коя е най-новата? Кой програмен език да науча?” А всъщност, най-важното е не на какъв език, а какво точно ще напишеш. За да напишеш нещо качествено, трябва да го разбираш. Затова е много важно хората да развиват уменията си, да разбират проблематиката на това, което разработват.

Има много случаи, в които хората създават start-up, който е свързан с нещо, което ги вълнува. Там нещата се получават от само себе си. “Аз разбирам конкретиката, защото това аз съм си го измислил”. Обаче, когато пишеш софтуер за друга компания, е много важно да се стараеш максимално да вникнеш в бизнес логиката и проблематиката. Ясно е, че когато е необходимо да научиш React, го правиш. Когато трябва да научиш как да се интегрира конкретна система – също. По-трудното е да се навлезе в конкретната бизнес логика, да се погледне през очите на потребителите, защото ако те не използват софтуера, то той губи смисъл. Нашата цел е да разработим софтуер, който да е максимално лесен, удобен и приятен за ползване от хората, които ще работят с него, а не просто да изпълним заданието. Реално, този подход в последно време вече започва да разделя хората в индустрията. Има програмисти, които се превръщат в кодъри. Те получават задача и просто пишат на конкретната технология. От друга страна, има и разработчици, които са problem solver-и – това са хора, които разбират проблема, и могат да дадат конкретни предложения.

Именно това е ключово за мен, като ръководител на екип, и се радвам, че това е и цялостната визия на компанията. В А1 изграждаме професионалисти, които навлизат в дълбочина в естеството на бизнес логиката и могат да решават проблеми. При нас динамиката на работа налага колегите да се научат много ясно да разбират какво точно прави екипът ни, но и защо го правим. Това е различно и много по-ценно в дългосрочен план от буквално изпълнение на задание. Затова моят съвет е:“Наблягайте върху това да разберете проблема, който вашият код трябва да реши. Каква технология ще използвате, зависи от много фактори и се променя през годините”.

Кои са задължителните въпроси, които задаваш на интервю с кандидати за твоя екип? 

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

Голяма част от хората, които сме наемали за екипа, са били junior-и и затова съм малко по-благосклонен към факта, че може да не знаят всичко. Понякога самите технически въпроси в интервюто са, за да опозная човека. В подобни моменти, дори да не получа точния отговор, анализирам начина, по който кандидатът подхожда към въпроса. Един честен отговор “Аз това не го знам” понякога е нещо много хубаво. По-добре да чуя това, отколкото да се опитват да ме излъжат, да уцелят и т.н..

За интервютата с по-senior кандидати се подготвям с по-сериозни въпроси, но дори и за тези позиции е по-важно да намеря човек, който ще пасне на моя екип. През годините съм попадал на разработчици, които са били с много добри технически знания, но просто не се вписват в екипа. Много е важно към екипа да се присъединят точните хора.

А кои са най-ценните качества и умения, които търсиш у кандидатите?

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

Удовлетворението от работата винаги личи и според мен води и до по-висока мотивация и до по-добри резултати.

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

Може ли да споделиш какви хора търсиш точно за твоя екип?

Както вече споменах основните технологии, с които работим, са React и C#. В други екипи, с които работим, се ползва Node.js. Имаме възможности и за Agile хора. Търсим колеги, които имат желание да надграждат знанията и уменията си и това е нашата дългосрочна политика. Фокусът ни в момента са C# и React. Ще се радваме, ако към екипа ни се присъединят и хора с много добри познания по OpenShift и ORM библиотеки (EF Core, Hibernate/NHibernate). Такива хора ще се търсят и занапред в компанията.

Как се промени процесът на софтуерна разработка през годините и какви са тенденциите за в бъдеще?

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

А как се промени визията за класическия програмист през годините?

Стана много модерно да си програмист през последните 7-8 години. Софтуерните академии дадоха възможност на много хора да учат и дори да се преквалифицират в тази сфера. Някои от тях откриха призванието на живота си и установиха, че това, което са учили, не им харесва толкова, колкото да програмират. Помня, когато за първи път се появи един филм за Марк Зукърбърг “Социална мрежа” и беше много забавно, когато изведнъж се оказа, че хората започват да харесват програмисти. Явно е имало някакъв вид nerd-щина, остарели стереотипи покрай професията, която постепенно се променя. В днешно време професионалистите, които се занимават с разработка на софтуер, са толкова широк спектър от личности, че е много трудно да кажем, че “програмистите са ето такива”. Вероятно преди 20-тина години наистина хората, които са се занимавали с програмиране, е можело да бъдат квалифицирани като по-странни типове, но вече не е така.

]]>
С упоритост и желание всички цели са изпълними https://devstyler.bg/blog/2022/04/04/s-uporitost-i-zhelanie-vsichki-tseli-sa-izpalnimi/ Mon, 04 Apr 2022 06:10:28 +0000 https://devstyler.bg/?p=63891 ...]]> Симеон Томов се присъединява към екипа на направление „Информационни технологии и дигитална трансформация“ на А1 през 2017 на позиция DevOps. През 2018 професионалните му интереси се насочват към програмирането и поема ролята на Junior .Net Web Developer в компанията. Талантът и упоритата му работа не остават незабелязани и през 2019 става софтуерен инженер. Година по-късно поема още повече задачи и отговорности като старши софтуерен инженер. През годините е участвал в множество интересни проекти в А1, като провизиране на фиксираните услуги на компанията като интернет и ТВ от билинг системата до крайния клиент. Работил е по създаването на бекенд и фронтенд системите за магазинната мрежа на А1, с която се предлагат електронни винетки, Застраховка „Моят телефон“ и др. Разработките на PCRF нотификации, уведомяващи клиентите на компанията за изчерпване на мобилния интернет и необходимото провизиране при заявено желание за увеличаване на количеството данни, също са част от неговата работа.

Симеон, как от DevOps стана .NET Web Developer, а вече си Senior Software Engineer в компанията? Може ли да споделиш защо и как се случи промяната?

Интересът ми към програмирането и компютрите е още от тийнейджърските ми години. Бях се запалил постоянно да разучавам частите на компютъра си, да го сглобявам разглобявам, ъпгрейдвам и т.н. През онези години започнах и да си правя статични странички. След това започнах да уча висше образование, което няма нищо общо с програмиране. Още преди да завърша, осъзнах, че все пак интересът ми към технологиите и компютрите надделява, и започнах курсове по програмиране в SoftUni. Тогава работех в blizoo като telesales агент, а по-късно и супервайзър телефонни продажби.

След като А1 придоби blizoo, пред мен се откри възможност да се прехвърля в екип „Доставка и оперативна поддръжка“. Там много бързо навлязох в материята и скоро след това получих шанс да поема ролята на Junior .NET Web Developer. Последващото ми развитие до настоящата ми позиция е в резултат на упорит труд, нестихващо желание да уча нови неща, да вниквам в детайлите на по-комплексните проблеми, а и най-вече да разбирам нуждите на бизнеса и да помагам за тяхната реализация.

Има ли причина да избереш работата с .NET?

Да. С .NET се работи много приятно. Този framework поддържа всички операционни платформи, представя се изключително добре, за него има тонове външни библиотеки. Най-важното, може би, е, че е open source.

Работиш в А1 от близо пет години. Как би определил възможностите, които са ти предоставени за да достигнеш сегашната си позиция?

На първо място бих поставил доверието, което мениджмънтът и колегите ми гласуват. Част съм от страхотен екип, винаги по всяко време има кой да ти помогне. През седмица си провеждаме вътрешни обучения за нови неща и подобряване на текущите, които използваме. В последно време тези обучения ги водя аз. Имаме възможност и за външни обучения по специализирани теми, които са важни за професионалното ни развитие.

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

Екипът, в който работя, сме предимно BackEnd ориентирани. Главно използваме .Net Core, Net framework. За FrontEnd ползваме React, но „хвърляме поглед“ и на Blazor. Като база данни използваме предимно MSSQL, PostgreSql, Redis. Основните ни отговорности са да разработваме софтуер за служители на компанията, предимно да автоматизираме ръчните процеси при внедряване на нови продукти. Често интегрираме с наш код и решения от външни вендори.

През годините си участвал в множество интересни проекти, докоснал си се до бекенд и фронтенд системите, PCRF нотификации, до големия обем от данни, които са неизменна част от работата в един от водещите телекоми в България. Може ли да споделиш кои са били най-големите предизвикателства, с които си се сблъскал и как си ги преодолял?

Като едно от най-големите предизвикателства, което няма да забравя, е стартът на предлагане на електронни винетки от А1, които лесно и удобно могат да се купят онлайн. Голям проект, а аз още прохождащ в програмирането. В комбинация с това решихме да започнем да имплементираме микросървисна архитектура, както и да внедряваме React за FrontEnd. Не беше лесно, но с голяма доза упоритост, учене на изцяло нови неща, и страхотни колеги, готови винаги да помогнат при необходимост, успяхме да се справим навреме. Силата на екипния дух ми помага никога да не губя вяра в себе си, така че с упоритост и желание всички цели са изпълними.

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

Не трябва да си „със затворени очи“ и да работиш само по едно задание. Хубаво е да проследиш целия път на един проект – от това каква е необходимостта от него, с какво този проект ще помогне на компанията, как като потребител би го ползвал, и как ще ти е удобно. Бих посъветвал колегите от сектора никога да не се притесняват да дават предложения, било то и безумни на пръв поглед. Според мен е от ключово значение човек да поддържа добър контакт с всички звена, участващи в даден проект. Същевременно е важно да се съобразява и с мнението и позицията на отсрещната страна. Винаги трябва да си наясно със своята теза и да умееш да я аргументираш добре. И най-важно – винаги трябва да се подхожда с позитивно отношение към нещата.

Би ли споделил някоя тънкост от работата си/ реален пример от опита ти с използваните технологии в компанията?

С колегите често изпадаме в ситуации “локално” всичко да работи, а когато се качи – да има проблеми. Даже понякога се шегуваме, че може да си дадем персоналните компютри на крайния клиент, щом „локално“ работи. Та наскоро и аз имах такъв случай. Грешката беше, че локално разработваме под Windows, a качваме на Linux cloud система. Бях си дръпнал няколко под-модула в конкретна папка. Локално всичко си работи, обаче когато го качим, не намираше submodules. Оказа се, че в единия csproj файл (файл, описващ таргет фреймуърк-а и всички зависимости) бях copy-paste-нал името на единия submodule грешно. Вместо Submodule, беше SubModule, което под Windows си работи чудесно, но на Linux – не, защото очаква всичко да е едно към едно и се влияе от това дали буквите са малки или главни.

Съществуват ли технологии, които ще набират сила?

.NET – със сигурност. Постоянно се развива и излизат нови версии, в момента сме на .Net 5.0, скоро ще мигрираме на 6.

Кои са източниците, от които се информираш за тенденциите в програмирането. Може ли да споделиш кои са подкастите/страниците/платформите за обучение, които следиш?

Следя няколко канала в YouTube, също така гледам доста курсове в udemy. Често проследявам и български събития, засега онлайн, но се надявам да се върнат присъствените форматите. От хората, които предимно следя, са: Tim Corey, Nick Chapsas, Mosh Hamedani.

]]>
Защо опитен програмист избра Resolute Software пред това да гради кариера в Швейцария? https://devstyler.bg/blog/2021/11/16/zashto-opiten-programist-izbra-resolute-software-pred-tova-da-gradi-kariera-v-shvejtsariya/ Tue, 16 Nov 2021 06:02:04 +0000 https://devstyler.bg/?p=52842 ...]]> Защо един опитен програмист решава да се върне от Швейцария в България и каква е причината да избере Resolute Software пред голямата корпорация, в която е работил три години?  Разговаряме с Цвятко Конов,  IT Team Lead в компанията, за неговата мотивация, кариерния му път, амбициите и визията за бъдещето, както и за това какво е нужно, за да останеш конкурентноспособен в IT индустрията. Ето какво ни разказа той:

Г-н Конов, разкажете ни за Вас и за решението Ви да заминете за Швейцария.

Aз съм програмист по душа, независимо с какво друго се занимавам. Обичам зимните спортове и ветроходството. Преди 3 години получих интересно предложение за работа в страна, която ми даваше възможността да практикувам любимите си занимания на една ръка разстояние. Сравнително бързо събрахме багажа и заминахме! Първоначално започнах да работя като програмист, след което ме харесаха и станах technical project lead на няколко проекта. Тези проекти бяха доста предизвикателни, в много специфична сфера, в която компанията (Leica Geosystems), бе един от лидерите. Проектите, с които се занимавах бяха изключително интересни, свързани с AI, Reality Capture и други водещи технологии, комбиниращи най-доброто от хардуера и софтуера. В компанията, в която работят повече от 20 000 човека имаше проекти в Autonomous driving, GNSS Positioning, custom AI accelerator hardware и други. Имах възможността да работя с едни от най-големи експерти в света в тези области. Екипите ни бяха мултинационални, бяха представени много държави и експертизите бяха изключително сериозни. Начинът на организация, обаче беше различен от този в България. Там често се работеше върху продукт, който се изгражда на базата на поредица от проекти, които може да включват от двама до двеста души. Аз имах възможността да участвам както в малки, така и в много големи екипи, разделени на SCRUM подекипи. Например, екипът който ръководих, се състоеше от около 6-7 човека. 

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

Да се върна бе трудно решение, което беше повлияно от много аспекти. Първият аспект е със сигурност личният. Прекарахме там 3 години, но интеграцията беше трудна и не ни харесваше начинът, по който се чувствахме да живеем в чужбина. Когато имаш деца е изключително важно как те успяват да се интегрират в средата.

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

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

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

Бихте ли направили сравнение между кариерното ви развитие и предизвикателствата там и това, което Resolute Software ви дава възможност да направите тук? Кои са онези разлики, които бяха изключително важни за вас и допринесоха за избора ви? 

Това, което ме спечели най-силно в Resolute Software е важността, която основателите отдават на културата. Те активно градят организация, в която всеки човек да се чувства все едно е част от едно голямо семейство. Независимо дали става дума за професионален въпрос или за нещо извън работата, екипът на Resolute Software разчита един на друг и се подкрепя безпрекословно. Тази силна екипна връзка се усеща още от ден 1 в офиса и ме кара да се чувствам на сто процента на мястото си. 

Второто предимство на Resolute Software е свободата. Компанията има клиенти, които идват при нас, защото имат много сериозен проблем, а нямат ресурс и капацитет да се справят с него така, както биха искали. Това е уникална възможност, защото получаваме наистина трудни задачи и сами трябва изберем начина, по който да ги решим. 

Третата причина да избера Resolute e, че, компанията полага целенасочени усилия да насочва служителите си да открият своето лично предизвикателство – това, което ще ги мотивира и ще допринесе да бъдат максимално ефективни. Това важи както за проектите, по които се работи, така и за личностното ни развитие. Имаме възможност да се изявим, да научим, да решим труден проблем и да ставаме по-добри всеки ден. Това се случва чрез активно менторство от лидерите на екипите, както и от предоставяне на много различни възможности да се включваме в извънработни инициативи, обучения, семинари и прочие, с които да намерим и личната си страст. 

Не на последно място, причината да избера Resolute е, че компанията все още не е голяма, но и културата на работа не го предразполага. Няма характерните за голяма компания интриги, политически игри и задкулусни действия. Това ме освобождава емоционално да си свърша работата. 

В Швейцария са много добри в това да изградят процес, който да следват предвидимо години наред. Кадрите там се специализират изключително и само в една сфера. Тоест ако един човек работи като front end, той го прави в продължение на 15, 20, 30 години и така може никога да не разшири своя кръгозор. Специализира се много тясно, става много добър в това, което прави, но при една рязка промяна на конюнктурата може да се окаже не особено конкурентноспособен. В Resolute се търси обратното: човек винаги да е с няколко крачки напред и да разширява непрекъснато собствения си капацитет и възможности. А за това е необходима повече свобода. Тук я има.

Каква ще е по-конкретно ролята ви в компанията; какви са технологиите и проектите, на които ще се посветите? 

Технологиите са много разнообразни. В момента се занимавам с предизвикателен проект, тъй като е свързан с широк набор от технологии – .NET Core, Angular, GraphQL, а от продуктите – HashiCorp Nomad, Vault, KeyCloak. Стараем се непрекъснато да навлизаме в нови технологии и екипите ни да градят експертиза. Учим се през цялото време и това е много хубаво и интересно както за мен, така и за останалите. Разнообразието от проекти има тъкмо такъв смисъл – да си винаги на гребена на вълната на най-новото и да започнеш да го прилагаш. Начинът, по който към момента работим с екипа ми е да търсим нещото, с което всеки би се занимавал и би могъл най-добре да допринесе за проекта, за да може всеки да намери предизвикателството, което ще го мотивира да бъде максимално ефективен и да допринася не само за проекта, но и за неговото личностно развитие. 

Кое е онова, което позиционира Resolute Software добре в толкова силно конкурентна среда? 

Смятам, че Resolute Software е изключително конкурентноспособна заради свободата и модела на отношения в екипите – тези неща обикновено те правят и много силен на пазара. 

Истината е, че в България IT сферата е доста разглезена, в чужбина не е така. Там критериите са много високи, а заплащането не е кой знае колко по-добро. Програмистите в България получават едни от най-добрите условия за работа, дори не само спрямо стандарта на живот, а и в абсолютни цифри. Но има и нещо друго – не е сигурно, че това ще продължи, средата не винаги ще е такава. Много хора казват, че това е временно явление и един човек трябва да е конкурентноспособен, за да удържи на промените. Не е важно какво пише в CV-то ти, а с колко сложни и сериозни проблеми си се занимавал и как си ги решил. CV-то в най-добрия случай ти дава достъп до първото интервю. Но оттам насетне трябва да покажеш, че си добър. В това отношение Resolute Software е перфектното място – там се решават сериозни и специфични нишови проблеми. Проектите не са за всеки, не са тривиални задачи, в които просто “редим формички”, а наистина решаваме значими и глобални проблеми. От тази гледна точка, сме едни от малкото компании в света, които имат способностите и възможността да предложат такива услуги на своите клиенти.

А как вие самият си представяте бъдещето в компанията? 

Надявам се да допринеса много, защото се чувствам в правилната среда. Искам не само да помогна за развитието на компанията, но и да се превърна в една от основните фигури, които я движат напред. Щастлив съм, че познавам голяма част от екипа на Resolute Software още отпреди основаването на компанията – и вече знам какво мога да очаквам от тях като култура,начин на работа и отдаденост. Това, което най-много ми харесва, е ангажиментът, който Вели и Христо поемат (бел.ред – Вели Пехливанов и Христо Георгиев, основателите на компанията), за да запазят тази култура на сплотеност и отдаденост към работата и да организират компанията така, че всеки един да се чувства щастлив да прави това, което го кара да се чувства добре. Вярвам силно и подкрепям изцяло тяхната визия, че най-важното е не просто да имаме много проекти, а един доволен и щастлив екип. 

]]>
Технологиите са единственият верен път за земеделието https://devstyler.bg/blog/2021/05/10/tehnologiite-sa-edinstveniyat-veren-pat-za-zemedelieto/ Mon, 10 May 2021 08:22:05 +0000 https://devstyler.bg/?p=44534 ...]]> Иван Драгоев е съосновател на ONDO Smart Farming Solutions – компанията, носител на наградата на БАИТ за 2020 г. в категория “Startup Компания”. С него разговаряме за началото на компанията, умното земеделие и технологиите като ключ към бъдещето на селското стопанство.  

Г-н Драгоев, какво означава за вас тази награда? Компанията е доста млада – на около година, а вече има това сериозно признание на бранша и БАИТ. 

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

Това е първият ден от извънредното положение. Явно началото на тази криза, то за вас е било началото на нещо хубаво. 

Абсолютно е така. 

Какво представлява ONDO в повече детайли? Вие сте млади хора, които решават да се занимават с технологии в сферата на земеделието. 

ONDO има много интересна история. Тъй като живея в къща, имах нужда да си автоматизирам поливането и се свързах с Ивайло Енев (съосновател на ONDO), с когото сме състуденти. Така започнахме да се срещаме все по-често и да обсъждаме идеята. ONDO е измислен по начин, който да е достъпен. Съществуват системи за прецизно земеделие, но те са изключително скъпи и интуитивни. Всички от екипа имаме ИТ бекграунд и Ивайло, който е съосновател, притежава над 10 години опит в сферата на прецизното земеделие. Така общо покриваме както хардуерни, така и софтуерни технологии. Тази комбинация ни позволи да стартираме лесно и това да бъде успешен продукт. Но трябваше да разберем дали имаме потенциал или идеята е добра само в нашите глави. Ивайло има много добър поглед върху това какви нужди имат фермерите, което пък е важно за изграждането на нашето решение. Всички говорим за дигитализация, но ако не намерим езика, на който да направим идеята разбираема за фермерите, то тя би била обречена на неуспех. Тогава направихме голямо усилие, като разговаряхме с клиенти и продавахме продукта така, сякаш той вече съществува. Има крилата фраза в стартъпите – fake it till you make it. Ивайло имаше пътуване до Македония, където разговаря с един потенциален клиент. В началото ползвахме допълнителни контакти, за да стигнем до първите си клиенти. Направихме сделка, за която нямахме много време за изпълнение – това бе и момент на отрезвяване – когато нещата станаха истински. Ако това бе една идея до преди това, която на хартия и в нашите глави изглеждаше розово и прекрасно, то изведнъж имахме клиент, който дори бе платил аванс и се изискваше конкретен краен срок за реализация. Може би в началото на март 2020 г. успяхме да отидем до Македония, преди да затворят границите. Този първи клиент бе изключително важен, защото решихме неговия проблем за доста къс период от време и той видя ползата от такава система още на първата си реколта. А също така е и агроном и разбира нещата, и това да отговорим на очакванията му бе предизвикателство.  Тук трябва да призная също, че COVID изигра добра роля, защото времето ни подпомогна и успяхме да направим допълнителни неща за следващи клиенти. Естествено имаше и страничен ефект – нивото на продажби спадна, защото това е бизнес, който иска лично отношение. Трябва да отидеш на място и да видиш фермера – как изглежда нуждата му и каква система е необходима. Знаем също, че не можеше и да се излиза от София в даден момент. Но ето, че за по-малко от година успяхме да направим около 12 клиента.

А какво представляват системите – какви проблеми решават?

ONDO е една цяла платформа, която решава земеделски процеси. Специално в сферата на напояването и наторяването може да бъде използвана както за оранжерии, така и навсякъде, където се отглеждат култури. Единственото изключение са зърнените площи- при тях може да се наторява само царевица. Но ние покриваме всичко друго – овощни градини, малини, къпини – всичко може да се напоява прецизно. ONDO всъщност е самият умен контролер, който прецизира поливането и процесът на наторяване. Но хората, като чуят „наторяване“, си представят всякакъв вид химикали, които карат растенията да растат много, но е вредно. Ето че и на мен ми бе интересно да разбера от нашия агроном, че наторяването е процесът, по който ние храним това растение, както ако решите да ядете здравословно, това влияе на вашето физическо и духовно състояние. Липсата на витамини и минерали за растението се отразяват на неговия растеж. Когато кажем прецизно наторяване и напояване, имаме предвид процеса, в който ние отглеждаме растението в среда, в която то се чувства най-добре. Но не трябва и да се преторява – отглеждаме растенията точно с лимита, който е от полза. Когато четем по форумите, забелязваме, че всеки иска да се храни „био“, но правилното хранене трябва да води и до много високо качество. Знаем също, че е важно да се постигне стабилен климат. Ако отглеждате зеленчуци, това не трябва да се случва при прекалено висока температурата, например, защото те спират да се развиват както трябва. Съответно, в оранжериите има различни механизми за поддържане на този климат.
Обикновено това са проветрители, които се отварят физически, така че топлият въздух да излезе от оранжерията. Ако това не е достатъчно, в горещите летни месеци, се използва и средство, което прави много фина мъгла и самото изпаряване сваля температурата. Съществуват и така наречените слънчеви екрани, които при твърде висока радиацията от слънцето, се разпъват. Има и най-различни циркулационни радиатори. Ние обхващаме всички тези устройства, които са инсталирани в оранжерията и в следствие на автоматизацията по лесен и иновативен начин фермерите могат да зададат параметрите, които системата да управлява и поддържа спрямо културата. Нещата да се случват автоматично.

От чисто технологична гледна точка как работят системите? Хардуер, софтуер, какви технологии използвате?

Ние сме софтуерна компания и искаме да си останем такава. Нашата добавена стойност не е в производството на хардуер. Но с времето реалността ни научи, че искаме или не, трябва да произвеждаме някаква част от хардуера. Компонентите, които използваме за изграждане на нашите устройства, са от доставчици, познати на пазара. Те предлагат industrial-upgrade оборудване, поради причината, че правейки ONDO достъпен, то той трябва да е и достатъчно стабилен като работа. Да има минимално обслужване или никакво дори. Поради тази причина самият контролер се базира на industrial-grade Raspberry Pi с compute module 3 и залагаме на автоматизация, базирана на Schneider Electric. В началото направихме прототипа на Node.js, frontend-а бе с React. Но в момента тече процес на мигриране от Node.js към .NET Core. Най-важните причини за това са стабилност и предвидимост на работата. Тук мога да отбележа, че от други проекти сме забелязали, че когато работим с езици и фреймуърци, идващи от големи компании, то тогава те се посрещат много по-радушно от хората. Когато кажеш: „цялата сигурност, цялата автентикация, защита на данни и т.н. се базира на тази компания“, това работи за нас повече. Когато фермерите чуят Microsoft, много добре знаят за какво иде реч. Докато когато чуят Node.js – не. Самата облачна част също е на Microsoft. За нас е важно да минимизираме технологичния аспект и да се придържаме към колкото се може по-малко технологии, защото в противен случай ще са ни необходими хора, които да работят и поддържат тези различни технологии.
Друго, което се оказа изключително полезно, е да имаме система за безжично управление на клапани. Например, ако на поле от 800 дка решението е да дърпате множество кабели, което не е много удобно. Ние разработихме наша система – Airpoint, чрез който може се управляват до 4 безжични клапана с батерия, която издържа един сезон. Отделно към всеки такъв Airpoint поддържаме 3 сензора за почвена влажност. Те се монтират вертикално, като по този начин в близко бъдеще ще планираме и поливането по зони и всичко ще е задвижвано от поведението на сензорите. Използването на ресурси е част и от въпросната „Зелена сделка“– колкото по-оптимално се използват, толкова по-добре. Насищайки едно поле със сензори, целим точно това. За airpoint-ите стъпихме на една не толкова популярна технология – IQRF, но тя може да създава mash network с до 250 устройства. Представете си, ако всеки от тези 250 airpoint-а контролира 4 клапи, то колко вода може да излеем. Избрахме IQRF, защото той offload-ва нас от управлението на цялата мрежа. Работи изключително добре и вече имаме направени първите бройки.

Доколко България е развита откъм технологии за агросектора? Сякаш още не е толкова популярно?

Ако говорим зеленчукопроизводството и оранжерийното производство, то технологии има, но самият факт, че те не са достъпни, пречи на това в България и региона те да навлизат бързо. От друга страна, самите хора са скептични и не ги познават. За един земеделец думата дигитализация и дигитална трансформация може да звучи много плашещо, въпреки че това чисто икономически ще му промени бизнеса. От тази гледна точка предизвикателствата, които срещаме, са свързани с недостатъчното ниво на информираност за дигитализацията, нейните възможности, защо е важна и как би се отразила. От опита, който имаме, България има доста високо ниво за интегриране на системи за автоматизация в сравнение с други европейски страни. Но имайте предвид, че ние сравняваме големите играчи, а малките и средни фермери са около 80% на съществуващия пазар, можем да кажем, че нашият пазар е много „underserved”. Помага ни това, че фермерите в България виждат как все по-трудно успяват да бъдат печеливши и как предизвикателствата, свързани с климат и липса на вода, ги карат да мислят как да имат по- стабилно производство. Прецизното земеделие решава именно тези проблеми. Когато фермерите видят, че едно такова решение би могло да ги извади на печелившия път и да им гарантира устойчиво развитие и предвидимост, те вече са много по-отворени да питат, да се интересуват и да внедряват. Нашите първи клиенти са ни изключително важни, защото това са хора иноватори – отворени са към нови идеи и към поемането на риск. Знаем, че внедряването на система за първи път си е риск. Но тези ключови хора вече са ни клиенти и ни помагат да достигнем до още такива. Интересното е, че другите фермери около тях ги гледат като ролеви модел за това да започнат да се интересуват и да прилагат автоматизация. Именно това прави цялата ситуация win-win. Фермерите са доволни, че излизат от червената зона и вдигат марджините, за нас пък остава удоволствието да създаваме решения, които да ги правят спокойни и стабилни.

В исторически план България винаги е била земеделска страна и имаме и добрите фактори като климатичните условия. Все пак някак производството не е на нивото, на което може да бъде. Поне това е популярното мнение – вкарваме продукти от чужбина, които могат да се произвеждат и тук, и са характерни за региона. Освен това има и много необработвани площи из страната. Явно земеделският бизнес не е толкова привлекателен от чисто предприемаческа гледна точка, а може би и защото е свързан с тежък физически труд, хората се плашат. Но възможно ли е технологиите да повдигнат реномето и привлекателността на този бранш, така че той да привлича повече хора, така че да има повече производство и конкуренция?

Абсолютно. Това е единственият възможен път. Всъщност, едно от нещата, поради които земеделците имат нужда от автоматизация, е липсата на кадри – на хора, които да се занимават с това. От друга страна, масово всички започват да се интересуват с какво се хранят, откъде идва продукцията, какво е качеството, био ли е, и т.н. Това пък кара и много млади да се занимават с биоземеделие и с отглеждане на продукти, които не са толкова характерни за България. От една страна, съществуват земеделците /и те нарастват на брой/, които казват „хайде да направим земеделието модерно“, от друга страна, ги има вече и тези като нас, които предлагаме автоматизация. Тук трябва да споменем, че е съществено и това, че България е малка страна, защото когато можем да отидем от единия до другия край на държавата с кола за 5 часа, то по-лесно можем да обслужваме. Самото земеделие все повече и повече става и фокус за ЕС. А пък и COVID предизвика много въпроси по веригата на доставките. Представете си до какво водят едни затворени граници. Следователно с тази икономическа несигурност и този хубав наш климат, благодатен за земеделие, най-рационално би било да инвестираме в това, което притежаваме. Интерес има и това означава, че той ще се разпростре не само оранжерийно или като производство, но и технологично. И така хората, на които не им се занимава с тежък физически труд, което не звучи привлекателно, ще могат да роботизират. Има изключително интересни разработки например за събиране на малини и къпини. Светът се развива в тази посока и ние вярваме, че България може да стане абсолютен лидер в автоматизацията и модерното земеделие поне на регионално ниво. А защо не и на глобално?

Както се казва, България е идеална за дигитализация, защото има плачевна нужда от нея. Затова би било чудесно да се виждат повече обединени решения между най-бързо развиващия се бранш и този с най-големи традиции.

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

Какъв е пътят на успех за един стартъп в България и какви са насоките, които трябва да се спазват? Има много стартъпи, които не успяват да прескочат бариерата от първата една, две години, а ето че вашият се развива успешно.

В интерес на истината, това ни е третият стартъп. 

Значи се изисква постоянство? 

Оценявам това, което научихме с първите си стъпки, които доведоха до сегашния момент, в който всичко се случва както трябва. Дори и първият стартъп да го определяме като несполучлив, то той всъщност е, защото ни е помогнал с натрупано know-how. Когато се създава технологичен стартъп, е важно founder-ите да имат определени различни роли. Единият трябва да поеме технологичната роля – това е човекът, който откъм ИТ да знае как да разработи идеята. Другият трябва да има познания в съответната област, в случая земеделие – да разбира проблемите, процесите и нуждите в сферата. Разбира се, трябва и някой, който да се грижи за финансовата част на нещата – да изработва бизнес модела, да набавя финансиране и пр. При първия ни стартъп направихме грешката да имаме изключително добро технологично познание и изпълнение, но нямахме domain knowledge, тъй като стартъпът ни бе насочен към индустриалната автоматизация. Този урок го научихме по трудния начин. Има, разбира се, и множество други фактори, които трябва да се вземат под внимание. Например, внимателно да се преценяват фалшивите положителни сигнали. Човек трябва да знае кога да спре да се залъгва, че стартъпът има потенциал и да си даде време за премисляне и анализ. За финал мога да кажа само – следвайте lean startup-подхода в първата една година и не се страхувайте от промяна.  

]]>
Мусала Софт – Русе става на 6 години https://devstyler.bg/blog/2021/03/19/musala-soft-ruse-stava-na-6-godini/ Fri, 19 Mar 2021 14:26:12 +0000 https://devstyler.bg/?p=41839 ...]]> Този месец се навършват 6 години от създаването на офиса на софтуерна компания Мусала Софт в Русе, който работи по национални и международни проекти за големи и мултинационални компании, сред които SAP, Experian, Deutsche Telekom, BMW, Commerzbank, IBM, Generali, DSK, Perkin Elmer, Attraqt, Гаранционен фонд. Екипите в града работят по мащабни проекти с Java технологии (JavaEE/Spring Framework, Hibernate, JPA) с монилитни архитектури, а при висока скалируемост и дистрибутираност – и с микросервизни архитектури. През годините са изградени локално самостоятелни екипи, работещи по .NET базирани проекти с технологии като .NET Framework, .NET Core, Entity Framework и др. Русенското ядро от QA експерти, част от корпоративното направление Quality Assurance, е фокусирано върху автоматизирано тестване със Selenium, SoapUI и др.

През март 2021 празнуваме 6-тия рождения ден на Мусала Софт – Русе виртуално, но както винаги – заедно. През изминалата година не само личният, но и бизнес светът преживяха стрес, сътресения, фалити. Мусала Софт имаше късмета благодарение на портфолиото си от клиенти и невероятни хора да оцелее. Нещо повече – да трансформира процеси, практики, комуникационни канали, да привлече нови клиенти и проекти и да постигне 30% ръст в оборота. Благодарни сме на всички, с които работим. Русе, честит рожден ден! Очакваме още колеги да се присъединят към нас в “Малката Виена” – реално и виртуално в режим „работа отвсякъде“!“ – сподели Елена Маринова, президент на Мусала Софт.

Голяма част от служителите от екипа в Русе са възпитаници на Русенски Университет „Ангел Кънчев“ и ПМГ „Баба Тонка“ и активно участват в развитието на ИТ общността в района, научни проекти, локални ИТ събития и инициативи, олимпиади и състезания. Изградените партньорства между компанията и най-добрите русенски учебни заведения с обучения по математика, информатика и информационни технологии, осигуряват обмен на знания, студентски стажове в реална бизнес среда, работа по проекти, специализирани семинари и индивидуално развитие на таланта с основа в точните науки.

]]>
5 технологични тенденции за 2021 г. от Progress https://devstyler.bg/blog/2021/01/14/5-tehnologichni-tendencii-za-2021-ot-progress/ Thu, 14 Jan 2021 15:57:28 +0000 https://devstyler.bg/?p=38574 ...]]> Progress обяви днес пет тенденции, които ще окажат влияние върху дигиталния свят и системите за управление на съдържание през 2021 г. Сред тях са силното преплитане на онлайн и офлайн световете, навлизането на технологиите за самообслужване на клиенти, персонализацията на онлайн информацията за всеки потребител, както и еволюцията на системите за управление на съдържанието в посока предлагане на повече продуктивност и възможности за работещите с тях.

Covid-19 превърна в реалност редица планове за технологични иновации и видяхме как буквално за една нощ се реализират проекти, отнемащи години,“ каза Лилия Месечкова, старши директор „Софтуерно инженерство“ и част от лидерския екип на Progress в България. „През 2021 г. очакваме фокусът върху дигитализацията да се задълбочи и да открие нови възможности за онлайн търговия и присъствие за всички компании. Това ще бъде подплатено от наличието на надеждни, интуитивни и богати на възможности технологии като системите за управление на съдържанието и дигиталните преживявания.

Онлайн и офлайн преживяванията ще се преплитат

През 2021 г. организациите ще търсят в системите си за управление на съдържанието все повече възможности за свързване на онлайн и офлайн пространствата за клиентите си. Пример за това е американската верига супермаркети Kroger, която с помощта на Microsoft въвежда дигитални услуги във физическите си магазини. Потребителите могат да виждат реклами и промоции на рафтовете до самите продукти, както и промени в цените в реално време. Компаниите, които до преди Covid-19 разчитаха предимно на физическите си обекти, ще инвестират повече в развитието на електронна търговия и свързаността на онлайн и офлайн процесите.

Технологиите за самообслужване ще предлагат неразличима от човешката комуникация

Covid-19 ускори ударно дигитализацията на процеси и въвежденето на технологии за самообслужване на клиенти. Въпреки че тези тенденции не са нови и за тях се говореше и преди Covid-19, много компании до преди това не инвестираха в тях заради трудното оценяване на въздействието им. Това се промени през изминалите месеци и занапред голяма част от обслужването на клиенти ще бъде автоматизирано. Чатботовете претърпяха развитие и съвсем скоро на потребителите ще им бъде трудно да различат дали говорят с човек или робот. За системите за управление на съдържание, които предлагат цялостно дигитално преживяване, интегрираната чатфункция ще бъде задължителна.

„Edge Computing“ ще допринесе за персонализирането на информация, ефикасността и защитата на бизнес процесите

Използването на „облачни“ технологии ще се повиши още повече през 2021 г. Наличието на 5G ще ускори развитието на т. нар. „edge computing“ и ще доведе до създаването на иновации и свръхперсонализиране на информацията на места, където това не е било възможно до този момент. Например, електронният списък с продукти за купуване на клиент в супермаркет ще може да се реорганизира спрямо местоположението му и ще показва най-близките до него продукти. Сигурността на данните също ще се подобри чрез дистрибутирани процеси. Системите за управление на съдържанието ще позволяват такъв тип персонализация, която се случва по- ефикасно и е по-малко зависима от централизирани процеси и източници на информация.

Потребителите без техническа подготовка ще могат лесно да работят със CMS

Системите за управление на съдържанието – т.нар. „coupled CMS“ – неразривно свързват backend и frontend администрацията. Тъй като повечето организации се нуждаят от интеграция между backend структурата и множество „frontend“ канали, съвременните CMS са или „headless“ (само с backend), или „decoupled“ (backend и frontend са разделени). И двата варианта отделят съдържанието от начина, по който е представено, и предлагат API интеграция за бързо и лесно разпространение на информация до различни канали. Истинските headless системи за управление на съдържанието обаче нямат приложения за уеб разработка за хора без техническа подготовка, което ги прави зависими от ИТ екипите. През 2021 г. доставчиците на CMS ще се ориентират към предлагането на решения, достъпни за потребители без задълбочени технически познания.

Разработчиците ще предпочитат .NET Core

Наследникът на .NET Framework – .NET Core, дава възможност за разработката на ASP.NET приложения, които да работят едновременно на Windows, Mac и Linux. С .NET Core разработчиците могат да ускорят и опростят процеса на създаване на хибридни и прогресивни уеб приложения, като продуктивността е подсилена от въвеждането на допълнителни функционалности. През 2021 г. ИТ екипите, които отговарят за системите за управление на съдържанието, ще използват .NET Core и ще предпочитат системи, работещи с него.

]]>
Целта на Exploring Gabrovo е да спести време на потребителите https://devstyler.bg/blog/2020/08/27/tselta-na-exploring-gabrovo-e-da-spesti-vreme-na-potrebitelite/ Thu, 27 Aug 2020 17:18:29 +0000 https://devstyler.bg/?p=34075 ...]]> Илия Неделчев е част от отбора Gabrovo Is The Best, класирал се за финала на тазгодишното издание на #Габрово Хакатон. Работи като Team Lead в една от най-големите рейтингови агенции в света, а включването му в хакатона е породено от желанието да направи нещо добро за България и вярва, че идеята на неговия отбор може да допринесе на Община Габрово.

По какъв начин Вашето приложение ще помогне на Габрово?

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

Какво представлява приложението на Gabrovo Is The Best?

Приложението ни се казва Exploring Gabrovo и е насочено към изготвянето на туристически план. Потребителят единствено трябва да предостави стартов и краен час, цена, която е готов да заплати, както и разстояние, което е склонен да измине. Независимо дали е с кола, или без, самото приложение изготвя туристически план на базата на тази информация. Също така се взима предвид и времето, защото има обекти, които не биха били подходящи при дъжд. Излишно е да изпращаме някого на връх Шипка, ако моментът, в който той иска да отиде, е дъждовен. Опитваме се максимално много да улесним хората, без да е нужно да отделят прекалено много време, да “цъкат”, да излизат много екрани и т.н. Искаме всичко да се случва зад кулисите, така че информацията да се предоставя максимално лесно.

Вие сте в категорията @Туризъм Габрово. Всички ли проекти там са ориентирани към популяризирането на Габрово като туристически град? И с какво вашият проект се отличи от тези на останалите участници в категорията?

Тук мога да изкажа моето мнение, което е, че другите проекти имаха за цел да представят информация и да направят един вид копие на Опознай.бг, например. Докато ние се опитваме да създадем максимално лесно организиране на информацията, а не просто да я дадем на хората и те сами да сортират и организират.

Лишавате ги, да речем, от половин час, прекаран в структуриране на план за разходка?

Точно така. Това е нашата цел. Ние желаем да спестим време на потребителите. От личен опит мога да споделя примери. Използвам Опознай.бг и бях на екскурзия в Рила планина. Но когато е лошо времето, тъй като тогава заваля спонтанно, не е добре да се изкачват планински върхове. Опитах се да намеря други атракциони за посещение, в близост до локацията, на която се намирах. Опознай.бг ми предложи Рилския манастир, което бе на три часа с кола. Можех да мина пеша напряко – през средата на планината. Това меко казано бе нереалистично. Ние се опитваме да решим тези проблеми. Тогава, в тази ситуация, успях да намеря само един туристически обект, а съм сигурен, че имаше повече и можех да си прекарам времето в Рила доста по-добре.

Доколкото разбирам, няма еквивалент на вашата платформа за България?

Може и да е създадена такава, но поне аз не съм попадал. Ако има – бих желал да я използвам. А и не е хубаво да се повтаря колелото. Ако има такова приложение и можем да го подобрим с нещо – да. Но не бих губил време да разработвам точно едно към едно копие с вече съществуващ app.

В екипа сте трима души. Ти, Пламен Димитров и Кремена Петкова. Какви са функциите на всеки? Как сте се разпределили?

С Пламен сме програмисти, като аз съм в back-end частта. Освен това имам малко по-мениджърска роля, тъй като идеята идва от мен. Пламен е по front-end и мобилната част на приложението, а Кремена е нашият дизайнер.

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

Не бих казах трудности или предизвикателства. Реално, алгоритъмът е вече измислен и оттам използваме модификация на най-дълъг път в граф за алгоритъм за сортиране на мястото. За дистанцията между самите обекти използваме Google API, защото има вече налично и не е нужно да измисляме нещо ние. Колкото до времето, там също има отворени API-та. За mobile работим с друга технология на Google – Flutter – която е доста нова и удобна. Започнахме с NativeScript – технология, започната от Telerik, след това довършена от Progress, но не са успели някак да съберат достатъчно голяма общност. NativeScript е окей, но Flutter се оказа доста по-удобен вариант. За back-end частта използваме .NET Core, а за хостинг cloud-а на Heroku. За мен най-голямото предизвикателство е дизайна и как да направим максимално лесно потребление. От гледна точка на алгоритъм, нямаме проблем.

Какво ще стане с платформата след хакатона? Предполагам ще продължите работа по нея?

И аз така предполагам. Дори и да не спечелим, ще продължим. Много ми се ще да интегрираме платформата с Информационния център. От общината активно ни съдействат в това и предстои да разширяваме функциите. Аз дори имам сходна тема за моята докторантура. Уча Изкуствен интелект в Пловдивски университет “Паисий Хилендарски” и сега, с разработката на платформата, която съдържа AI, ще имам и практическа част на дисертацията си, което в генерален план е много по-добре. За срок на Exploring Gabrovo мога да кажа, че поне в идните няколко години не смятам да прекратяваме работата по приложението.

Комуникацията между трима ви е изцяло дигитална. Това затруднява ли ви?

Не особено. С Пламен сме учили в един университет, а след това работихме заедно и в една компания. Доста добре взаимодействаме помежду си. С Кремена пък сме в един и същи град и някой път работим от една локация. В това отношение мога да кажа, че комуникацията и сработването в нашия екип са доста добри.

Ивайло Братанов е ИТ бизнес анализатор в компанията Lirex, а в рамките на хакатона е и ваш ментор. Как колаборирате с него?

Помощта му е много добра. Ние нямаме такова лице в екипа, което да се занимава с бизнес, а ето, че той е бизнес анализатор. Определено ни помага в откриването на много случаи, в които потребителите реално могат да попаднат. Случаи, за които ние не сме се сетили. Но програмистите не сме много по потребителското преживяване. Един бизнес човек може много повече да задълбае и затова срещите ни с него протичат чудесно.

Можеш ли да дадеш пример за сюжети, в които потребителите не биха искали да попаднат? Детайл, за който Ивайло Братанов ви е открехнал.

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

И с него ли кореспондирате дигитално?

Основно да, но сме се виждали, защото и той като мен е във Варна.

Времето за разработка на #Габрово Хакатон 2020 е няколко седмици. Успявате ли да се справяте максимално ползотворно във времето, с което разполагате?

Успяваме, но това, честно казано е ново преживяване за мен, тъй като обикновено когато участвам в хакатони, винаги е за няколко дни. Включвам се главно за удоволствие – разтоварване от ежедневието, в което имам един проект и работя само по него. Това в даден момент писва и имам нужда да се разсея. Много обичам да участвам в разнообразни мероприятия като гейм джемове, Google Hash Code и т.н. Идеята е, че краткия хакатон ти позволява да излезеш от рамката, да видиш нещо ново и да придобиеш някоя нова идея. Докато при този тип дълги хакатони е доста различно и много интересно преживяване.

]]>
Лошата архитектура прикрива слабите страни на софтуерната система https://devstyler.bg/blog/2020/07/30/loshata-arhitektura-prikriva-slabite-strani-na-softuernata-sistema/ Thu, 30 Jul 2020 12:27:06 +0000 https://devstyler.bg/?p=33302 ...]]> Представяме ви Мартин Чаов, Software Architect в DraftKings, с повече от 10 години опит в ИТ сектора. Той ни запознава с тази интересна и отговорна професия, която е част от уравнението, водещо към добрия софтуер. А също и професия, която за да достави най-добрите решения за бизнеса, е необходимо да се разгърне в много различни нива, като политика, икономика, право и др.  

Как се запали по информационни технологии и на каква възраст беше? 

Не мисля, че е имало конкретен момент на запалване, така да се каже, но като цяло винаги си „чоплех“ разни неща и всичко се случи естествено. Като бях малък нямах здрави играчки, тъй като винаги ми трябваха моторчетата и лампичките и т.н., за да направя нещо, което на мен ми се върти в главата. В ИТ професиите част от длъжностната характеристика е точно това – да ти е интересно какво кара нещата да работят.

А компютърните игри повлияха ли ти? Доста програмисти сега, са стартирали защото са били геймъри като малки… 

Като дете какво друго да правиш с компютър, освен нещо, което някой друг ти е показал. А най-лесното нещо е този някой да ти е пуснал компютърна игра. Съгласен съм, че на доста хора точно това повлиява за последвалите кариерни избори. Когато бях малък нямаше достъпен интернет, нямаше някаква особена мултимедия. CD-ROM имаше един човек в квартала, ако даже има и един. Какво следва – играеш някоя игра, но тя ти омръзва, а след това или компютърът става „тухла“, или започваш да го разглабяш и разглеждаш. Аз правех второто, защото ми беше интересно какво има вътре, как работи и дали ще продължи да работи ако го сглобя обратно.

Това значи, че теб повече те е провокирал хардуера…

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

Вече си бил завършил? 

Малко се смесиха нещата, защото още в училище помагах в поддръжката на компютрите. Но не бе, всъщност, осъзната поддръжка. Просто имахме неработещи компютри, от които аз направих работещи. Учителите ме оставиха да си се занимавам (и да не преча). Не ми беше цел да сглабям работещ компютър, а ми беше интересно дали мога да изкарам достатъчно работещи и съвместими части, за да подкарам нещо. След това и във фирмата правех същото. За един чирак, това е най-ниско критичната работа. С това се захванах непосредствено след 12-ти клас.

А къде избра да учиш висше образование, след като вече си бил наясно със своя интерес? 

В средното ми образование участвах в много олимпиади, със съмнителни резултати. Учениците, които ходеха на такива, бяха освободени от училище. Фокусът ми не беше да участвам в олимпиадите, а да не ходя на училище. Но пък така се запознах с много хора, които притежаваха същите интереси като моите. Това, което се случи бе, че резултатите от последната олимпиада на която взех участие, се считаха за приемен изпит. Реално, имах оценка за влизане във ВУЗ в България и така избрах пловдивското ФМИ, защото живеех там по това време.

А какво ти даде академичната подготовка? Все пак това са четири години. 

При мен бяха пет години – явно не бързах да завърша. Най-напред се научих на търпение и работа с хора, които не е задължително да ми допадат. Особеното на университета е, че никой не го интересува ти кого харесваш или не. Разпределят студентите на екипи и след това всеки се оправя. Това е хубаво умение, което всеки трябва да придобие – работа в екип. Но има и нещо друго. Не смятам, че тогава съм го оценявал подобаващо, но от сегашна гледна точка разбирам, че университетът е среда без последствия. Най-лошото, което може да стане е да не си вземеш изпита, но тогава отиваш на поправка и това е! Този модел ти дава свободата да експериментираш, без това да коства ресурси. Това е страхотно! Курсовите работи не са досадното „домашно“ от училище. Колкото до знания и умения – тях всеки с желание може да ги придобие. Академичната подготовка е насочена да ти развие интелекта и любопитството, да те научи да изразяваш и представяш идеите си – все полезни качества за колаборация с хора.

А и имаш четири години, в които да натрупаш много сериозна основа. При частните центрове, например, за три месеца можеш да се преквалифицираш към нова сфера и конкретна позиция. 

Имам смесени чувства към частните образователни центрове. Те дават възможност на много хора да се докоснат до програмирането и да се преквалифицират. Това в сегашната динамична икономическа среда позволява на хората бързо да реализират доход и да се грижат за семействата си, което никак не е за подценяване!
Проблемът с тези центрове е, че те дават ограничена представа за програмирането. За два-шест месеца ще се научиш да работиш едно нещо. Да кажем, че би се справял добре! Но това е редно да е само стартът за теб. Не може да си кажеш „намерих си работа, готово!“. Трябва да продължиш да учиш. Образованието продължава през целия живот и няма как да се завърши.
Качествени кадри излизат и от частните, и от държавните учебни заведения, така че всичко опира и до индивида. От друга страна, късата образователна форма ти дава шанс да отидеш и да „пипнеш“ професията, както се казва. Така можеш да прецениш занимава ли ти се с това наистина.

Което при академичното образование е по-сложно, защото можеш да усетиш че ИТ секторът не е за теб, но да си изгубил 2 години преди това в измъчено учене. 

Не съм съгласен, че това са две изгубени години! Да кажем, учиш информатика. На втората година решаваш, че това не ти е на сърце. Но придобитите знания и умения ще те съпътстват до края на живота ти и умишлено, или подсъзнателно, ти ще се възползваш от тях. Това не е изгубено време и аз имам много такива примери от практиката ми. Някой път буквално ми изскача в главата нещо, преподадено в първи курс, което ми решава проблема. Всяка една професия, която се практикува е повлияна от това да имаш допълнителни знания и аналитично мислене. Поне аз не се сещам да има такава, в която да знаеш по-малко е по-добре.

А как достигна до софтуерната архитектура, която е от най-сериозните и престижни професии? 

Не знам дали е толкова престижна, колкото някои хора си мислят. Просто е едно от звената, които са необходими, за да се достави качествен продукт. Архитектурата е част от едно уравнение, в което всеки един аспект е важен за получаването на качествен софтуер. Позицията е отговорна, но аз не съм се целил в нея. При мен нещата се развиха естествено. Работата ми постепенно измести фокус от едно, към второ и трето. Изглежда моите умения по-добре пасват на бизнес процесите, на автоматизацията и проектирането, отколкото на самото програмиране. Архитектът е полезен като част от екипа. Той сам по себе е толкова ключова фигура, колкото всяка друга.

Какво представлява твоята работа и какви качества трябва да се притежават? 

Това по-скоро зависи от компанията, в която работиш и нишата, в която се развиваш. Основната част е изследователска дейност. Идват нови изисквания и архитектът трябва да ги разбере, да осъзнае как ще паснат на текущата система, да проектира възможност за тяхната интеграция, да изследва и проверява нови технологии и инструменти за постигане на целите на компанията. Също така, трябва да проектира дизайнът – връзките между компонентите в една софтуерна система. Да изготвя диаграми, макети и т.н. Ще дам пример и с PESTEL анализ. За да може един архитект да даде решение на проблем свързан със съхранение на лични данни, той трябва да е наясно и със ситуацията около бизнеса. Трябва да знае как се развиват някои законови рамки и какви са ограниченията наложени от тях. Пример – как се пазят данни по GDPR. Архитектът трябва да разбира, какви ограничения са му наложени от външни фактори. Бих казал, че един софтуерен архитект трябва да разбира от много неща. Определено и житейският опит помага.

С какви трудности се сблъсква един софтуерен архитект в ежедневен план? 

По-скоро бих ги нарекъл предизвикателства. Основна част от работата е комуникация. Много от нещата, които изглеждат тривиални за архитекта и бизнеса, трябва да бъдат преведени по съответен начин на инженерите. Най-големите проблеми при съвместната работа идват точно оттам – когато някой не разбира, че не разбира нещо. Тогава се получава развален телефон с предаване и препредаване, а когато информацията е преминала през няколко души, то вече е тотално трансформирана. Това е свойство на човешкия език, някои думи имат много значения и ние архитектите трябва да бъдем крайно изчерпателни и ясни.
Мога да дам пример с предизвикателства в гейминг бизнеса, който е строго регулиран. Има регулаторни органи и те определят правилата, по които бизнесът може да протича в дадена страна. Ако искаш да практикуваш онлайн залагания в Италия, трябва да знаеш, че когато всеки потребител се опитва да заложи, трябва да се изпрати заявка към държавен сървър, така че да се провери дали този човек може да заложи тази сума и какъв ще му е данъкът. Да речем, това го няма никъде другаде. Ако твоят бизнес е започнал от Англия, САЩ или Канада, този детайл много ще те изненада като стигнеш Италианския пазар. Също така – залаганията на живо в Австралия изискват ‘two factor verification”. Изпращат ти съобщение с код, който ти трябва да потвърдиш, че искаш да заложиш и всичко това отново отива в държавен сървър, но тук е намесен и мобилният оператор, който изпраща съобщение с код. Това са някои примери за изисквания, които няма как да вземеш предвид от ден първи. Да не говорим, че много от тях се променят с всяка промяна на правителство. Бизнесът ти зависи от това да се напаснеш към тях.
Ето и YouTube. Те имат алгоритми, чрез които маркират съдържание, което не можеш да използваш, защото изисква лиценз. Имат т. нар. takedown notices, което е сложна система и едновременно задоволява потребителите и големите корпорации, държащи правата за филми, клипове, музика и т.н. Но тази система е пълна с прецеденти. Редовно случаи стигат до съд и решението на съда променя начинът, по който тази система ще продължи да работи. И ето, че това са решения, които не зависят от софтуерната архитектура и/или имплементация, затова трябва да сме гъвкави. Не случайно споменах и PESTEL анализ, защото архитектите трябва да разбираме от нещата, които могат да повлиаят бизнесът ни – политическа, икономическа, социокултурна и технологична среда.

До какви проблеми за продукта може да доведе липсата на една добра софтуерна архитектура и всъщност, коя е добрата и как можем да я разпознаем? 

Най-напред е добре да окачествим коя е добрата архитектура. Тя решава проблем – предначертава пътя, по който системата ще се развива. Много е трудно една софтуерна архитектура да бъде определена като добра или лоша. Тя е баланс на компромиси между различни параметри – цена, време за изработка, всичко ли ще пишем сами или ще използваме готови компоненти, какви възможности за разширяване и конфигурация ще има, време за отговор, достъпност, леснота на промяна и т.н. Доста често архитектурата се прави на различни етапи. Имаме такава, изкарана до „пусков“ етап, т.е. minimal viable product. Но това не е архитектурата, която ще се развива, а тази, с която най-бързо можем да достигнем до потребители и да започнем да генерираме печалба за компанията. Ако тази идея се докаже, научените уроци от работата на системата, ще бъдат използвани за създаването на следващото ниво – разширяването. Но и не е задължително да се стига до там. Може пък от пускането на MVP (minimal viable product) да ни е доказало, че имаме нужда от тотално друга архитектура. В този смисъл, бих определил добрата архитектура като такава, която подпомага бизнеса в неговите цели. От нея трябва да стават ясно видими изискванията и ограниченията на една софтуерна система.

А лоша софтуерна архитектура? Има ли такава и как се отразява на времето за изпълнение на проекта? 

Ако целта е продуктът да се достави бързо, а архитектурата прави изработката тромава, това значи че дадената архитектура не е за този проект, но това пък не значи и че е лоша по принцип. Има много случаи, в които някой по-млад или неопитен специалист взима готово решение, което изглежда сякаш ще пасне на неговият проблем. Лошата архитектура прикрива слабите страни на софтуерната система. Последиците от едно такова нещо доста често са по-големи от това да се повлияе на времето за разработка. Най-страшното нещо е да разбереш, в моментът в който пуснеш системата, че тя не може да се справи с повече от 10 потребители, а би трябвало да поема десетки хиляди заявки в секунда. Ето това вече е сериозно, защото архитектурата много добре е прикрила този проблем и никой не е успял да го забележи и тества. В крайна сметка това, което се получава е, че цялата система е неизползваема от ден първи. Това е много по-страшен сценарий, отколкото системата да се забави с ден, месец или шест месеца.

Това значи, че архитектурата е като пъзел – подреждат се парчетата от различните компоненти, дизайн, бизнес гледни точки и т.н. Но колкото и добре да изглежда, може да има нещо пропуснато в кода, останал бъг, който да смути целия проект… 

Не бих я нарекъл пъзел, защото той има един определен правилен начин на подреждане. Тя е баланс от компромиси. Да, нещо може да струва малко по-скъпо сега, но да те изведе по-бързо на пазара, което може да е по-важно за бизнеса в момента. Следователно ти насочваш ресурсите си в тази посока. После обаче ще има нужда да се разширява системата като възможности и тогава вече бързото решение ще дойде твърде скъпо и ресурсите ще трябва да бъдат вложени в това да се изработи по-финансово-рентабилна алтернатива. Затова архитектурата се прави на етапи и тази, с която е достигнат един етап, може да не е тази, с която да се продължи напред.

Ти самия пишеш ли код активно? Част ли е това от ежедневните ти задължения? 

Кодя, но това не е основната част от работата ми. Ако архитектът коди, фирмата започва да губи пари от него, защото уменията и знанията му трябва да бъдат насочени другаде. В същото време е добре архитектът да може да си подреди парчетата от архитектурата и да може да даде работещ макет като част от документацията. Това е добре да се прави при критични неща и такива, които трябва да се изтестват, преди да достигнат до взимане на крайно решение за имплементацията.

Задължително ли е софтуерните архитекти да са насочени и към бизнес частта на продукта? Това ли е по-невидимо звено, което ги прави ефективни. 

Архитектът решава бизнес проблеми, така че май няма как да не е насочен към бизнеса.

Но някой, който не разбира бизнес частта не може да работи тази професия – софтуерна архитектура? 

Има как! Бизнесът се учи. Освен това има и различни профили архитекти: enterprise, system, solution, software, technical. Въпреки, че вече имах години опит в гейминг индустрията, като започнах с тази роля, не разбирах толкова добре бизнеса, както днес. Но като говорим за бизнес, не става въпрос за продажба на софтуер. Става въпрос да се избират бизнес изискванията, които софтуерната система трябва да покрие, да се разбират и нуждите на потребителите. Представете си, че трябва да направим програма, която винаги ще работи с числа. Какво ще стане ако тази програма не получи число? Бизнесът ще каже, „ние задължително трябва да работим с числа, няма как да не получи такова“. Това е така, но има хора, които нарочно няма да изпратят число в системата и ние трябва да сме наясно как тя ще се справи с това. Тук влизаме в обхватът на NFRs (non-functional requirements). Тяхното разбиране има отношение към проектирането на софтуерната архитектура.
Мога да използвам метафора, която да обясни софтуерната архитектура от друг аспект. Ако някой се чуди какво точно представлява, то нека погледне архитектурата на сгради, чертежите. Там не виждаме къде ще има апартамент, сауна и т.н. Там виждаме местоположение, аварийни изходи, електрическа инсталация и т.н. Това е погледът относно нещата, които са трудни да се променят. След като построим сградата, много трудно ще се преместят носещите стени или ще се подмени ВиК инсталация или дизайна на одушниците. Софтуерната архитектура се занимава с аналогични проблеми. Нейната цел е да изрази тези основни рамки и лимитации на системата, а оттам разработчици попълват кутийките със съответните системи.

Аналогично погледнато, това значи ли, че софтуерните инженери не гледат с добро на архитектите? 

Абсолютно! В строителния бизнес явно е същото. Това произлиза от нивото, на което се разглежда проблемът. Когато той е при един програмист, който смята, че може да го реши с два реда код, а архитектът го кара да направи отделни пакети, които да комуникират със специфичен протокол. Това означава, че на програмиста не му е ясно защо трябва да се направи точно така и какъв проблем се решава. Ако той смята, че два реда код стигат, значи има скъсана комуникация. Всичко може да се напише с малко код, но не е това идеята. Не решаваме проблем, който да води събиране на програмата в един ред…

Това значи, че т. нар. soft skills са много важни и за тази професия.

Комуникацията е ключът към всичко!

Интересно е, че напоследък все повече HR специалисти споделят, че програмистите трябва да притежават „меки умения“. Явно разработчиците не са както носещата им се слава от преди години, за забили глави в компютрите хора, които не говорят с никого. 

Когато проблемът се решава от един програмист, може би е окей. Но когато имаме стотици програмисти в една компания от над 2000 души, няма как комуникацията да ти е слабо звено, иначе няма да си полезен за организацията си. В кварталната гаражна фирма може да си нацупен и като влезе клиент да го изгониш, но когато си се събрал с екип, общуването е водещо. Често не търсим най-добрият специалист, а този с който можем общуваме ефективно.

А има ли го и този момент, че в компания от 2000 души е по-труден микро мениджмънта и някак може да се допусне дадени хора да се скатават, защото е по-трудно да наблюдаваш кой какво прави? 

Не съм съгласен! Има си инструменти за проследяване. Може би е имало подобно явление преди години, но сега, работата на всеки се разглежда, оценява и прогнозира. Компанията знае колко може да произведе и колко работа й върши даден служител. Би трябвало тези проблеми да са разрешени вече. Поне в компаниите по западен маниер…

Разкажи за MChaov Ltd., какво представлява? Свързано е с консултантска дейност? 

Да, това е фирма, която преди около 10 години създадох с цел да развивам собствена дейност и да не работя повече на трудов договор! Имах най-различни начинания, но се появи компанията SBTech, за която започнах да изпълнявам поръчки от типа графичен дизайн. Малко по малко те започнаха да ми изпращат все повече задачи, Front-end и други. Така започнах и по-сериозно да се занимавам с JavaScript. В един момент ми даваха толкова много работа, че стана нерентабилно да работим през фирмата. Поради тази причина, с тях преминахме на трудов договор, а MChaov Ltd. остана за странични проекти. Колкото до консултантската дейност – развивам такава, доколкото са ми интересни проектите. Тя изисква много време и ако трябва да консултирам бизнес, който като ниша не ми е познат, то трябва да отделя голям ресурс да вникна във всичките му процеси. Това може да отнеме и месеци. Затова по-скоро към момента се захващам с проекти свързани с обучение на хора или проектиране и програмиране на софтуерни системи.

В началото значи си бил нещо като външен контрактор за SBTech?

Да, но в даден момент обхватът на интересите ни се припокри и бе естествена стъпка да премина на трудов договор с тях.

По какви интересни проекти си работил през твоята фирма? 

Има някои доста шантави такива. Ще споделя доколкото ми позволяват договорите за неразгласяване (NDA). С колеги работихме по проект, който трябваше да е много конкурентен на iTunes. Разработвахме го на PHP. Накрая никой не чу за проекта, беше толкова секретен, че дори и не видя бял ден. Но като know-how бе много полезен за нас.
Работил съм по билинг система за ISP на ISP-та. Това беше преди много години, но беше първият ми сблъсък със система с десетки различни нива на достъп.
Скоро работих по една система, която се оказа типичен пример за extreme programming. Започнахме с една страница A4 изисквания и трябваше да сглобим макет за няколко дни – например за два. Обаче, накрая на ден втори, изискванията бяха повече от 50 страници и в крайна сметка се стигна до система, в която се качват CSV файлове, генерирани от втора система, event sourcing архитектура, защото файловете се агрегираха като информация, но трябваше да може и да се трие определен файл и данните да се опреснят. Системата имаше push нотификации през Azure и бе написана на много езици – .NET Core за бекенд, а от другата страна клиенти на Swift, Typescript, Java и тн. Дизайна се промени няколко пъти по време на разработката, защото изискванията се пишеха по време на самата разработка. Към средата преминахме от Linux + PgSQL на Windows и MSSQL. Като цяло всичко това е много забавно и на мен ми харесва – приемам го като предизвикателство! В крайна сметка проектът беше успешен, а това е най-важното за клиента!

А какви технологии използваш в сегашната работа? Както спонема, ти трябва да следиш и с какви би могло да се изпълни по-добре нещо…

Зависи на кое казваме „технология“. Списъкът като цяло е голям: .NET, .NETCore, TypeScript, React, различни бази данни, различни инструменти по CI/CD процесите и прочее…
Технологиите нямат значение! Смятам за голяма грешка на много програмисти, че се профилират като начин на мислене и взимане на решение. Няма нищо лошо да си експерт с тясна специализация. Проблемът е, когато имаш само един чук и се опитваш да решиш всички проблеми само с него. Тогава всеки проблем ти прилича на пирон! Има неща, които е по-добре да се решат с други инструменти – отверка, трион и т.н. Смятам, че не трябва да се ограничаваме в един език. Добре е да може да се пише и на други, за да може да се види как подобни проблеми могат да се решават с различните езици. Има неща, които много лесно се решават с JavaScript, но и такива, за които би било нерентабилно. Проблемът трябва да се решава с правилните инструменти! Например, Node.js се хоства по-лесно на Linux, ако трябва да сложиш база на същата машина по-добре да не е MSSQL… Ако избереш второто, то тогава има ограничения, които идват с този избор. В моята работа се старая да прилагам правилните инструменти към правилните проблеми.

Има ли с какво към момента да се подобри българският ИТ пазар? 

Ще споделя само мнение, защото нямам достатъчна компетения да говоря за целият пазар. Това, което виждам е, че поколението, което влиза в сектора, до голяма степен няма истинското желание да се занимава с това. Повечето се захващат с тази работа поради икономически причини, което е напълно нормално и напълно уважително, но без това желание, развитието им е под голям въпрос, което води и до това, че те няма да има как да развиват и тези след тях. Това значи, че ще имаме деградация. Това, което може да се подобри е опит да се възпита любов в тези хора към технологиите. Много често забелязваме следното – търси се React или Angular Developer. Човекът е решил, че няма да се занимава с нищо друго освен Angular или React. Паднал си е по една технология и не е склонен да учи друга, дори и тя да му изкарва повече пари. Навлязал е в зона на комфорт. А по този начин специалистите доста закърняват. Смятам, че не трябва да се обвързваш технологично. Трябва да си с отворено съзнание и да подхождаш към всяко ново нещо с нагласата за нов урок. Интересно е как различните технологии разрешават подобни проблеми.

Попитах не за друго, но например, при интервю с председателя на БАСКОМ, той сподели, че очаква в България да се появят хората, които да направят следващия Facebook. Не буквално разбира се, а по-скоро като метафора за постижение, което може да разтърси целия свят и да промени начина ни на живот. От друга страна, според приятел, работещ в сектора, това е невъзможно за България, защото тук пазарът е малък и някой с лекота може да те откупи за 100 милиона, а ти ще се съгласиш, защото си решаваш проблемите до края на живота, че и отвъд него. А и така или иначе е много възможно да няма как да си развиеш фирмата, защото пазарът е пълен от големи конгломерати и ти нямаш ресурса да ги достигнеш. Ако Google дочуе за твоята идея, ще се впрегнат и за месец ще направят това, което ти за 3 години… 

Ако смяташ, че 100 милиона ти стигат и си готов да ги вземеш – защо не? Но това значи, че на теб целта ти е била друга. Повечето хора, които са направили тези компании като Facebook, Twitter, YouTube, не са ги създали, за да ги купи Google или за да се продадат и да станат мултимилиардна корпорация. Доста от тези неща са направени като студентски проект или някаква идея, която им се е сторило готино да разцъкат с приятели и т.н. Това е ключът – те са родени от страст към решаване на проблеми и от страст към програмирането. Зукербърг не се е събудил една сутрин с идеята „сега ще покорим света с Facebook”. Тези неща се раждат естествено в среда, която провокира хората да пробват идеите си и да ги реализират. Всъшност много от тези проекти са започнали именно в университет.

Ако подобни компании са родени от чисти технологични намерения и се върнем на това, което каза, че забелязваш липсата на такива в идващото поколение програмисти, то май няма да се създаде у нас нещо толкова гигантско… 

Да, но пак казвам, че не е напълно лошо. Има нужда от всякакви хора на пазара. Тези, които са насочени от икономическите причини към пазара, обикновено са готови да вършат всякаква работа от 9 до 17 и да им се махне от главата, а за това има много място в индустрията. Особено в аутсорсинга. Там нещата са насочени основно така. Не, че нямат нужда от тесни специалисти, но когато работата е повече на парче, то фокусът е другаде.

А как се отразява работата от вкъщи на теб и въобще на DraftKings? Според някои специалисти има опасен за българския пазар фактор, че много компании видяха, че дистанционната работа се получава, а нашият пазар вече не е толкова евтин, и някои компании могат да запожат на служители от други страни. 

Не мисля, че home office моделът ще измести офисът изцяло. Когато работиш в голям екип, нищо не може да замени физическото присъствие при комуникация, то изгражда доверие по съвсем различен начин. Това, което бих дал като лични наблюдения е, че в home office опцията, рязко се изостря разликата между тези, на които им се работи и са съвестни и тези, които го правят колкото да си вземат заплатата и започват да скатават от работата.
Проблемите с дистанционната работа обаче са свързани повече със сигурност. За да дадеш достъп до вътрешно фирмената мрежа, даден служител трябва да отговаря на някои изисквания. Случаен лаптоп, закупен от някой си магазин, който не е преминал през сертификация от ИТ отдела, няма как да е сигурен и да бъде вързан в мрежата без риск. Когато се работи с данни с висока чувствителност, то това става опасно. Ако имаш изтичане на имейли и пароли на потребители. Един такъв гаф може да има големи финансови изражения. Често се подхожда несериозно към тези рискове и смятам, че за много организации дистанционната работа е предизвикателство за ИТ отделите.

Ако си загубиш фирмените данни, предполагам си губиш и бизнеса…

При някои е така! В SBTech се наемат външни фирми, които се опитваха да пробият софтуерът и офиса. Появяваха се хора и се опитваха да плъгнат флашка в даден компютър и да източат файлове. Правят се одити с външни фирми. Например, пристига облечен като доставчик на пица човек и действа. А за SBTech сертифицирането е от огромно значение, клиентите са държави. Не някакви локални бакалии, които имат сайт за промотиране на био продукти. Такива тестове (Pen. Testing) се правят по цял свят и са изискване за взимането на лиценз в някои пазарни ниши.

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

Да. Сега остава всичките ти служители да работят на лаптопи, което не е най-ефективното нещо. Те са по-слаби машини и е по-удобно да си на мощен компютър, на два монитора и т.н. Не всеки има място в дома си за цялата тази компютърна система. Поради тази причина преживяването на хората варира. Home office за някои е рай, но за други е бич. Аз съм по-средата … все пак имам жена и дете.

]]>