Визитка
StorPool Storage е изцяло българска продуктова компания, която разработва собствено решение за съхранение на данни. То се използва от някои от най-големите компании, работещи със собствена cloud инфраструктура, на глобално ниво. Така StorPool се конкурира успешно на световния пазар с IT гиганти като Dell EMC, Nutanix и Pure Storage.
Компанията постоянно увеличава своя пазарен дял и броя на клиентите си, което води и до постепенно разрастване на екипа.
В серия от публикации разказваме подробно за отворените позиции в компанията, за екипите, в които бихте работили, и нещата, които няма да откриете в обявите. Започваме с работата на Senior Software Engineer, който е част от екип Product Infrastructure. За ролята разказва Тодор Танев, който ръководи екипа и е автор на текста.
Продуктът, който движи StorPool Storage напред
Това е продукт, който решава сложен (разбирайте „скъп“) за решение проблем по много елегантен начин. Ако трябва да окачествя най-голямото му предимство, то най-вероятно би било през думички като стабилност, производителност и ефективност. Продуктът обединява капацитета и производителността на множество устройства за съхранение на данни на отделни сървъри в единна storage система без необходимост от специализиран хардуер за целта. Това го вписва изключително добре в това, което хората в нашия бранш наричат модерно IT.
Едно от най-големите предизвикателства пред продукта е, че проблемът, който решава, звучи измамно прост. Непрекъснато итерираме над всички части на продукта, за да гарантираме, че функционира стабилно и с максимална производителност и ефективност във всяка среда, в която е внедрен.
Екипът Product Infrastructure е ключова част от работата по продукта. Мисията на екипа е да осигури безпроблемната работа на продукта във всички условия, в които той трябва да работи безотказно, за да осигури успеха на клиентите на StorPool. Екипът се грижи за няколко различни области на продукта.
Към момента една от тях е интеграции с оркестрационни системи като OpenStack и Proxmox. В тях има множество специфики както покрай промените в самия продукт, така и в самите оркестрации или средите, в които те работят.
Друга част от екипа се грижи за критични вътрешни и външни услуги, например billing, графичен интерфейс, както и собствената ни автоматизирана система за backup и disaster recovery. Всяка от тези услуги може да бъде квалифициранa като самостоятелен продукт в рамките на основния.
Съществуват и множество вътрешни системи за проследяване на качеството, които се развиват заедно с всяка нова промяна на продукта. Екипът работи в тясно сътрудничество с останалите екипи в компанията, например за да бъдат планирани всички задачи по предотвратяване на downtime (там, където има какво да направим, разбира се) както чрез реактивни мерки, така и под формата на проактивно търсене на потенциални проблеми и превенцията им.
Екип със стремеж към иновации и оптимизация на работата
Винаги се стремим към всички иновации, които водят до по-добро състояние вътре в екипа и като цяло в компанията. От цялата съвкупност от предстоящи дейности се приоритизират такива, които имат потенциала да премахнат цели класове проблеми.
От съвкупността от съществуващи вътрешни проекти винаги има такъв, който пасва изключително добре на части от екипа. Често се стремим да откриваме тези синергии, тъй като те водят до значително по-устойчиви в дългосрочен план решения както вътре в екипа, така и на ниво компания.
В множество от нашите вътрешни проекти има изяснена, планирана и активна разработка. За изяснените задачи стремежът е да прилагаме най-добрите практики – от създаване и поддръжка на спецификации през тестово покритие в различните слоеве на нашия CI, вътрешна и външна документация, междуекипни обучения и други. Немалка част от времето ни преминава в усъвършенстване на тези процеси. Когато нещата не са ни ясни, се фокусираме върху изискванията – как стигаме до тях и може ли да се подобрят.
Често приветстваме похвати, които са довеждали до успехи на други места и имат потенциал при имплементирането им и при нас. Активно търсим този свеж поглед от всеки нов член на екипа, тъй като имаме множество примери от добри практики, имплементирани през годините, чиито ползи могат да бъдат проследени и до днес, години по-късно.
Ключовите качества за всеки успешен и продуктивен Senior Software Engineer
- Проактивност. Често един проблем има повече от едно решение и поне един начин да бъде заобиколен. В много от случаите на човек му се налага да планира и двете сравнително скоро след установяването на проблема и да предложи най-подходящото решение за съответните предизвикателства.
- Търпение и постоянство. Съществуват множество истински заплетени проблеми, които изискват и двете в различни пропорции. Повечето проблеми, които решаваме, изискват внимателно планиране, находчивост, прецизност и комуникация за уточняване на целите.
- Не на последно място бих поставил фокус. Често човек може буквално да се загуби из множеството разклонения по пътя към дадена цел. Обикновено по-опитните хора държат погледа си винаги върху целта и намират доказалите се пътища към нея.
Explore more
Уникална позиция на уникално място
Всяко парченце от продукта си има количество история около него. Бидейки част от тази история, съм открил, че всяка негова част е като пъзел, който с достатъчно усилия може да бъде ако не напълно, то поне частично подреден. Подреждането не е задължително да води до качествено различни решения или подход, но пък допринася по малко по-различни начини, например с усещането, че си по-наясно с цялата картинка.
В това, разбира се, както във всяко нещо, има много нюанси.
Понякога парченцата на пъзела са на много недостъпни места, които просто биха изисквали твърде много време или усилия за достигането им. Понякога, дори и без да полагаш усилия, някои парченца буквално те удрят по главата и осъзнаваш колко пъти си ги пропускал, а са били пред очите ти. Понякога смяташ, че нямаш нужда от всички парченца, само за да разбереш по-късно, че липсващото парченце тотално променя картинката.
Фигуративно казано, като пъзел на галактика, където липсващото парче е на пулсар в нейния център. Незначително по размер парченце от пъзела, но с гравитация, която влияе на всичко останало по него.
Добра култура + сплотен екип = StorPool Storage
Според мен хората са това, което прави една компания добро място за работа преди всичко останало. Тук съществува атмосфера на постоянен стремеж към итеративно усъвършенстване на всички части както на самия продукт и на процесите около поддържането му, така и на хората, които се грижат за него.
Ценните уроци в работата на StorPool Storage
Научих, че ако задаваш правилните въпроси достатъчно пъти, можеш да стигнеш до значително по-добри решения. Понякога дори без да полагаш много повече усилия, а често дори с по-малко усилия, отколкото ако избереш да не ги зададеш. Друго, което научих, е да не се доверявам на първото и най-просто обяснение, колкото и примамливо да изглежда. Както и за съществуването на множество други предубеждения.
Ако търсите следващото си предизвикателство и виждате себе си в ролята на Senior Software Engineer, кандидатствайте за позицията на сайта на StorPool Storage. Свободните позиции в компанията са достъпни и в нейния профил в DEV.BG.