[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"me":3,"catalog:en:ai-engineer":4,"config":192},null,{"field_key":5,"field_name":6,"seniority":7,"topic_key":7,"topic_name":7,"spec_key":7,"spec_name":7,"locale":8,"cell_total":9,"field_total":9,"seniorities":10,"topics":14,"specs":97,"samples":108},"ai-engineer","AI Engineer","","en",2025,[11,12,13],"junior","mid","senior",[15,19,22,25,28,31,34,37,40,43,46,49,52,55,58,61,64,67,70,73,76,79,82,85,88,91,94],{"key":16,"name":17,"count":18},"agents-tool-use","Agents Tool Use",75,{"key":20,"name":21,"count":18},"aimlops-deployment-strategies-ml","Aimlops Deployment Strategies Ml",{"key":23,"name":24,"count":18},"aimlops-experiment-tracking-reproducibility","Aimlops Experiment Tracking Reproducibility",{"key":26,"name":27,"count":18},"aimlops-feature-store-data-versioning","Aimlops Feature Store Data Versioning",{"key":29,"name":30,"count":18},"aimlops-ml-cicd-pipelines","Aimlops Ml Cicd Pipelines",{"key":32,"name":33,"count":18},"aimlops-model-monitoring-drift-detection","Aimlops Model Monitoring Drift Detection",{"key":35,"name":36,"count":18},"aimlops-model-versioning-registry","Aimlops Model Versioning Registry",{"key":38,"name":39,"count":18},"aipy-async-concurrency-ml-serving","Aipy Async Concurrency Ml Serving",{"key":41,"name":42,"count":18},"aipy-data-pipeline-dataloader","Aipy Data Pipeline Dataloader",{"key":44,"name":45,"count":18},"aipy-gpu-memory-management","Aipy Gpu Memory Management",{"key":47,"name":48,"count":18},"aipy-numpy-vectorization-broadcasting","Aipy Numpy Vectorization Broadcasting",{"key":50,"name":51,"count":18},"aipy-python-ml-packaging-environments","Aipy Python Ml Packaging Environments",{"key":53,"name":54,"count":18},"aipy-tensor-ops-autograd","Aipy Tensor Ops Autograd",{"key":56,"name":57,"count":18},"embeddings-vector-search","Embeddings Vector Search",{"key":59,"name":60,"count":18},"evaluation-testing","Evaluation Testing",{"key":62,"name":63,"count":18},"fine-tuning-adaptation","Fine Tuning Adaptation",{"key":65,"name":66,"count":18},"inference-serving","Inference Serving",{"key":68,"name":69,"count":18},"llm-fundamentals","Llm Fundamentals",{"key":71,"name":72,"count":18},"prompt-engineering","Prompt Engineering",{"key":74,"name":75,"count":18},"rag-chunking-indexing","Rag Chunking Indexing",{"key":77,"name":78,"count":18},"rag-embeddings-similarity","Rag Embeddings Similarity",{"key":80,"name":81,"count":18},"rag-evaluation","Rag Evaluation",{"key":83,"name":84,"count":18},"rag-generation-context","Rag Generation Context",{"key":86,"name":87,"count":18},"rag-reranking-fusion","Rag Reranking Fusion",{"key":89,"name":90,"count":18},"rag-retrieval","Rag Retrieval",{"key":92,"name":93,"count":18},"rag-retrieval-search","Rag Retrieval Search",{"key":95,"name":96,"count":18},"safety-guardrails","Safety Guardrails",[98,102,105],{"key":99,"name":100,"count":101},"llm-rag","LLM\u002FRAG",450,{"key":103,"name":104,"count":101},"mlops","MLOps",{"key":106,"name":107,"count":101},"python","Python",[109,127,140,153,166,179],{"id":110,"topic":17,"difficulty":111,"body":112,"options":113,"correct_key":115,"explanation":126},"019f5912-4546-7783-9e15-5f01a65b3ed6",1,"When an LLM performs 'tool calling' during a conversation, what actually happens?",[114,117,120,123],{"key":115,"text":116},"a","The model generates a structured request (a tool name and arguments) describing which tool it wants to use; the calling application executes the tool and returns the result.",{"key":118,"text":119},"b","The model directly executes the tool's code inside its own runtime and returns the result to the conversation.",{"key":121,"text":122},"c","The model pauses the conversation and executes the tool on the provider's servers automatically, without any code from the application.",{"key":124,"text":125},"d","The model calls the tool's network endpoint by itself, bypassing the application entirely.","The model never executes code or makes network calls itself — it only produces a structured intent (tool name + arguments). The host application is responsible for parsing that intent, running the actual tool, and feeding the result back. Options b, c, and d all assume the model has execution capability it does not have.",{"id":128,"topic":17,"difficulty":111,"body":129,"options":130,"correct_key":118,"explanation":139},"019f5912-4555-7d4e-ae51-e5bd7e57a22a","Why does the description text in a tool's schema matter for tool calling?",[131,133,135,137],{"key":115,"text":132},"It is only used for human documentation and has no real effect on the model's behavior, since the model decides which tool to call purely from the function's internal implementation code, not from schema text.",{"key":118,"text":134},"The model uses the tool's name, description, and parameters to decide whether and how to call it, so a vague description raises the chance of wrong calls.",{"key":121,"text":136},"It determines the order in which tools execute on the server, regardless of what the model requests.",{"key":124,"text":138},"It is required only for tools that return JSON; tools returning plain text do not need a description.","The schema (name, description, parameter definitions) is the model's only source of information about what a tool does and when to use it. A poor description makes the model more likely to pick the wrong tool or fill in arguments incorrectly. It is not purely documentation — it directly shapes model behavior.",{"id":141,"topic":17,"difficulty":111,"body":142,"options":143,"correct_key":121,"explanation":152},"019f5912-4557-79f8-b874-f269ad7328a5","In the classic 'agent loop' pattern, what is the typical order of steps within one iteration?",[144,146,148,150],{"key":115,"text":145},"Act first, then think, and repeat without ever looking at the result.",{"key":118,"text":147},"Observe the environment once at the very start, then keep repeating that same initial action regardless of what any later observation actually shows.",{"key":121,"text":149},"Think about the next step, take an action such as a tool call, observe the result, and use that observation to decide what to do next.",{"key":124,"text":151},"Call every available tool simultaneously, then think about which of the results to keep.","The standard agent loop is think → act → observe → repeat: the model reasons about the next step, takes an action, receives the observation (tool result), and folds that observation into the next reasoning step. Options a, b, and d skip or misorder the feedback from observation to reasoning.",{"id":154,"topic":17,"difficulty":111,"body":155,"options":156,"correct_key":115,"explanation":165},"019f5912-4559-715b-92e9-bff3f1308cf6","What does the ReAct pattern in LLM agents refer to?",[157,159,161,163],{"key":115,"text":158},"Interleaving explicit reasoning steps (thoughts) with actions such as tool calls, so each action is guided by reasoning and each result updates it.",{"key":118,"text":160},"A UI rendering framework used by some frontend applications to display an agent's chat interface, unrelated to how the model itself reasons or calls tools.",{"key":121,"text":162},"A technique where the model only ever reacts passively to user messages and is never allowed to initiate a tool call on its own during the conversation.",{"key":124,"text":164},"A caching strategy where the application reuses a previous tool's output instead of calling the tool again, regardless of whether the underlying data may have changed.","ReAct (Reason+Act) is a prompting\u002Fagent pattern where the model alternates between reasoning traces and tool actions, using each observation to refine subsequent reasoning. It is unrelated to the JavaScript UI library sharing a similar name, and it does not describe caching or a tool-free chat mode.",{"id":167,"topic":17,"difficulty":111,"body":168,"options":169,"correct_key":124,"explanation":178},"019f5912-4561-7885-a82c-3ee6f2db8b49","During a conversation, the model produced the following structured output:\n```\n{\n  \"tool_call\": {\n    \"name\": \"get_weather\",\n    \"arguments\": {\"city\": \"Ankara\"}\n  }\n}\n```\nWhat should the application do next?",[170,172,174,176],{"key":115,"text":171},"Ignore the structured output and continue generating a final answer directly, since the model already produced this as if it already knew the current weather in Ankara.",{"key":118,"text":173},"Send this raw JSON back to the user as the final response.",{"key":121,"text":175},"Store it in a database as a completed action log without running anything.",{"key":124,"text":177},"Parse the arguments, run `get_weather` with `city=\"Ankara\"`, and return the result to the model as the tool's output so it can continue.","This JSON is only a request to call a function — the model has not obtained any weather data yet. The application must run the actual function with the given arguments and feed the result back as an observation. Options a, b, and c either skip execution entirely or expose an internal request to the end user.",{"id":180,"topic":17,"difficulty":111,"body":181,"options":182,"correct_key":118,"explanation":191},"019f5912-456c-72ee-8e10-2daf618293cb","A support feature needs to answer 'What is our refund policy?' by looking up a single static FAQ document that rarely changes. Which approach fits best?",[183,185,187,189],{"key":115,"text":184},"Build a multi-step agent with a tool-calling loop, step limits, and retry logic so it can search for the answer.",{"key":118,"text":186},"A single prompt containing the relevant FAQ content is enough; there is no need for an iterative agent loop for this fixed, single-step lookup.",{"key":121,"text":188},"An agent with dozens of tools is required, because any customer question could theoretically need several tool calls.",{"key":124,"text":190},"The model must be given open-ended, always-on web search access so it can independently re-verify the refund policy from scratch on every single request, even for this fixed document.","When the needed information is already known and fixed, a single prompt (with the content included or one direct lookup) solves the task without the overhead of an iterative loop, step limits, or retries. Building a full agent for a fixed, single-step answer adds complexity without benefit.",{"fields":193,"seniorities":372,"interview_shapes":373,"locales":378,"oauth":380,"question_count":383,"coach_enabled":384,"jd_match_enabled":384},[194,217,238,255,279,286,305,324,346,353,359,366],{"key":195,"name_tr":196,"name_en":196,"sort":111,"specializations":197},"backend","Backend",[198,201,204,205,208,211,214],{"key":199,"name":200,"field":195},"general","Genel",{"key":202,"name":203,"field":195},"go","Go",{"key":106,"name":107,"field":195},{"key":206,"name":207,"field":195},"java","Java",{"key":209,"name":210,"field":195},"csharp","C#\u002F.NET",{"key":212,"name":213,"field":195},"nodejs","Node.js",{"key":215,"name":216,"field":195},"php","PHP",{"key":218,"name_tr":219,"name_en":219,"sort":220,"specializations":221},"frontend","Frontend",2,[222,223,226,229,232,235],{"key":199,"name":200,"field":218},{"key":224,"name":225,"field":218},"javascript","JavaScript",{"key":227,"name":228,"field":218},"typescript","TypeScript",{"key":230,"name":231,"field":218},"react","React",{"key":233,"name":234,"field":218},"vue","Vue",{"key":236,"name":237,"field":218},"angular","Angular",{"key":239,"name_tr":240,"name_en":240,"sort":241,"specializations":242},"fullstack","Fullstack",3,[243,244,245,246,247,248,249,250,251,252,253,254],{"key":199,"name":200,"field":239},{"key":202,"name":203,"field":195},{"key":106,"name":107,"field":195},{"key":206,"name":207,"field":195},{"key":209,"name":210,"field":195},{"key":212,"name":213,"field":195},{"key":215,"name":216,"field":195},{"key":224,"name":225,"field":218},{"key":227,"name":228,"field":218},{"key":230,"name":231,"field":218},{"key":233,"name":234,"field":218},{"key":236,"name":237,"field":218},{"key":256,"name_tr":257,"name_en":257,"sort":258,"specializations":259},"devops-cloud","DevOps \u002F Cloud",4,[260,261,264,267,270,273,276],{"key":199,"name":200,"field":256},{"key":262,"name":263,"field":256},"aws","AWS",{"key":265,"name":266,"field":256},"gcp","GCP",{"key":268,"name":269,"field":256},"azure","Azure",{"key":271,"name":272,"field":256},"kubernetes","Kubernetes",{"key":274,"name":275,"field":256},"terraform","Terraform",{"key":277,"name":278,"field":256},"linux","Linux",{"key":5,"name_tr":6,"name_en":6,"sort":280,"specializations":281},5,[282,283,284,285],{"key":199,"name":200,"field":5},{"key":106,"name":107,"field":5},{"key":99,"name":100,"field":5},{"key":103,"name":104,"field":5},{"key":287,"name_tr":288,"name_en":289,"sort":290,"specializations":291},"database","Veritabanı","Database",6,[292,293,296,299,302],{"key":199,"name":200,"field":287},{"key":294,"name":295,"field":287},"postgresql","PostgreSQL",{"key":297,"name":298,"field":287},"mysql","MySQL",{"key":300,"name":301,"field":287},"mongodb","MongoDB",{"key":303,"name":304,"field":287},"redis","Redis",{"key":306,"name_tr":307,"name_en":308,"sort":309,"specializations":310},"mobile","Mobil","Mobile",7,[311,312,315,318,321],{"key":199,"name":200,"field":306},{"key":313,"name":314,"field":306},"ios-swift","iOS (Swift)",{"key":316,"name":317,"field":306},"android-kotlin","Android (Kotlin)",{"key":319,"name":320,"field":306},"flutter","Flutter",{"key":322,"name":323,"field":306},"react-native","React Native",{"key":325,"name_tr":326,"name_en":327,"sort":328,"specializations":329},"security","Güvenlik","Security",8,[330,331,334,337,340,343],{"key":199,"name":200,"field":325},{"key":332,"name":333,"field":325},"appsec","AppSec",{"key":335,"name":336,"field":325},"offensive-pentest","Offensive \u002F Pentest",{"key":338,"name":339,"field":325},"cloud-security","Cloud Security",{"key":341,"name":342,"field":325},"devsecops","DevSecOps",{"key":344,"name":345,"field":325},"blue-team-incident","Blue Team \u002F Incident",{"key":347,"name_tr":348,"name_en":349,"sort":350,"specializations":351},"qa-test-automation","QA \u002F Test Otomasyonu","QA \u002F Test Automation",9,[352],{"key":199,"name":200,"field":347},{"key":354,"name_tr":355,"name_en":355,"sort":356,"specializations":357},"data-engineer","Data Engineer",10,[358],{"key":199,"name":200,"field":354},{"key":360,"name_tr":361,"name_en":362,"sort":363,"specializations":364},"game-dev","Oyun Geliştirme","Game Development",11,[365],{"key":199,"name":200,"field":360},{"key":367,"name_tr":368,"name_en":368,"sort":369,"specializations":370},"ml-engineer","ML Engineer",12,[371],{"key":199,"name":200,"field":367},[11,12,13],{"junior":374,"mid":376,"senior":377},{"questions":375,"median_sec":3},20,{"questions":375,"median_sec":3},{"questions":375,"median_sec":3},[379,8],"tr",[381,382],"google","github",21750,true]