+
Вход

Въведи своя e-mail и парола за вход, ако вече имаш създаден профил в DEV.BG/Jobs

Забравена парола?
+
Създай своя профил в DEV.BG/Jobs

За да потвърдите, че не сте робот, моля отговорете на въпроса, като попълните празното поле:

111+14 =
+
Забравена парола

Въведи своя e-mail и ще ти изпратим твоята парола

TINQIN – 10 години иновация, скалиране и екипност

*Текстът е предоставен от TINQIN

TINQIN предоставя палитра от софтуерни решения, полезни на крайния клиент и същевременно подсигуряващи безупречна “комуникация” между всички в процеса. Зад осигуряването на качество и иновация на нашите клиенти стоят професионалните умения, мотивацията, работата в екип и пълноценната комуникация в компанията. Целта ни е да предлагаме широк спектър от иновативни решения и услуги главно в застрахователния сектор. Реализираме я като използваме най-новите съвременни технологии, за да осигурим добавена стойност на клиентите ни.

Това лято TINQIN навършва 10 години от създаването си. За първото ни десетилетие успяхме да присъединим над 300 колеги с различен опит, знания и интереси, но всички обединени с общата ни цел – да се развиваме и да растем, да надграждаме и да споделяме знания. Най-ценната част от компанията ни са хората. Ето защо и от основно значение за нас е тяхното израстване и обучение, което довежда до създаването на вътрешна академия и инвестирането на компанията в откриването и създаването на таланти.

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

Георги Марков, Senior Software Engineer
Разкажи ни повече за продукта, който разработваш, както и отговорностите пред теб и екипа.

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

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

Системата е монолитна и е натрупала доста „технически дълг“ през годините, което усложнява поддържането и развитието ѝ, а и неимоверно затруднява бъдещото ѝ скалиране. Затова паралелно с този процес друга част от екипа разработва нова модернизирана версия, която поетапно трябва да замени съществуващата. Тя се базира на микросървисна архитектура и се надяваме поддръжката и по-нататъшното ѝ развитие да позволяват и ефективна хоризонтална скалируемост. Въпреки, че новата система е базирана върху функционалността на съществуващата, тя ще работи по принципно различен начин. Микросървисната архитектура има противоположни предимства и слабости спрямо монолитната. Основна част от работата ни е анализът на съществуващата функционалност и изграждането на нова система, която да я имплементира по възможно най-ефективен начин, придържайки се към добрите практики като Domain-driven design(DDD) и Clean Architecture.

Участваш в един от най-мащабните проекти в компанията, какви са предизвикателствата в разработката на този продукт?

Мисля, че основното предизвикателство пред нашия проект, а и пред всеки голям проект, е менажирането на комплексността.

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

Днес те питаме…

Каква е основната причина да си търсиш нова работа?
Loading ... Loading …
Кои фактори трябва да се вземат предвид при избора на технологии?

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

Релационни или нералационни бази данни? Какви са добрите практики, които помагат за гъвкавостта при съхранение на данни, сигурността им, developer experience?

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

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

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

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