System Analyst
За какво е необходима нормализацията на данните в базите данни и денормализацията? Кратко казано, за какво е необходима нормализацията?
Описание на договорите — само на бизнес език или също в OpenAPI (JSON, задължителност, модели)?
Трябваше ли да проектирате API? Използвахте ли OpenAPI, Swagger?
Как да оптимизираме производителността на заявките към съществуваща база данни без увеличаване на обема на данните?
[име] попита: ако живеете в Беларус, какво е вашето гражданство?
Напишете функция, която приема низ като вход и връща броя на гласните букви в този низ.
Практическо задание: Единна платформа за известия (Notification Platform) Контекст В компанията съществуват 3 разпръснати системи, които изпращат известия на потребителите: 1. CRM — изпраща имейли и push известия за поръчки. 2. Support Portal — изпраща съобщения за тикети чрез Telegram бот. 3. Система за сигурност — генерира SMS известия за съмнителни входове. Всяка система реализира своя логика: * собствени шаблони, хардкодирани получатели; * няма централизирана история на известията; * потребителите се оплакват от дублиране и забавяне; * няма единен SLA, метрики или център за управление. Цел Проектирайте нова Notification Platform, която: * агрегира събития от различни източници (CRM, Support, Security), * ги маршрутизира по тип и канал (email, SMS, Telegram, push), * осигурява единство на шаблоните, логването и наблюдаемостта, * поддържа SLA (p95 ≤ 3 сек за доставка), * позволява мащабиране и разширяване на каналите в бъдеще. Задача за кандидата 1. Определете функционалните изисквания на системата. 2. Опишете нефункционалните изисквания (надеждност, производителност, обработка на грешки). 3. Създайте контекстна диаграма (C4 Ниво 2). 4. Добавете схема на sequence диаграма. Например, изпращане на съобщение от CRM.
Какъв беше процесът на работа с изискванията? Какво получавахте като вход и какво беше изходът? Имаше ли собственик на продукта?
Какъв заплатен диапазон разглеждате за себе си?
Какви изисквания ти бяха представени и в какъв вид?
Гражданство [страна], имаш ли разрешение за пребиваване, всичко ли е наред? Трябва ли периодично да напускаш страната?
В SQL — какво е нивото на трудност на заявките, които пишеш?
Всички бизнес клиенти ли са еднакво компетентни по отношение на поставянето на задачи? Има ли анализатори или хора, които са въвлечени в процеса от страна на бизнеса?
Комуникирате самостоятелно с клиентите и бизнеса?
Защо Redis работи по-бързо?
При интеграция с външна CRM система (SOAP), в отговора може да се получи: - Fault AUTH_FAILED - Fault VALIDATION_ERROR (например, неправилен телефон) - timeout Най-доброто съответствие: AUTH_FAILED → 403, VALIDATION_ERROR → 400, timeout → 504 AUTH_FAILED → 500, VALIDATION_ERROR → 500, timeout → 200 AUTH_FAILED → 403, VALIDATION_ERROR → 404, timeout → 409 AUTH_FAILED → 401, VALIDATION_ERROR → 400, timeout → 504 Може да върнете код 200, а в тялото на отговора {"error": }
Случай 4: Трябва да се защитим от измами при атрибуцията, когато събитията се изпращат директно от нашия сървър към сървъра на AppsFlyer. Контекст: приложението е изложено на атаки от емулаторите, измами с инсталации, фалшиво попълване на анкети. Основната антифрод система на AppsFlyer (Protect360) блокира част от трафика, но бизнесът изисква внедряване на вътрешна персонализирана валидация преди изпращането на крайните събития към рекламните канали. Рекламните канали предават click_id, по който трябва да се филтрират събитията — плащаме само за издаване на кредит. Необходимо е да се разработи схема за API взаимодействие и бизнес правила за безопасно предаване на конверсиите: при какви условия събитието се маркира като валидно и се изпраща на партньора, а когато е невалидно, и как се обработва във всеки случай.
В кои формати си работил при описването на интеграции?
Разкажете за предишния си опит на работа до последните три места на работа.
Разкажете повече за последния ви проект, в който сте участвали