Python
Разкажете ни за себе си и вашия професионален опит
Как точно се получава стойността в шестия ред при извикване на res(2)?
Вас устройва предложената процедура: изпращане на CV и отговори по имейл, след което резервиране на кратък разговор за подготовка?
Какви са начините за решаване на колизии в хеш таблица?
Разкажете за услугите и работата на последното място — изберете няколко функции и разкажете как сте ги решавали от технологична гледна точка, какви модели сте използвали, какви бяха трудностите и алтернативните подходи.
Разкажи ми за събирача на боклук в Python: какво е и как работи?
Посочете случаи, когато трябва да използвате генераторно изразяване вместо списъчно разбиране, и обратно.
Разкажете за патърна Unit of Work. Как управлявате транзакциите в бизнес сценарий за създаване на поръчка?
Разкажи ми най-простия вариант на сложността на операциите със списъци.
Как двата сервиса си взаимодействат чрез Kafka: какво се случваше на входа и изхода, как преминаваше заявката през pipeline до решението за одобрение или отказ?
Имали ли сте опит с разделянето на монолит на микросервизи?
Кои бенчмаркове знаете за оценка на работата на LLM?
Кога е по-добре да използвате JOIN и кога предварително зареждане на данни с две заявки при решаване на N+1?
Разкажете за последната интеграция, по която работихте.
Какви задачи и очаквания ще има един разработчик през първите три месеца и половин година?
Какви предложения и задачи ви интересуват?
Решението за разделяне на монолита на микросервизи беше основно базирано на интуиция?
Бяхте ли старши разработчик в Tochka Bank или нямаше система за оценяване?
В какво се състоеше добавената стойност на вашата скоринг платформа, ако специализираният сервиз и ML-сервизът изпълняваха част от работата?
от fastapi import FastAPI, UploadFile, Response от fastapi.responses import StreamingResponse от pydantic import BaseModel, field_validator import base64 app = FastAPI() class PdfSchema(BaseModel): filename: str content_type: str data: str # base64 pdf 10мб @app.get("/data", response_model=PdfSchema) async def get_data(): return await service.get_big_data() @app.get("/download") async def download(): with open("big.pdf", "rb") as f: data = f.read() return Response(content=data, media_type="application/pdf") def heavy_pdf_parse(data: bytes) -> dict: # CPU-heavy логика return {"size": len(data)} @app.post("/parse") async def parse(file: UploadFile): content = await file.read() result = heavy_pdf_parse(content) return result @app.get("/users") async def get_users(): users = await repo.get_users() result = [] for u in users: posts = await repo.get_posts(u["id"]) result.append({"user": u, "posts": posts}) return result @app.get("/download-two") async def download_two(): def iterfile(): with open("big.pdf", "rb") as f: yield from f return StreamingResponse(iterfile(), media_type="application/pdf") class service: @staticmethod async def get_big_data(): return { "filename": "file.pdf", "content_type": "application/pdf", "data": base64.b64encode(b"fake").decode(), } class repo: @staticmethod async def get_users(): return [{"id": 1}, {"id": 2}] @staticmethod async def get_posts(user_id: int): return [{"id": 1, "user id": user_id}]