Опишете проекта, по който сте работили в последната си длъжност.
Python
Каква е алгоритмичната сложност при добавяне на елемент към списък в Python? Как работи добавянето в средата и в началото?
Какво е Python и какви са основните му принципи?
Защо синхронните функции на FastAPI се изпълняват паралелно за 5 секунди вместо за 10?
В кои случаи трябва да се направи COMMIT? В рамките на DDL и DML?
Разкажи ми за ACID. Особено за нивата на изолация на транзакциите. Какво ниво използваха?
Каква е разликата между нишки и процеси?
Как да прехвърлите файл между два сървъра чрез Shell?
Какви типове данни има в Python? Разкажи ми за променяемите и непроменяемите.
Как бихте определили проблема, ако микросервис след ново издание започне да използва 100% CPU на всички 20 ядра?
За какво са нужни мютекси в Python, ако GIL вече гарантира еднопоточност?
Защо все още работи многопоточността с IO-bound задачи, въпреки GIL?
Разкажете ни малко за себе си и вашия технически опит.
Как поддържахте консистентността на кеша в услугите за каталог и кошница — когато инвалидирахте, как беше организирано?
Разкажете за декораторите и генераторите. Напишете декоратор retry с параметри.
Кортеж съдържа списък — как се различава от кортеж с числа? Свързано ли е с това?
от 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}]
Кой настрои алармите и как се превръща спадът в услуга в аларма?
Какво е типизирането в Python?
SQL задача: как да извлечем потребители с имена на кирилица и латиница, като ги сортираме така, че кирилицата да бъде първа, а вътре в групите — лексикографски?