# FDE Times > The newspaper of the Forward Deployed Engineer: news, analysis, skill guides, a learning roadmap and jobs. Published in English and Vietnamese. ## Guides (English) - [Build a webhook receiver that withstands forged signatures, replays and duplicate events](https://fdetimes.net/en/guides/secure-webhook-receiver-signatures-replay-duplicates.md): A secure webhook receiver is an endpoint that accepts events from an external system. It verifies the HMAC signature against the raw body, rejects timestamps that are too old, records event IDs so no event is processed twice, and returns a 2xx response quickly. - [Reconciliation: only say "it works" once your numbers match the client's books](https://fdetimes.net/en/guides/data-reconciliation-before-saying-it-works.md): Reconciliation is the systematic check of whether the data your system produces matches the source data or the client's books. It can be done at aggregate level or row by row, and the acceptable variance must be defined in advance. - [DPAs, data terms and procurement: what FDEs need to know so projects don't stall in legal](https://fdetimes.net/en/guides/dpa-data-terms-procurement-for-fdes.md): A DPA (Data Processing Agreement) is a written contract between the data controller (the customer) and the data processor (the vendor and its FDEs). It sets out what the processor may do with personal data, which other parties it may bring in, and how the data must be deleted or returned when the service ends. - [Writing your first eval with Inspect AI: dataset, solver, scorer and reading the log](https://fdetimes.net/en/guides/first-eval-inspect-ai-guide.md): In Inspect, an eval is a Task made of three parts: a dataset of samples with an input and a target, a solver that controls how the model is called, and a scorer that grades the output against the target. - [Sub-agent, skill or MCP server: where a client's workflow belongs](https://fdetimes.net/en/guides/sub-agent-skill-or-mcp-server.md): Packaging process knowledge means splitting a client's business know-how into three layers: an MCP server handles access to systems, an agent skill handles how the work is done, and a sub-agent provides a separate workspace with its own permissions. - [Saying “no” to a bad design without losing the client](https://fdetimes.net/en/guides/how-to-say-no-to-client-design.md): Negotiated pushback is how an FDE turns down a misguided design request: stating the technical constraint plainly, finding the real need behind the request and giving the client a few options, each with its cost. - [How to agree with the client on what ‘success’ means before you write any AI code](https://fdetimes.net/en/guides/define-ai-acceptance-criteria-with-clients.md): Acceptance criteria for an AI system are a set of thresholds that are specific, measurable, achievable and relevant to the use case. They state how often the system may be wrong, what kinds of error are allowed, how severe those errors may be, and which dataset is used to check them. - [From thumbs-down to eval set: turning user complaints into test cases](https://fdetimes.net/en/guides/thumbs-down-feedback-to-eval-test-cases.md): Turning user feedback into eval data is a process. Signals such as thumbs up/down attached to production traces tell you which traces to read. You then note the errors, label each trace pass/fail and add the traces to a test suite. - [When the shift supervisor doesn't trust AI: how an FDE overcomes resistance in a pilot](https://fdetimes.net/en/guides/frontline-resistance-ai-pilot-fde.md): Handling resistance in an AI pilot means the FDE finds the specific worry behind a frontline user's scepticism. The FDE then redesigns the product, the metrics and the feedback process so users have a reason to trust the tool and keep using it. - [Messy client Excel files: count the missing cells before pandas adds them up](https://fdetimes.net/en/guides/clean-messy-client-excel-pandas.md): Cleaning client data means converting the Excel and CSV files a client exports into the correct data types, marking missing cells explicitly and compiling a list of errors for the client to fix at the source, rather than letting the code guess. - [Building an FDE portfolio repo: a simple agent, evals built from real failures, a README and a 3-minute video](https://fdetimes.net/en/guides/fde-portfolio-repo-agent-evals-readme.md): An FDE portfolio repo is a single project that simulates an enterprise problem. It contains a working agent, an eval suite that measures reliability, a README that explains the decisions, and a short video for people who will not read the code. - [ISO 20022 for FDEs: check the payment data before bringing AI into a bank](https://fdetimes.net/en/guides/iso-20022-payment-data-profiling-for-ai.md): ISO 20022 is a payment messaging standard that uses predefined fields for names, postal addresses and remittance information. Machines can read payment data directly from those fields instead of guessing from free text. - [Extracting invoices and contracts with LLMs: schemas, business-rule checks and source citations](https://fdetimes.net/en/guides/llm-invoice-contract-extraction-validation.md): Structured extraction means making an LLM return data in a predefined schema, then using code to check the values and match each field against a passage in the source text as evidence. - [Ten minutes with the client's leadership: turning pilot results into a signed decision](https://fdetimes.net/en/guides/present-pilot-results-to-executives.md): Reporting to executives means arranging technical results into a recommendation. The recommendation comes first and the evidence follows. The meeting ends with a decision that has a named owner. - [How to turn a finished deployment into a playbook, runbooks and a template repo for the next customer](https://fdetimes.net/en/guides/package-deployment-playbook-runbook-template-repo.md): Post-deployment packaging means turning the work done for one customer into decision records, operating procedures and starter code that someone else can reuse with the next customer. - [Multi-tenancy for AI systems: stopping cross-customer data leaks at four layers](https://fdetimes.net/en/guides/multi-tenant-ai-tenant-isolation-four-layers.md): Multi-tenancy means many customers (tenants) share one system. Tenant isolation is the guarantee that no tenant can ever access another tenant's resources. - [A2A and MCP: when your agent has to hand work to another vendor's agent inside a client's system](https://fdetimes.net/en/guides/a2a-vs-mcp-cross-vendor-agents.md): A2A is an open protocol that lets agents from different vendors discover each other's capabilities and delegate work to one another. MCP is an open standard that connects a single agent to its own tools and external systems. - [HL7 v2, FHIR and Epic: integrating AI with hospital data through two pipelines](https://fdetimes.net/en/guides/hl7-v2-fhir-epic-ai-integration.md): HL7 v2 is an event-driven message standard in which each message is made up of lines called segments. FHIR is a standard made up of structured resources and APIs, usually REST, that applications use to read and write healthcare data. - [When the project sponsor quits mid-deployment: how an FDE keeps the work alive](https://fdetimes.net/en/guides/project-sponsor-leaves-mid-deployment.md): A project sponsor is the client-side leader who controls resources, priorities and acceptance. An active sponsor actually uses that authority on the project's behalf rather than simply lending it their name. - [Hands-on: selecting, balancing and ordering few-shot examples from real client data](https://fdetimes.net/en/guides/few-shot-example-selection-real-data.md): Few-shot prompting means putting a handful of labelled input examples into a prompt so the model imitates the labels, the input distribution and the output format when it handles new data. - [When an LLM should say "I'm not sure": self-evaluation, confidence and the threshold for handing off to a human](https://fdetimes.net/en/guides/llm-confidence-threshold-human-handoff.md): A human-handoff threshold is the minimum confidence level, measured on real data, below which an LLM system stops answering on its own and passes the question to a member of staff. - [When the customer's data is a network: Neo4j, Neptune and GraphRAG](https://fdetimes.net/en/guides/graph-databases-neo4j-neptune-graphrag.md): A graph database stores data as a network of entities (nodes) and relationships (edges), so queries follow relationships instead of joining tables. - [Inheriting a legacy Hadoop cluster at a bank or telco: read HDFS, YARN, MapReduce and HBase before you touch it](https://fdetimes.net/en/guides/legacy-hadoop-cluster-hdfs-yarn-hbase.md): Hadoop is a family of distributed systems: HDFS stores files as replicated blocks, YARN allocates compute resources, MapReduce handles batch processing, and HBase provides real-time random reads and writes on top of HDFS. - [Encryption, tokenization or masking: choosing the right tool for each customer data field](https://fdetimes.net/en/guides/encryption-tokenization-masking-customer-data.md): Protecting data in a pipeline means choosing the right treatment for each sensitive field: encryption (reversible with the key), security tokenization (replacing the real value with a substitute) or masking (producing a fake version so that people without access can learn nothing useful). - [Settle the grain before you draw a table: building a star schema beside a client's transactional database](https://fdetimes.net/en/guides/star-schema-grain-beside-oltp-database.md): A dimensional model organises data into fact tables, which hold the measurements of business activity, and dimension tables, which hold descriptive context. The tables are usually arranged as a star or snowflake to serve BI and analytical queries. - [Adding AI to a client's existing event queue without rewriting the system](https://fdetimes.net/en/guides/add-ai-consumer-to-existing-event-queue.md): Event-driven is an architectural style in which components react to messages describing something that has happened. Event sourcing stores the full sequence of events as the source of truth. CQRS separates the write model from the read model. - [L4 and L7 load balancers and reverse proxies: running your service behind a customer's network](https://fdetimes.net/en/guides/l4-l7-load-balancer-reverse-proxy.md): An L4 load balancer distributes requests by address and port at the transport layer; an L7 load balancer distributes them by HTTP content such as URL or cookie; a reverse proxy is a server that sits in front of an application, receives requests on its behalf and forwards them inside. - [Latency, throughput, scalability: answering the client's infrastructure team with measurements](https://fdetimes.net/en/guides/latency-throughput-scalability-with-numbers.md): Latency is the time a system takes to respond to a request, throughput is how many requests the system can handle at once, and scalability means performance increases as resources are added. - [Kafka and Flink for FDEs: wiring a customer's data stream into a real-time scoring model](https://fdetimes.net/en/guides/kafka-flink-real-time-model-scoring.md): Real-time model inference with Kafka and Flink is an architecture in which Kafka feeds events into Flink, and Flink processes them and calls a model (embedded in the job or served by a model server) to attach a prediction to each event before writing the results back to Kafka. - [Why was this loan rejected? Use SHAP to explain it and LIME to cross-check](https://fdetimes.net/en/guides/shap-lime-explain-loan-denials.md): SHAP and LIME are two techniques for explaining individual predictions. SHAP assigns each feature a contribution to a specific prediction. LIME fits a simple model that imitates the original model in the neighbourhood of the case being explained. - [FDE interview prep: enough DSA to pass, then focus on decomposition](https://fdetimes.net/en/guides/fde-interview-prep-dsa-decomposition.md): "Enough DSA to pass the screen" means just enough knowledge of data structures and algorithms to write a correct function that handles real-world data. Most of your prep time then goes to scoping and to reasoning through ambiguous problems. - [Cutting LLM latency and cost: four levers and the order to pull them](https://fdetimes.net/en/guides/reduce-llm-latency-and-cost.md): Optimising LLM latency and cost means shortening response times and lowering what you pay for each model call, without losing the output quality you have already reached. - [Telling project stories in FDE interviews: how to answer "What trade-offs did you make?"](https://fdetimes.net/en/guides/fde-interview-explaining-trade-offs.md): In an FDE interview, describing a trade-off means presenting your decision as one option among several and stating why you chose it, what it cost, and how you explained that cost to the customer. - [MLOps for FDEs: five things to build before a model runs in a client's system](https://fdetimes.net/en/guides/mlops-for-fdes-five-things-before-production.md): MLOps is the engineering work that keeps an ML model running reliably in production: versioning, keeping data consistent between training and serving, testing the pipeline, monitoring on real data and retraining under control. - [Chunking client documents: measure before you cut, then add context to every chunk](https://fdetimes.net/en/guides/chunking-client-documents-measure-then-contextualise.md): Chunking is the step that splits documents into small passages for embedding and indexing, so that when a user asks a question the system retrieves the passage that contains the answer. - [Design error responses with RFC 9457 so customer ops teams can fix incidents themselves](https://fdetimes.net/en/guides/rfc-9457-api-error-responses.md): Problem Details (RFC 9457, which replaces RFC 7807) is the standard JSON format for HTTP API error responses. It uses the application/problem+json media type and the fields type, title, detail and instance to describe an error for both people and machines. - [The demo works at your desk but fails on the customer's network: debugging DNS, proxies, CORS and cookies](https://fdetimes.net/en/guides/debug-integration-customer-network-dns-proxy-cors.md): Debugging an integration on a customer network means checking, in order, each layer a request must pass through: domain name resolution, the connection through proxies and firewalls, the HTTP status code, and the browser's rules for CORS and cookies. The aim is to find exactly where the request is blocked. - [Edge AI in factories and shops: choosing between TensorRT, LiteRT and ExecuTorch](https://fdetimes.net/en/guides/edge-ai-tensorrt-litert-executorch.md): Edge AI means running AI models directly on devices in the field, such as a camera on a production line or a machine at a shop counter, instead of sending data to a cloud data centre for processing. - [Data lineage: tracing a wrong prediction back, step by step](https://fdetimes.net/en/guides/data-lineage-debug-wrong-predictions.md): Data lineage means tracking how data flows over time: where it comes from, how it is transformed along the way and where it ends up. - [When a model is wrong but reports no errors: build your own data drift detection with Prometheus and Grafana](https://fdetimes.net/en/guides/detect-data-drift-prometheus-grafana.md): Data drift happens when the distribution of production data differs significantly from the data used to train the model. - [DVC in practice: make every new client data drop a traceable commit](https://fdetimes.net/en/guides/dvc-version-client-data-batches.md): DVC is a Git-style version control tool for data and models. Large files live in separate storage, while Git keeps only a small metadata file with a hash that records which version is in use. - [Build CI/CD for ML models with CML: post metric comparisons on every pull request](https://fdetimes.net/en/guides/cml-ci-cd-ml-metrics-pull-requests.md): CML (Continuous Machine Learning) is a tool that brings CI/CD to machine learning projects. On every pull request it trains and evaluates the model, then posts a report with metrics and charts as a comment. - [Classical ML or deep learning: choose by the shape of the client's data, not by fashion](https://fdetimes.net/en/guides/classical-ml-vs-deep-learning-client-data.md): Choosing a modelling approach means deciding between classical ML (such as tree-based models, which rely on human-designed features) and deep learning (neural networks that learn from raw data), based on the client's data type, data volume, need for explanation and infrastructure. - [How to pick a classification threshold by the cost of each error, not the 0.5 default](https://fdetimes.net/en/guides/choose-classification-threshold-by-error-cost.md): Cost-based model evaluation means giving each type of error (false positive and false negative) the cost the client actually pays, then choosing the metric and decision threshold that keep the total cost as low as possible. - [Hands-on: build a Slack approval gate before your agent issues refunds or sends emails](https://fdetimes.net/en/guides/slack-approval-gate-for-ai-agents.md): Human-in-the-loop approval makes an agent stop before an action with real consequences, send the full details to someone with authority, and then execute, edit or cancel the action only once that person has decided. - [When an agent must stop: four guardrails and the moment to hand over to a human](https://fdetimes.net/en/guides/agent-stop-conditions-human-handoff.md): Agent stop conditions are the rules that force the think–act loop to end: when the goal is reached, when a step, budget or time limit is hit, or when a human needs to approve the next move. - [LLM-as-judge in practice: calibrating a judge against the client's expert pass/fail labels](https://fdetimes.net/en/guides/calibrate-llm-judge-expert-labels.md): LLM-as-judge means using a language model to grade another AI system's outputs against a rubric. A judge is only trustworthy once its grades have been checked against, and calibrated to, labels assigned by experts. - [Read the model card before choosing Qwen, Llama, Gemma or Mistral for a Vietnamese project](https://fdetimes.net/en/guides/read-model-cards-open-llms-vietnamese.md): A model card is the README.md file of a Hugging Face model repo. It opens with a YAML metadata block (license, language, datasets, base_model), followed by Markdown that describes intended use, limitations, training data and evaluation results. - [Calling the Claude and OpenAI APIs directly: write your own tool-use loop, then compare with Gemini](https://fdetimes.net/en/guides/claude-openai-api-tool-use-loop.md): Calling an LLM API directly means sending requests to a provider's endpoint, through raw HTTP or the official SDK, and managing conversation history, streaming and the tool execution loop yourself rather than letting a framework do it. - [Guardrails for a client's LLM app: filter the input, lock down the output, add moderation](https://fdetimes.net/en/guides/llm-guardrails-input-output-moderation.md): Guardrails are control layers placed around a language model. They filter what goes in, limit what the model is allowed to do and constrain what it is allowed to return. - [Zero-shot, few-shot, CoT or ReAct: test all four on one ticket set to learn when a heavier technique is needed](https://fdetimes.net/en/guides/zero-shot-few-shot-cot-react-ticket-eval.md): Zero-shot, few-shot, chain-of-thought (CoT) and ReAct are four ways to write a prompt, from simplest to most complex: no examples, worked examples, asking the model to reason step by step, and letting the model interleave reasoning with tool calls. - [Hybrid search and reranking: building a RAG pipeline that finds the right contract number or product code](https://fdetimes.net/en/guides/hybrid-search-rerank-rag-exact-identifiers.md): Hybrid search runs keyword search (such as BM25) and semantic vector search in parallel, then merges the two result lists into one, usually with rank fusion, before reranking and passing the results to the model. - [Choosing an embedding model for Vietnamese data: build a 50-question test set before trusting the leaderboard](https://fdetimes.net/en/guides/vietnamese-embedding-model-evaluation-test-set.md): An embedding test set is a small collection of real questions, each paired with the correct source passage, drawn from the client's own data and used to score candidate models under identical conditions. - [Context engineering: choosing which customer data the model gets to see](https://fdetimes.net/en/guides/context-engineering-customer-data.md): Context engineering is the work of designing, and continuously curating, the set of tokens a model sees at each step (instructions, data, memory and tool results) so that it has exactly the information it needs for the next step. - [Git in a client's repo: identity, remotes, credentials and review rules](https://fdetimes.net/en/guides/git-setup-client-repo-fde.md): Git on a client site means how an FDE configures identity, remotes, credentials and the review process to work safely in a repository the client owns, often hosted on the client's internal GitLab. - [Reading a customer's Java, Go or Node.js codebase when you only know Python](https://fdetimes.net/en/guides/read-java-go-node-codebase-python-developer.md): Reading an unfamiliar codebase quickly means finding the manifest, entry point and API handlers of a project written in a language you don't know, then tracing one request to understand what the system actually does. - [LLM basics for FDEs: tokens, context windows, temperature and why models make things up](https://fdetimes.net/en/guides/llm-basics-tokens-context-temperature-hallucination.md): A context window is all the text a model can refer to while it generates a response. That includes the system prompt, messages, tool results, documents, tool definitions and the response itself. It is the model's working memory, not its training data. - [Debugging without access to a customer's production: finding faults with logs, data samples and reproductions](https://fdetimes.net/en/guides/debug-without-production-access.md): Debugging without production access means finding the cause of a fault when all you have are logs, a few data samples and the ability to recreate the bug outside the customer's environment. - [Leading engineering at a customer site when nobody reports to you](https://fdetimes.net/en/guides/lead-without-authority-at-customer-site.md): Leading without authority is the ability to get others to choose a technical direction through credibility, communication and authority lent by a sponsor, rather than through a job title. - [One deployment, four audiences: how FDEs work with a client's engineers, business teams and executives](https://fdetimes.net/en/guides/fde-stakeholder-management-four-audiences.md): Client stakeholder management means keeping relationships with the executives who make decisions while also keeping the engineering team, the business team and frontline users working towards the same measurable goal. - [Measuring ROI for customers: count work that meets the bar, subtract checking and rework](https://fdetimes.net/en/guides/measure-customer-roi-net-savings.md): The ROI of a deployment is the measurable business value left after subtracting all costs, including the work of checking and fixing errors, compared against a baseline measured before the system went live. - [After go-live, an agent's real eval set lives in customer traces](https://fdetimes.net/en/guides/production-traces-agent-evals-after-go-live.md): Evals from production traces means sampling what an agent actually does with real users, analysing the failures in those samples, and turning them into test cases and evaluators, so the eval set keeps pace with how customers really use the product. - [What FDE recruiters look for: code gets you in, customer communication sets the ranking](https://fdetimes.net/en/guides/what-fde-recruiters-look-for.md): The core FDE skill set combines technical ability (full stack programming, cloud, data engineering, applied AI) with the ability to work directly with customers. Recruiters use the first to screen candidates and the second to rank them. - [Why, what, how: split an FDE engagement into three questions before writing code](https://fdetimes.net/en/guides/fde-engagement-why-what-how.md): Separating why, what and how means breaking an FDE engagement into three distinct questions: why the customer needs to change (why), which measurable result proves success (what), and which technical system produces that result (how). Each question has its own owner and its own way of being verified. - [The customer says the dashboard is slow, but what they lack is conversion: a discovery lesson for FDEs](https://fdetimes.net/en/guides/fde-customer-discovery-symptom-vs-problem.md): In forward deployed engineering, customer discovery is a structured technical investigation, run as a conversation, that works backwards from the customer's description of a problem to the real workflow problem underneath. - [FDE or Solutions Architect: the dividing line is who commits to production](https://fdetimes.net/en/guides/fde-vs-solutions-architect-production-commits.md): A Forward Deployed Engineer is an engineer who owns production code running in a specific customer's environment. A Solutions Architect produces architecture documents and implementation plans but does not commit code. - [Why AI labs are hunting for Forward Deployed Engineers](https://fdetimes.net/en/guides/why-ai-labs-hire-forward-deployed-engineers.md): A Forward Deployed Engineer (FDE) is a software engineer who works directly with customers, both working out what their real problem is and personally deploying AI systems into their business operations. - [Fine-tuning or RAG: diagnose the problem before you pick the technique](https://fdetimes.net/en/guides/fine-tuning-vs-rag-diagnose-first.md): RAG puts new knowledge into the model's context when it answers. Fine-tuning retrains the model to change how it behaves. Which one to use depends on whether the model lacks knowledge or does the task the wrong way. - [Data lake, warehouse or lakehouse: read the client's data architecture before writing your first ML pipeline](https://fdetimes.net/en/guides/data-lake-warehouse-lakehouse-ml-pipeline.md): A client's data architecture is how it stores and transforms data. A data lake keeps data in its original form. A data warehouse keeps data that has been processed for a specific purpose. A lakehouse adds a metadata layer on top of the lake's files so they can be managed the way a warehouse is. ## Analysis (English) - [How many clients can one FDE carry? The answer depends on phase and tooling, not on a single number](https://fdetimes.net/en/analysis/how-many-clients-can-an-fde-handle.md): An FDE's load ceiling is the number of engagements one engineer can handle at the same time without quality slipping. It is not a fixed number. It depends on the phase of each account and on how much tooling gets reused. - [Does needing FDEs mean the product isn't finished? Follow the custom code](https://fdetimes.net/en/analysis/fde-product-unfinished-custom-code.md): A Forward Deployed Engineer (FDE) works directly with customers to get a product running in real operations, then brings what they learn, and any reusable code, back into the core product. - [When the word "resolved" decides an agent's revenue](https://fdetimes.net/en/analysis/outcome-based-pricing-ai-agents-fde.md): Outcome-based pricing is a billing model in which customers pay only when an agent produces a business event agreed in advance, such as a resolved support conversation or a saved cancellation, rather than paying per seat or per token. - [The FDE CV: drop the framework list, state deployment results with a baseline](https://fdetimes.net/en/analysis/fde-cv-measured-results-not-frameworks.md): A quantified bullet on an FDE CV is a line describing a customer deployment outcome with a measurable number, a starting baseline and a measurement period, in place of a list of tools. - [When AI writes code at scale, FDEs are paid to own the outcome](https://fdetimes.net/en/analysis/ai-writes-code-fde-owns-outcome.md): A Forward Deployed Engineer (FDE) works directly inside a customer's systems, writing and integrating software there, and is accountable for whether the deployment actually works. - [The first FDE team: when to hire, what to measure and when to add an FDE Lead](https://fdetimes.net/en/analysis/first-fde-team-hiring-metrics-lead.md): The first FDE team is a group of engineers who work directly with customers to get a product into production. It needs deliberate design: who to hire, who they report to, which metrics they are measured by, and when to add a layer of leads. - [From FDE to founder: which habits carry over and which must be relearned](https://fdetimes.net/en/analysis/fde-to-founder-habits-that-transfer.md): The FDE-to-founder path means using experience from working on site with customers, including customer discovery, shipping small versions and expanding step by step, as the foundation for building a product company of your own. - [Kubeflow or SageMaker, Vertex AI, Azure ML: ask who will run the pipeline before comparing features](https://fdetimes.net/en/analysis/kubeflow-sagemaker-vertex-azure-ml-who-operates.md): An ML pipeline is an automated sequence of steps that takes data through processing, training and evaluation to produce a model, coordinated and rerun by an orchestration system. - [Keep logs for 12 months, delete data without delay: an API architecture problem](https://fdetimes.net/en/analysis/api-compliance-audit-logs-data-deletion.md): API compliance means designing APIs, logs and storage to meet legal data requirements such as GDPR, CCPA/CPRA, HIPAA and PCI DSS from the architecture up, rather than patching them in after the system is live. - [LangSmith, Arize, Helicone or PostHog: let the client's constraints choose the tool](https://fdetimes.net/en/analysis/choose-llm-observability-tool-by-constraints.md): LLM observability is the collection of metrics, traces and logs from an LLM application to tell whether the system is behaving correctly in production. - [LangChain, LlamaIndex, Haystack or direct API calls: choose a framework for the client's problem, not for its popularity](https://fdetimes.net/en/analysis/choosing-agent-framework-langchain-llamaindex-haystack.md): Choosing an agent framework is deciding which layer of a system (model calls, data retrieval, flow orchestration, document processing) to hand to an abstraction someone else wrote, rather than writing it yourself and keeping control of it. - [An FDE costs about $400,000 a year, so the model only scales if each deployment makes the next one cheaper](https://fdetimes.net/en/analysis/fde-cost-scaling-reuse-economics.md): A forward deployed engineer (FDE) works inside a customer's environment to get a product running in real operations, then brings what they learn in the field back into the core product. - [Three job postings, one ladder: FDE pay from one year of experience to eight](https://fdetimes.net/en/analysis/fde-salary-ladder-job-postings.md): The FDE career ladder is the sequence of levels from entry-level engineer to senior to manager of an FDE team, readable directly from the experience requirements and pay ranges in public job postings. ## News (English) - [Fyxer says 90% of users are still active after three months. What an FDE should ask before believing it](https://fdetimes.net/en/news/fyxer-90-percent-retention-claim.md): Cohort retention is the share of users in a group that started at the same time who are still active after a set period. The share only means something once both the group and "active" have been defined. ## Bách khoa (Tiếng Việt) - [Giả lập người dùng: cách test agent hội thoại nhiều lượt trước khi giao cho khách](https://fdetimes.net/vi/bach-khoa/gia-lap-nguoi-dung-de-test-agent-hoi-thoai-nhieu-luot.md): Giả lập người dùng là dùng một mô hình ngôn ngữ đóng vai khách hàng, có mục tiêu ẩn, persona và giới hạn kiên nhẫn, rồi cho nó trò chuyện nhiều lượt với agent để chấm agent theo kết quả cuối cùng. - [Champion nội bộ: tìm, thử và nuôi người bảo vệ dự án khi bạn vắng mặt](https://fdetimes.net/vi/bach-khoa/nguoi-ung-ho-noi-bo-champion-tai-khach-hang.md): Champion nội bộ là người trong tổ chức khách hàng tin vào giải pháp, có ảnh hưởng thật, và chịu đặt uy tín nghề nghiệp của chính mình vào thành công của dự án. - [Chẩn đoán CrashLoopBackOff, OOMKilled và lỗi DNS trên cụm Kubernetes của khách bằng kubectl](https://fdetimes.net/vi/bach-khoa/thuc-hanh-kubectl-debug-pod-tren-cum-cua-khach.md): CrashLoopBackOff là trạng thái của một pod đã được lập lịch lên node nhưng container cứ chết đi, rồi được kubelet khởi động lại sau những khoảng chờ ngày càng dài. - [Viết webhook receiver đứng vững trước chữ ký giả, replay và sự kiện trùng](https://fdetimes.net/vi/bach-khoa/thuc-hanh-webhook-receiver-xac-thuc-chu-ky-hmac.md): Webhook receiver an toàn là endpoint nhận sự kiện từ hệ thống bên ngoài. Nó kiểm tra chữ ký HMAC trên body thô, từ chối timestamp quá cũ, ghi lại event ID để không xử lý một sự kiện hai lần, rồi trả 2xx thật nhanh. - [Đối chiếu số liệu: bạn chỉ nên nói “đã chạy đúng” khi số đã khớp với sổ sách của khách](https://fdetimes.net/vi/bach-khoa/doi-chieu-so-lieu-ai-voi-so-sach-cua-khach.md): Đối chiếu (reconciliation) là việc kiểm tra một cách có hệ thống xem dữ liệu do hệ thống của bạn tạo ra có khớp với dữ liệu nguồn hoặc sổ sách của khách hay không. Việc kiểm tra có thể làm ở mức tổng hợp hoặc so từng dòng, và mức sai lệch chấp nhận được phải định nghĩa rõ từ trước. - [DPA, điều khoản dữ liệu và quy trình mua sắm: FDE cần biết gì để dự án không kẹt ở khâu pháp lý](https://fdetimes.net/vi/bach-khoa/dpa-va-mua-sam-cua-khach-fde-can-hieu-gi.md): DPA (Data Processing Agreement) là hợp đồng bằng văn bản giữa bên kiểm soát dữ liệu (khách hàng) và bên xử lý dữ liệu (nhà cung cấp, kèm FDE của họ). Hợp đồng này quy định bên xử lý được làm gì với dữ liệu cá nhân, được dùng thêm những ai, và phải xóa hay trả lại dữ liệu ra sao khi dịch vụ kết thúc. - [Viết eval đầu tiên với Inspect AI: dataset, solver, scorer và cách đọc log](https://fdetimes.net/vi/bach-khoa/thuc-hanh-viet-eval-voi-inspect-ai.md): Trong Inspect, một eval là một Task gồm ba phần: dataset chứa các mẫu có input và target, solver điều khiển cách gọi model, và scorer chấm output so với target. - [Sub-agent, skill hay MCP server: đặt quy trình của khách vào đâu cho đúng](https://fdetimes.net/vi/bach-khoa/sub-agent-skill-hay-mcp-dong-goi-tri-thuc-quy-trinh-cua-khach.md): Đóng gói tri thức quy trình là việc tách hiểu biết nghiệp vụ của khách thành ba lớp: MCP server lo phần truy cập hệ thống, agent skill lo cách làm việc, còn sub-agent tạo ra một không gian làm việc riêng với quyền hạn riêng. - [Nói “không” với một thiết kế sai mà khách vẫn ngồi lại bàn tiếp](https://fdetimes.net/vi/bach-khoa/noi-khong-voi-yeu-cau-sai-huong-cua-khach-ma-giu-quan-he.md): Phản đối có thương lượng là cách FDE từ chối một yêu cầu thiết kế sai hướng: nói thẳng ràng buộc kỹ thuật, tìm ra nhu cầu thật phía sau yêu cầu và đưa cho khách vài phương án kèm cái giá của từng phương án. - [Chốt với khách thế nào là “thành công” trước khi viết code AI](https://fdetimes.net/vi/bach-khoa/tieu-chi-nghiem-thu-du-an-ai-khong-chac-chan.md): Tiêu chí nghiệm thu cho hệ thống AI là một bộ ngưỡng cụ thể, đo được, thực tế và gắn với mục đích sử dụng: nó ghi rõ hệ thống được sai bao nhiêu, sai loại nào, nặng tới mức nào, và được kiểm tra trên bộ dữ liệu nào. - [Từ nút thumbs-down đến bộ eval: biến lời phàn nàn của người dùng thành test case](https://fdetimes.net/vi/bach-khoa/bien-phan-hoi-nguoi-dung-thanh-du-lieu-eval.md): Biến phản hồi người dùng thành dữ liệu eval là quy trình dùng tín hiệu như thumbs-up/down gắn vào trace production để chọn trace cần đọc, ghi chú lỗi, gắn nhãn pass/fail rồi đưa những trace đó vào bộ kiểm thử. - [Khi tổ trưởng không tin AI: cách FDE gỡ kháng cự trong một dự án thí điểm](https://fdetimes.net/vi/bach-khoa/khach-hang-nghi-ngo-ai-xu-ly-nguoi-dung-khang-cu.md): Xử lý kháng cự trong dự án thí điểm AI là việc FDE tìm ra nỗi lo cụ thể đằng sau sự hoài nghi của người dùng tuyến đầu, rồi thiết kế lại sản phẩm, cách đo và quy trình phản hồi để họ có lý do tin và tiếp tục dùng. - [File Excel bẩn của khách: đếm ô mất trước khi pandas cộng tổng](https://fdetimes.net/vi/bach-khoa/thuc-hanh-lam-sach-file-excel-csv-ban-cua-khach-bang-pandas.md): Làm sạch dữ liệu khách là đưa file Excel, CSV do khách xuất ra về đúng kiểu dữ liệu, đánh dấu rõ ô thiếu và lập danh sách lỗi để khách sửa ở nguồn, thay vì để code tự đoán. - [Dựng repo portfolio FDE: agent đơn giản, bộ eval từ lỗi thật, README và video 3 phút](https://fdetimes.net/vi/bach-khoa/thuc-hanh-portfolio-fde-agent-readme-eval-video.md): Repo portfolio FDE là một dự án duy nhất mô phỏng bài toán doanh nghiệp, gồm agent chạy được, bộ eval đo độ tin cậy, README giải thích quyết định và video ngắn trình bày cho người không đọc code. - [ISO 20022 cho FDE: kiểm tra dữ liệu thanh toán trước khi đưa AI vào ngân hàng](https://fdetimes.net/vi/bach-khoa/iso-20022-thanh-toan-ngan-hang-fde-ai.md): ISO 20022 là chuẩn điện thanh toán dùng các trường định nghĩa sẵn cho tên, địa chỉ bưu chính và thông tin remittance, giúp máy đọc được dữ liệu thanh toán thay vì phải đoán từ văn bản tự do. - [Trích xuất hoá đơn và hợp đồng bằng LLM: schema, kiểm tra nghiệp vụ và trích dẫn nguồn](https://fdetimes.net/vi/bach-khoa/thuc-hanh-trich-xuat-du-lieu-hoa-don-hop-dong-bang-llm.md): Trích xuất có cấu trúc là việc buộc LLM trả dữ liệu theo một schema định sẵn, sau đó code kiểm tra lại giá trị và đối chiếu từng trường với đoạn văn bản gốc làm bằng chứng. - [10 phút với lãnh đạo khách hàng: biến kết quả pilot thành một quyết định được ký](https://fdetimes.net/vi/bach-khoa/trinh-bay-ket-qua-cho-lanh-dao-khach-10-phut.md): Báo cáo cho lãnh đạo là cách sắp xếp kết quả kỹ thuật thành một đề xuất. Đề xuất được đưa ra trước, bằng chứng theo sau, và cuộc họp kết thúc bằng một quyết định có người chịu trách nhiệm. - [Thực hành: biến dự án vừa giao thành playbook, runbook và repo mẫu cho khách tiếp theo](https://fdetimes.net/vi/bach-khoa/thuc-hanh-playbook-va-repo-mau-tai-su-dung.md): Đóng gói sau triển khai là việc chuyển những gì đã làm cho một khách thành tài liệu quyết định, quy trình vận hành và mã khởi đầu mà người khác dùng lại được cho khách sau. - [Multi-tenancy cho giải pháp AI: chặn rò dữ liệu giữa khách ở bốn lớp](https://fdetimes.net/vi/bach-khoa/da-khach-hang-cach-ly-du-lieu-tung-khach.md): Multi-tenancy là cách nhiều khách hàng (tenant) dùng chung một hệ thống. Tenant isolation là cam kết rằng tài nguyên của tenant này không bao giờ bị tenant khác truy cập. - [Chấm quỹ đạo gọi tool của agent trên Langfuse: từ bộ dữ liệu vàng đến cổng chặn trong CI](https://fdetimes.net/vi/bach-khoa/thuc-hanh-eval-quy-dao-agent-voi-langfuse.md): Đánh giá quỹ đạo (trajectory evaluation) là việc so chuỗi tool call mà agent thực sự thực hiện với chuỗi tool call mong đợi được lưu sẵn trong một bộ dữ liệu chuẩn. - [A2A và MCP: khi agent của bạn phải giao việc cho agent của hãng khác trong hệ thống khách](https://fdetimes.net/vi/bach-khoa/a2a-va-mcp-khi-agent-phai-noi-chuyen-voi-agent-khac.md): A2A là giao thức mở để agent của các hãng khác nhau phát hiện năng lực của nhau và giao việc cho nhau, còn MCP là chuẩn mở nối một agent với tool và hệ thống bên ngoài của chính nó. - [HL7 v2, FHIR và Epic: tích hợp AI vào dữ liệu bệnh viện qua hai đường ống](https://fdetimes.net/vi/bach-khoa/hl7-fhir-cho-fde-lam-viec-voi-du-lieu-y-te-cua-benh-vien.md): HL7 v2 là chuẩn message theo sự kiện, gồm các dòng gọi là segment, còn FHIR là chuẩn gồm các resource có cấu trúc và API (thường là REST) để ứng dụng đọc, ghi dữ liệu y tế. - [Dựng demo khi khách chưa cấp dữ liệu: sinh dữ liệu giả tiếng Việt bằng Python và Faker](https://fdetimes.net/vi/bach-khoa/thuc-hanh-du-lieu-gia-lap-faker-demo-khi-khach-chua-cap-du-lieu.md): Dữ liệu giả lập là dữ liệu được sinh bằng chương trình, có hình dạng và định dạng như dữ liệu thật nhưng không chứa thông tin của người hay doanh nghiệp có thật, dùng để dựng demo, test hoặc khởi tạo database. - [Hệ thống đã chạy nhưng không ai dùng: cách FDE đo và nâng adoption](https://fdetimes.net/vi/bach-khoa/adoption-nhan-vien-khach-khong-dung-cong-cu-ai-ban-giao.md): Adoption là tỷ lệ người dùng dự kiến của khách hàng thật sự làm hành động tạo ra giá trị trên giải pháp, đều đặn và thay cho cách làm cũ. Chỉ đăng nhập thì không tính. - [Khách hỏi “sập thì mất bao nhiêu dữ liệu?”: FDE trả lời bằng RPO, RTO và một lần khôi phục thật](https://fdetimes.net/vi/bach-khoa/rto-rpo-sao-luu-va-khoi-phuc-cho-giai-phap-ban-giao.md): RPO là lượng dữ liệu tối đa, đo bằng thời gian, mà doanh nghiệp chấp nhận mất khi có sự cố; RTO là thời gian tối đa được phép trôi qua từ lúc dịch vụ gián đoạn đến khi chạy lại. - [Thực hành: cho agent thao tác trên web nội bộ không có API bằng Playwright MCP](https://fdetimes.net/vi/bach-khoa/thuc-hanh-agent-trinh-duyet-playwright-mcp-cho-he-thong-khong-co-api.md): Playwright MCP là MCP server của Microsoft giúp LLM điều khiển trình duyệt qua Playwright, bằng cách đọc accessibility snapshot có cấu trúc của trang thay vì chụp màn hình. - [Sửa một dòng prompt cũng là deploy: canary 5-20-50-100% tại khách hàng](https://fdetimes.net/vi/bach-khoa/thuc-hanh-feature-flag-canary-cho-prompt-va-model.md): Canary cho prompt hoặc model là cách chỉ cho một phần người dùng nhận thay đổi trong một khoảng thời gian, đánh giá kết quả trên phần đó so với nhóm control giữ nguyên, rồi mới quyết định tăng tỷ lệ hay rollback. - [Khi người bảo trợ dự án nghỉ việc giữa chừng: FDE giữ deployment sống bằng cách nào](https://fdetimes.net/vi/bach-khoa/champion-roi-cong-ty-du-an-fde-mat-nguoi-bao-tro.md): Sponsor dự án là người lãnh đạo phía khách hàng nắm quyền về nguồn lực, thứ tự ưu tiên và nghiệm thu; sponsor tích cực là người thật sự dùng quyền đó cho dự án, không chỉ đứng tên. - [Ước tính GPU cho model 70B: tính từ tham số, KV cache đến lượng tử hoá](https://fdetimes.net/vi/bach-khoa/tham-so-trong-so-va-luong-tu-hoa-uoc-tinh-gpu.md): Ước tính GPU cho LLM là phép tính bộ nhớ cần cho trọng số model, KV cache của mọi request đang chạy và phần dự phòng cho runtime, rồi so với VRAM thực có của khách. - [Thực hành: chọn, cân bằng và sắp thứ tự ví dụ few-shot từ dữ liệu thật của khách](https://fdetimes.net/vi/bach-khoa/chon-va-sap-xep-vi-du-few-shot-tranh-thien-lech.md): Few-shot prompting là cách đưa vài ví dụ đầu vào kèm nhãn vào prompt để model bắt chước nhãn, phân phối đầu vào và định dạng đầu ra khi xử lý dữ liệu mới. - [Thực hành: bắt mô hình trích nguồn cho từng ý và dùng code chặn câu trả lời bịa](https://fdetimes.net/vi/bach-khoa/thuc-hanh-phat-hien-va-giam-hallucination.md): Kiểm tra grounding là bước xác minh rằng mỗi ý trong câu trả lời của mô hình đều có một đoạn văn bản thật trong tài liệu nguồn đứng sau, và ý nào thiếu chỗ dựa thì bị rút lại. - [Khi nào LLM nên nói “không chắc”: tự chấm điểm, đo độ tin cậy và đặt ngưỡng chuyển cho người](https://fdetimes.net/vi/bach-khoa/hieu-chinh-do-tu-tin-cua-llm-va-chuyen-cho-nguoi.md): Ngưỡng chuyển cho người là mức tin cậy tối thiểu, đo trên dữ liệu thật. Dưới mức đó, hệ thống LLM không tự trả lời mà chuyển câu hỏi cho nhân viên. - [Bốn cách bắt model tự phản biện trước quyết định lớn của khách](https://fdetimes.net/vi/bach-khoa/thuc-hanh-self-consistency-ensembling-tree-of-thoughts.md): Self-consistency, prompt ensembling, step-back và tree of thoughts là các kỹ thuật bắt model lập luận theo nhiều đường hoặc nhiều tầng rồi tổng hợp lại, thay vì tin ngay câu trả lời đầu tiên. - [Thực hành: chỉnh top-p, top-k, penalty, max tokens và stop sequence theo từng tác vụ của khách](https://fdetimes.net/vi/bach-khoa/thuc-hanh-tinh-chinh-tham-so-sinh-van-ban.md): Tham số sinh của LLM là các núm vặn như top-p, top-k, frequency/presence penalty, max tokens và stop sequence. Chúng quyết định model chọn token tiếp theo thế nào, được viết dài tới đâu và dừng ở chỗ nào. - [Khi đội nguồn của khách lặng lẽ đổi schema: thực hành viết hợp đồng dữ liệu để pipeline không gãy](https://fdetimes.net/vi/bach-khoa/thuc-hanh-data-contract-schema-evolution.md): Hợp đồng dữ liệu gồm ba phần: schema, quy tắc về những cách schema được phép thay đổi, và một người cụ thể chịu trách nhiệm cho nó. - [Thực hành: tách dev, staging, prod cho pipeline khi khách chỉ có dữ liệu thật](https://fdetimes.net/vi/bach-khoa/thuc-hanh-moi-truong-dev-staging-prod-cho-pipeline.md): Tách môi trường cho pipeline là dựng dev, staging và prod từ cùng một định nghĩa dạng code. Chỉ tham số khác nhau, và dữ liệu nhạy cảm phải được mask trước khi rời production. - [Thực hành: dựng pipeline fanout SNS–SQS–Lambda nhẹ trong tài khoản AWS của khách](https://fdetimes.net/vi/bach-khoa/thuc-hanh-pipeline-serverless-lambda-sqs-sns.md): Pipeline fanout SNS–SQS–Lambda là mô hình trong đó một topic SNS đẩy cùng một message tới nhiều hàng đợi SQS, rồi Lambda kéo message từ hàng đợi theo batch để xử lý bất đồng bộ. - [Thực hành: dựng đường ống thu thập và lưu dữ liệu cảm biến IoT cho nhà máy của khách](https://fdetimes.net/vi/bach-khoa/thuc-hanh-du-lieu-iot-cam-bien-nha-may.md): Đường ống dữ liệu cảm biến IoT là chuỗi bước đưa số đo từ thiết bị trong nhà máy qua một lớp event streaming như Kafka, rồi ghi vào kho lưu trữ chịu được tải lớn, để khách hàng theo dõi và phân tích hiệu suất máy. - [Thực hành: dựng bốn lớp cảnh báo cho dữ liệu khách đến trễ, thiếu dòng, đổi schema hoặc ngừng chạy](https://fdetimes.net/vi/bach-khoa/thuc-hanh-giam-sat-pipeline-du-lieu.md): Cảnh báo chất lượng dữ liệu đầu vào là các kiểm tra tự động về độ mới, số dòng và cấu trúc cột của dữ liệu khách gửi đến, kèm ngưỡng đủ rộng để chỉ báo động khi có vấn đề thật. - [A/B test tính năng AI tại khách: kiểm tra SRM trước khi báo con số](https://fdetimes.net/vi/bach-khoa/thuc-hanh-ab-test-tinh-nang-ai.md): A/B test tính năng AI là thí nghiệm có đối chứng: người dùng thật được chia ngẫu nhiên vào nhóm có tính năng AI và nhóm không có, rồi so sánh chỉ số giữa hai nhóm để đo tác động. - [Khi dữ liệu của khách là một mạng: Neo4j, Neptune và GraphRAG](https://fdetimes.net/vi/bach-khoa/graph-database-neo4j-neptune.md): Graph database là hệ cơ sở dữ liệu lưu dữ liệu dưới dạng một mạng gồm các thực thể (node) và quan hệ (edge), để truy vấn đi theo quan hệ thay vì ghép bảng. - [Gặp cụm Hadoop cũ ở ngân hàng, viễn thông: đọc HDFS, YARN, MapReduce và HBase trước khi chạm vào](https://fdetimes.net/vi/bach-khoa/hadoop-hdfs-yarn-he-thong-cu-o-ngan-hang-vien-thong.md): Hadoop là một bộ hệ thống phân tán gồm HDFS để lưu file thành các block nhân bản, YARN để chia tài nguyên tính toán, MapReduce để xử lý theo lô, và HBase để đọc/ghi ngẫu nhiên theo thời gian thực trên nền HDFS. - [Lưu dữ liệu khách trên S3: vì sao một thư mục Parquet chưa phải là một bảng](https://fdetimes.net/vi/bach-khoa/object-storage-va-table-format-delta-iceberg-hudi.md): Table format như Delta Lake, Apache Iceberg hay Apache Hudi là lớp đặt trên các file dữ liệu trong object storage, đưa tính năng của cơ sở dữ liệu vào data lake: giao dịch ACID và version cho mỗi lần ghi (Delta Lake), time travel trên snapshot (Iceberg), upsert và delete (Hudi). - [Thực hành: đưa kết quả mô hình AI lên Power BI, Looker hoặc Streamlit, bắt đầu từ một bảng bốn cột](https://fdetimes.net/vi/bach-khoa/thuc-hanh-dua-ket-qua-vao-power-bi-tableau-looker-streamlit.md): Đưa kết quả AI vào BI là thiết kế bảng đầu ra của mô hình, nối bảng đó với công cụ dashboard và ghi nhãn rõ đâu là số liệu đã xảy ra, đâu là dự đoán. - [Mã hoá, tokenization hay làm mờ: chọn đúng công cụ cho từng trường dữ liệu của khách](https://fdetimes.net/vi/bach-khoa/ma-hoa-tokenization-che-du-lieu-trong-pipeline.md): Bảo vệ dữ liệu trong pipeline là chọn cách xử lý phù hợp cho từng trường nhạy cảm: mã hoá (giải ngược được nếu có khoá), tokenization bảo mật (thay giá trị thật bằng một mã thay thế) hoặc làm mờ (tạo bản giả để người không có quyền không khai thác được gì). - [Reverse ETL cho FDE: đưa điểm số AI vào Salesforce, nơi đội sales thật sự làm việc](https://fdetimes.net/vi/bach-khoa/reverse-etl-dua-ket-qua-ai-ve-crm.md): Reverse ETL là quy trình chép dữ liệu đã xử lý từ kho dữ liệu trung tâm ngược về các hệ thống vận hành như CRM hay công cụ hỗ trợ khách hàng, nơi người dùng làm việc hằng ngày. - [Chốt grain trước khi vẽ bảng: dựng star schema bên cạnh database giao dịch của khách](https://fdetimes.net/vi/bach-khoa/mo-hinh-hoa-du-lieu-star-snowflake-schema.md): Mô hình dữ liệu phân tích (dimensional model) tổ chức dữ liệu thành bảng fact chứa số đo của hoạt động kinh doanh và bảng dimension chứa ngữ cảnh mô tả, thường xếp theo hình star hoặc snowflake, để phục vụ BI và truy vấn phân tích. - [Thực hành: dựng năm lớp kiểm thử để chặn dữ liệu bẩn của khách trước khi tới model](https://fdetimes.net/vi/bach-khoa/thuc-hanh-kiem-tra-chat-luong-du-lieu-pipeline.md): Kiểm thử pipeline dữ liệu là cách xếp nhiều lớp kiểm tra, từ unit test cho từng hàm biến đổi đến cổng chặn cho từng batch, để dữ liệu sai chuẩn bị phát hiện và cách ly trước khi tới model. - [Thực hành: pipeline nạp tăng dần chạy lại bao nhiêu lần cũng không trùng dữ liệu](https://fdetimes.net/vi/bach-khoa/thuc-hanh-pipeline-idempotent-incremental-backfill.md): Một bước nạp dữ liệu là idempotent khi chạy lại nó nhiều lần vẫn cho đúng một kết quả, nên retry và backfill không làm hỏng dữ liệu. - [Batch, streaming hay realtime: hỏi khách điều gì hỏng nếu dữ liệu đến muộn](https://fdetimes.net/vi/bach-khoa/batch-streaming-hay-realtime.md): Độ mới của dữ liệu (data freshness) là khoảng trễ tối đa mà một quyết định nghiệp vụ chịu được, tính từ lúc sự kiện xảy ra đến lúc dữ liệu được dùng. Mức trễ này quyết định nên chọn batch, micro-batch, queue hay streaming. - [Vòng đời dữ liệu năm chặng: FDE cần hiểu data engineering đến đâu](https://fdetimes.net/vi/bach-khoa/vong-doi-data-engineering-cho-fde.md): Data engineering là việc thiết kế và xây dựng các hệ thống để gom, lưu trữ và phân tích dữ liệu ở quy mô lớn, đi qua năm chặng: generation, storage, ingestion, transformation và serving. - [Thực hành: dựng pipeline xử lý hồ sơ qua hàng đợi, kết hợp pipes and filters với claim check](https://fdetimes.net/vi/bach-khoa/thuc-hanh-pipes-filters-claim-check-xu-ly-tai-lieu.md): Pipes and filters chia một tác vụ phức tạp thành các bước xử lý độc lập, mỗi bước chỉ làm một việc và được nối với nhau bằng hàng đợi. Claim check là cách chỉ gửi qua hàng đợi một tham chiếu tới payload lớn đang nằm ở kho lưu trữ bên ngoài. - [Ba replica, một cron job: làm sao để khách không nhận ba email](https://fdetimes.net/vi/bach-khoa/scheduler-agent-supervisor-leader-election.md): Scheduler-Agent-Supervisor là pattern điều phối một tác vụ phân tán nhiều bước qua ba vai trò logic: Scheduler ghi và đẩy từng bước, Agent thực thi, Supervisor định kỳ tìm bước quá hạn hoặc lỗi để yêu cầu khôi phục. Nhờ vậy, cả tác vụ thành công hoặc thất bại như một khối. - [Bàn giao để khách tự trực: health endpoint, metric và cảnh báo](https://fdetimes.net/vi/bach-khoa/thuc-hanh-health-endpoint-metric-canh-bao.md): Health endpoint monitoring là cách để dịch vụ tự báo trạng thái của mình qua các endpoint riêng (còn sống hay không, đã sẵn sàng phục vụ hay chưa). Hệ thống dựa vào đó để tự xử lý, còn con người dựa vào đó để nhận cảnh báo đúng lúc. - [Thực hành: tìm N+1, over-fetching và database quá tải trong code của khách hàng](https://fdetimes.net/vi/bach-khoa/thuc-hanh-chan-doan-antipattern-hieu-nang.md): Chatty I/O, extraneous fetching và busy database là ba antipattern về truy cập dữ liệu: gọi database quá nhiều lần với yêu cầu nhỏ, lấy về nhiều dữ liệu hơn mức cần, và bắt database chạy logic thay vì chỉ lưu và trả dữ liệu. - [Thực hành: circuit breaker, bulkhead và retry budget khi API LLM hoặc API của khách sập](https://fdetimes.net/vi/bach-khoa/thuc-hanh-circuit-breaker-bulkhead-retry-storm.md): Circuit breaker, bulkhead và retry budget là ba lớp bảo vệ phía client: tạm chặn gọi tới dependency đang hỏng, tách tài nguyên riêng cho từng dependency, và giới hạn tổng lượng retry để sự cố không biến thành retry storm. - [Thêm xác thực và log khi không được sửa code của khách](https://fdetimes.net/vi/bach-khoa/api-gateway-sidecar-ambassador.md): Gateway, sidecar và ambassador là ba cách đặt một proxy ngoài tiến trình (lần lượt ở trước dịch vụ, cạnh dịch vụ và cạnh client) để gánh các việc dùng chung như xác thực, TLS, log và định tuyến thay cho ứng dụng. - [Anti-corruption layer và strangler fig: cách gắn AI vào hệ thống cũ của khách hàng mà không làm hỏng nó](https://fdetimes.net/vi/bach-khoa/anti-corruption-layer-strangler-fig-he-thong-cu.md): Anti-corruption layer là lớp adapter đặt giữa hệ thống cũ và hệ thống mới để dịch dữ liệu qua lại giữa hai bên, còn strangler fig là cách thay dần từng phần chức năng của hệ thống cũ qua một façade định tuyến cho đến khi có thể tắt hẳn hệ thống cũ. - [Đưa báo cáo AI ra khỏi bảng giao dịch: EXPLAIN, materialized view và index đúng chỗ trên PostgreSQL](https://fdetimes.net/vi/bach-khoa/thuc-hanh-sql-tuning-materialized-view-index-table.md): Tối ưu truy vấn là quá trình lặp lại: chọn đúng câu lệnh gây tải, đọc kế hoạch thực thi, rồi thêm cấu trúc truy cập như index hoặc materialized view để đạt một mục tiêu đo được. - [Thực hành saga: khi agent hỏng giữa chừng trên nhiều hệ thống](https://fdetimes.net/vi/bach-khoa/thuc-hanh-saga-giao-dich-bu-agent-nhieu-he-thong.md): Saga là cách chia một thao tác lớn thành chuỗi giao dịch cục bộ trên từng hệ thống. Khi một bước hỏng, saga chạy các giao dịch bù để đảo ngược hiệu ứng của những bước đã commit trước đó. - [Gắn AI vào hàng đợi sự kiện sẵn có của khách mà không phải viết lại hệ thống](https://fdetimes.net/vi/bach-khoa/event-driven-event-sourcing-cqrs.md): Event-driven là kiểu kiến trúc trong đó các thành phần phản ứng với thông điệp mô tả việc đã xảy ra. Event sourcing lưu toàn bộ chuỗi sự kiện làm nguồn dữ liệu gốc. CQRS tách mô hình ghi khỏi mô hình đọc. - [Khi hệ thống của khách đổ dồn dữ liệu: dùng queue, competing consumers và back-pressure để không sập](https://fdetimes.net/vi/bach-khoa/pub-sub-competing-consumers-back-pressure.md): Back-pressure là cơ chế để phía xử lý giới hạn lượng việc nhận vào theo năng lực thật của mình, thay vì để phía gửi áp đặt tốc độ. - [Load balancer L4, L7 và reverse proxy: đưa dịch vụ của bạn vào sau hạ tầng mạng của khách](https://fdetimes.net/vi/bach-khoa/load-balancer-reverse-proxy-mang-khach.md): Load balancer L4 chia request theo địa chỉ và cổng ở tầng transport, L7 chia theo nội dung HTTP như URL hay cookie, còn reverse proxy là máy chủ đứng trước ứng dụng, nhận request thay cho ứng dụng rồi chuyển tiếp vào trong. - [Thực hành: cho người dùng tải file lớn qua presigned URL và phục vụ nội dung tĩnh bằng CDN](https://fdetimes.net/vi/bach-khoa/thuc-hanh-presigned-url-valet-key-cdn.md): Valet key là token có thời hạn, chỉ dùng được cho một tài nguyên và vài thao tác định sẵn, cho phép client đọc hoặc ghi thẳng vào kho lưu trữ mà không đi qua ứng dụng. - [Sharding, federation, denormalization: cách đọc database của khách trước khi viết câu truy vấn đầu tiên](https://fdetimes.net/vi/bach-khoa/mo-rong-database-sharding-federation-denormalization.md): Sharding chia các dòng của cùng một schema ra nhiều node, federation tách database theo chức năng nghiệp vụ, còn denormalization chép dữ liệu sang nhiều chỗ để đọc nhanh hơn. Cả ba đều để lại dấu vết mà FDE phải đọc ra trước khi truy vấn. - [Thực hành Redis: ba cách che độ chậm của hệ thống khách hàng](https://fdetimes.net/vi/bach-khoa/thuc-hanh-chien-luoc-cache-redis-he-thong-khach-cham.md): Cache-aside là chiến lược trong đó ứng dụng đọc cache trước, nếu không có thì đọc nguồn dữ liệu gốc rồi ghi kết quả vào cache trước khi trả về. - [Độ trễ, thông lượng, khả năng mở rộng: trả lời đội hạ tầng của khách bằng số đo](https://fdetimes.net/vi/bach-khoa/latency-throughput-performance-scalability.md): Độ trễ (latency) là thời gian hệ thống phản hồi một request, thông lượng (throughput) là lượng request hệ thống gánh được cùng lúc, còn khả năng mở rộng (scalability) là khi thêm tài nguyên thì hiệu năng tăng theo. - [Định lý CAP cho FDE: vì sao trợ lý AI vẫn nói đơn hàng chưa hủy](https://fdetimes.net/vi/bach-khoa/cap-theorem-consistency-cho-fde.md): Định lý CAP nói rằng khi mạng giữa các node bị chia cắt, một hệ phân tán phải chọn giữa nhất quán (mọi lần đọc thấy lần ghi mới nhất) và khả dụng (mọi yêu cầu đều nhận được phản hồi không phải lỗi). - [Trước khi ký SLA 99,9%: tính ngân sách downtime, chuỗi phụ thuộc và cái giá của failover](https://fdetimes.net/vi/bach-khoa/sla-99-9-availability-failover-replication.md): SLA 99,9% là cam kết dịch vụ khả dụng ít nhất 99,9% thời gian (hoặc số request) trong một chu kỳ đo. Tính theo tháng, mức này cho phép khoảng 43 phút 50 giây downtime. - [Load test API trước ngày go-live: đặt ngưỡng p95, đo throughput và kiểm tra caching bằng k6](https://fdetimes.net/vi/bach-khoa/thuc-hanh-load-test-api-truoc-go-live.md): Load test API là việc tạo ra lưu lượng request có kiểm soát vào hệ thống để đo latency theo percentile, throughput và tỷ lệ lỗi, rồi so với ngưỡng pass/fail đã thống nhất từ trước. - [Mock API của khách và viết contract test trong một buổi chiều](https://fdetimes.net/vi/bach-khoa/thuc-hanh-mock-api-va-contract-test.md): Contract testing là kỹ thuật kiểm thử một điểm tích hợp bằng cách kiểm tra từng ứng dụng riêng rẽ dựa trên một bản mô tả chung về request và response mà hai bên đã thỏa thuận. - [Gặp SOAP, gRPC hay GraphQL ở khách: gọi được lệnh đầu tiên trong một ngày](https://fdetimes.net/vi/bach-khoa/soap-grpc-graphql-goi-duoc-trong-mot-ngay.md): Tích hợp theo hợp đồng là cách gọi một API lạ: lấy bản mô tả chính thức của nó (WSDL cho SOAP, file .proto cho gRPC, schema cho GraphQL) rồi thực hiện lời gọi đơn giản nhất mà bản mô tả đó cho phép. - [Kafka và Flink cho FDE: ghép dòng dữ liệu của khách vào model chấm điểm thời gian thực](https://fdetimes.net/vi/bach-khoa/kafka-flink-du-lieu-streaming-cho-du-doan-thoi-gian-thuc.md): Real-time model inference với Kafka và Flink là kiến trúc trong đó Kafka đưa sự kiện vào Flink, Flink tính toán rồi gọi model (nhúng trong job hoặc qua model server) để gắn dự đoán cho từng sự kiện và ghi kết quả ra lại Kafka. - [Vì sao hồ sơ vay bị từ chối? Dùng SHAP để giải thích, LIME để kiểm tra chéo](https://fdetimes.net/vi/bach-khoa/giai-thich-du-doan-model-bang-shap-va-lime.md): SHAP và LIME là hai kỹ thuật giải thích từng dự đoán riêng lẻ: SHAP gán cho mỗi feature một mức đóng góp vào dự đoán đó, còn LIME dựng một model đơn giản mô phỏng model gốc ngay quanh hồ sơ cần giải thích. - [Ôn thi FDE: DSA chỉ cần đủ, điểm nặng nằm ở vòng decomposition](https://fdetimes.net/vi/bach-khoa/cau-truc-du-lieu-va-giai-thuat-fde-can-den-dau.md): "DSA đủ qua vòng lọc" là mức kiến thức cấu trúc dữ liệu và thuật toán vừa đủ để viết đúng một hàm xử lý dữ liệu thực tế, để dành phần lớn thời gian chuẩn bị cho scoping và lập luận khi đề mơ hồ. - [Cách FDE chuẩn bị hồ sơ model risk để qua hội đồng AI theo EU AI Act](https://fdetimes.net/vi/bach-khoa/ai-governance-cho-khach-doanh-nghiep.md): Hồ sơ model risk là bộ tài liệu cho thấy rủi ro của một hệ thống AI đã được nhận diện, xử lý, đo bằng chỉ số phù hợp và theo dõi liên tục, kèm phần rủi ro còn lại đã được chấp nhận. - [Giảm độ trễ và chi phí LLM: bốn đòn bẩy và thứ tự nên dùng](https://fdetimes.net/vi/bach-khoa/giam-do-tre-va-chi-phi-ung-dung-llm.md): Tối ưu độ trễ và chi phí LLM là việc rút ngắn thời gian phản hồi và giảm tiền trả cho mỗi lời gọi model mà vẫn giữ mức chất lượng đầu ra đã đạt được. - [Kể dự án khi phỏng vấn FDE: cách trả lời câu hỏi “bạn đã đánh đổi gì?”](https://fdetimes.net/vi/bach-khoa/ke-lai-du-an-trong-phong-van-fde.md): Kể một đánh đổi trong phỏng vấn FDE là trình bày quyết định của mình như một trong nhiều phương án, nói rõ lý do chọn, cái giá phải trả và cách giải thích cái giá đó cho khách hàng. - [Demo prototype AI cho khách hàng: cho thấy cái đã chạy mà không hứa quá tay](https://fdetimes.net/vi/bach-khoa/demo-cho-khach-hang-khong-hua-qua-tay.md): Demo prototype trung thực là buổi trình diễn chạy trên dữ liệu thật của khách. Nó cho thấy rõ cái gì đã làm được, cái gì chưa, và con số nào có eval kiểm chứng. - [Viết MCP server Python cho một CRM giả lập: từ một file đến Claude Code](https://fdetimes.net/vi/bach-khoa/thuc-hanh-viet-mcp-server-python-cho-crm-gia-lap.md): MCP server là một chương trình cung cấp tool, resource và prompt theo Model Context Protocol, để một ứng dụng LLM như Claude Code gọi tool và đọc dữ liệu từ hệ thống bên ngoài. - [MLOps cho FDE: năm việc phải dựng xong trước khi model chạy trong hệ thống của khách](https://fdetimes.net/vi/bach-khoa/mlops-cho-fde-nguyen-tac-va-thanh-phan.md): MLOps là phần việc kỹ thuật giúp một model ML chạy ổn định trong production: quản lý phiên bản, thống nhất dữ liệu giữa lúc train và lúc chạy thật, kiểm thử pipeline, giám sát trên dữ liệu thật và train lại có kiểm soát. - [Dựng sandbox cho agent: rào file và rào mạng phải đi cùng nhau](https://fdetimes.net/vi/bach-khoa/sandbox-code-execution-va-quyen-file-system-cho-agent.md): Sandbox cho agent là lớp giới hạn đặt ở mức hệ điều hành, quyết định tiến trình của agent được đọc, ghi những file nào và được kết nối mạng tới đâu. Lớp này tách biệt với chính sách quy định khi nào agent phải hỏi người. - [Trước khi giao agent hoàn tiền: unit test từng tool, rồi integration test cả luồng](https://fdetimes.net/vi/bach-khoa/unit-test-tool-va-integration-test-luong-agent.md): Kiểm thử agent hai tầng là cách kiểm tra từng tool bằng assertion nhanh, sau đó chạy cả luồng nghiệp vụ nhiều lần và chấm theo trạng thái cuối cùng trong hệ thống. - [Trước ngày go-live, hãy tự tay tấn công trợ lý AI của khách](https://fdetimes.net/vi/bach-khoa/red-team-ung-dung-ai-truoc-khi-ra-mat.md): Red teaming trợ lý AI là việc chủ động đóng vai kẻ tấn công, đưa vào hệ thống những đầu vào đối nghịch có chủ đích để tìm cách nó bị điều khiển sai trước khi người dùng thật tìm ra. - [Viết MCP client gọi server từ xa của khách: từ mã 401 đến lệnh gọi tool đầu tiên](https://fdetimes.net/vi/bach-khoa/thuc-hanh-viet-mcp-client-ket-noi-server-tu-xa.md): MCP client qua Streamable HTTP là chương trình gửi từng thông điệp JSON-RPC bằng POST tới một endpoint duy nhất của server, kèm token OAuth, mã phiên và phiên bản giao thức trong header. - [Chunking tài liệu khách hàng: đo trước khi cắt, rồi gắn ngữ cảnh cho từng chunk](https://fdetimes.net/vi/bach-khoa/chunking-va-indexing-tai-lieu-khach-hang.md): Chunking là bước chia tài liệu thành các đoạn nhỏ để embed và đánh index, sao cho khi người dùng hỏi, hệ thống tìm lại đúng đoạn chứa câu trả lời. - [Với FDE, chữ ký trên hợp đồng thường là lúc trách nhiệm bắt đầu](https://fdetimes.net/vi/bach-khoa/vai-tro-fde-trong-vong-doi-hop-dong.md): Trách nhiệm của FDE theo vòng đời hợp đồng là những gì FDE phải giao ra ở mỗi chặng: presales (nếu công ty có giao), chốt phạm vi, đưa hệ thống vào production, rồi bàn giao cho Customer Success trước kỳ gia hạn. - [Spark cho FDE: đo dữ liệu của khách trước khi chọn cỡ cluster](https://fdetimes.net/vi/bach-khoa/spark-khi-du-lieu-khach-qua-lon.md): Đo dữ liệu trước khi dựng cluster là bước đo dung lượng, cách xếp file, kích thước bảng phụ, phân phối key và bộ nhớ thực của dữ liệu khách, sau đó so từng con số với các ngưỡng mặc định của Spark để chọn cấu hình. - [Sáu bước dựng demo React cho khách, bắt đầu từ máy chưa có Node](https://fdetimes.net/vi/bach-khoa/thuc-hanh-dung-giao-dien-noi-bo-bang-react.md): Giao diện thử nghiệm (demo UI) là một ứng dụng web nhỏ, dựng nhanh bằng React và TypeScript, để khách bấm thử một luồng thật trên dữ liệu thật trước khi cam kết làm sản phẩm. - [Kế hoạch 30-60-90 ngày cho FDE: khi mục tiêu là sáu tuần, bạn chỉ còn khoảng bốn tuần với khách](https://fdetimes.net/vi/bach-khoa/sap-thu-tu-trien-khai-30-60-90-ngay.md): Kế hoạch 30-60-90 ngày của FDE là cách xếp việc theo ba mốc tính từ ngày nhận tài khoản, để khách sớm có kết quả vận hành thật và FDE dần làm chủ tài khoản. - [Che dữ liệu cá nhân trước khi gửi lên LLM: đổi tên thành nhãn vẫn có thể chưa đủ theo luật mới](https://fdetimes.net/vi/bach-khoa/thuc-hanh-che-du-lieu-ca-nhan-truoc-khi-gui-llm.md): Khử nhận dạng là quá trình sửa hoặc xóa thông tin để tạo ra một bộ dữ liệu mới, từ đó không ai còn xác định được một con người cụ thể. Luật Bảo vệ dữ liệu cá nhân 2025 không coi dữ liệu đã qua bước này là dữ liệu cá nhân nữa. - [RAG trên tài liệu thật của khách: xử lý PDF, bảng biểu và bản scan tiếng Việt](https://fdetimes.net/vi/bach-khoa/thuc-hanh-xu-ly-pdf-va-tai-lieu-scan-cho-rag.md): RAG trên tài liệu thật là cả pipeline: parse, OCR, chunk, index rồi truy xuất trên các file lộn xộn của khách, như PDF nhiều bảng hay bản scan tiếng Việt, chứ không chỉ trên văn bản sạch. - [Viết lớp gọi API cho agent TypeScript: timeout, retry và idempotency key](https://fdetimes.net/vi/bach-khoa/thuc-hanh-agent-typescript-retry-timeout.md): Lớp gọi API an toàn cho agent là một hàm bọc fetch. Hàm này đặt timeout cho mỗi lần gọi, chỉ retry những lỗi đáng retry với backoff có jitter và ngân sách giới hạn, và gắn một idempotency key cố định cho mỗi thao tác nghiệp vụ có side effect, nhờ vậy gọi lại không bao giờ làm một việc hai lần. - [Thực hành: đưa tác vụ AI chạy lâu vào hàng đợi RabbitMQ và trả HTTP 202 ngay](https://fdetimes.net/vi/bach-khoa/thuc-hanh-hang-doi-cho-tac-vu-ai-chay-lau.md): Hàng đợi thông điệp là cách các dịch vụ giao tiếp bất đồng bộ: API đóng gói tác vụ thành message rồi gửi vào queue, worker lấy ra xử lý sau, còn client theo dõi kết quả qua một endpoint trạng thái hoặc webhook. - [Stream LLM tới giao diện: SSE trước, WebSocket khi thật cần](https://fdetimes.net/vi/bach-khoa/thuc-hanh-streaming-llm-sse-websocket.md): Streaming câu trả lời LLM là đẩy từng phần output của model tới giao diện ngay khi nó được sinh ra, qua một kênh như server-sent events (SSE), WebSocket hoặc polling, thay vì bắt người dùng chờ đến khi có trọn câu trả lời. - [Rà soát API theo OWASP API Top 10 trước khi đội bảo mật của khách vào cuộc](https://fdetimes.net/vi/bach-khoa/owasp-api-top-10-ra-soat-truoc-ban-giao.md): OWASP API Security Top 10 2023 là danh sách mười nhóm rủi ro bảo mật API, từ API1 Broken Object Level Authorization đến API10 Unsafe Consumption of APIs, thường được dùng làm checklist khi rà soát. - [Đừng để job đồng bộ của bạn khiến khách khóa API key](https://fdetimes.net/vi/bach-khoa/thuc-hanh-rate-limit-va-api-gateway.md): Rate limiting là cơ chế kiểm soát số thao tác được thực hiện trong một khoảng thời gian, để hệ thống không bị quá tải dẫn đến suy giảm hiệu năng. - [RBAC, ABAC, ReBAC hay PBAC: đưa mô hình phân quyền của khách vào ứng dụng AI](https://fdetimes.net/vi/bach-khoa/rbac-abac-rebac-mo-hinh-phan-quyen-cua-khach.md): Mô hình phân quyền là cách hệ thống quyết định ai được làm gì với tài nguyên nào: dựa trên vai trò (RBAC), thuộc tính (ABAC), quan hệ giữa các thực thể (ReBAC) hay luật khai báo tập trung trong một policy engine (PBAC). - [API key, Basic Auth, session, JWT hay OIDC: cách đọc đúng cơ chế xác thực ở hệ thống khách hàng](https://fdetimes.net/vi/bach-khoa/api-key-jwt-session-oidc-xac-thuc-he-thong-khach.md): Cơ chế xác thực là cách một hệ thống xác định ai đang gửi request. Muốn hiểu nó, cần trả lời được ba câu: credential nằm ở đâu, server có phải lưu trạng thái hay không, và bên nào đứng ra bảo đảm danh tính người dùng. - [Kéo một triệu bản ghi qua API phân trang của khách hàng mà không mất dòng nào](https://fdetimes.net/vi/bach-khoa/thuc-hanh-keo-du-lieu-lon-qua-api-phan-trang.md): Phân trang API là cách server chia một tập dữ liệu lớn thành nhiều lần trả về nhỏ. Client đi từ trang này sang trang sau bằng offset (vị trí), cursor (con trỏ do server cấp) hoặc keyset (giá trị lọc lấy từ trang trước). - [Thiết kế phản hồi lỗi theo RFC 9457 để đội vận hành của khách tự xử lý sự cố](https://fdetimes.net/vi/bach-khoa/loi-api-rfc-7807-va-hop-dong-loi.md): Problem Details (RFC 9457, bản thay thế RFC 7807) là định dạng JSON chuẩn cho phản hồi lỗi của HTTP API. Định dạng này dùng media type application/problem+json và các trường type, title, detail, instance để mô tả lỗi cho cả người lẫn máy. - [Demo chạy tốt ở nhà nhưng hỏng trong mạng khách: cách dò lỗi từ DNS, qua proxy, đến CORS và cookie](https://fdetimes.net/vi/bach-khoa/http-dns-tcp-khi-tich-hop-trong-mang-khach.md): Debug tích hợp trong mạng khách là đi lần lượt qua từng tầng mà một request phải vượt qua: phân giải tên miền, đường kết nối qua proxy và firewall, mã trạng thái HTTP và luật của trình duyệt về CORS và cookie, để xác định đúng chỗ request bị chặn. - [Edge AI ở nhà máy và cửa hàng: chọn TensorRT, LiteRT hay ExecuTorch](https://fdetimes.net/vi/bach-khoa/edge-ai-jetson-tflite-pytorch-mobile.md): Edge AI là cách chạy model AI ngay trên thiết bị đặt tại hiện trường, như camera ở dây chuyền hay máy ở quầy bán hàng, thay vì gửi dữ liệu về trung tâm dữ liệu đám mây để xử lý. - [Data lineage: lần ngược từng chặng khi khách báo dự đoán sai](https://fdetimes.net/vi/bach-khoa/data-lineage-truy-nguon-khi-so-lieu-sai.md): Data lineage là việc theo dõi dòng chảy của dữ liệu theo thời gian: dữ liệu bắt nguồn từ đâu, đã bị biến đổi thế nào và cuối cùng nằm ở đâu. - [Model sai mà không báo lỗi: tự dựng hệ thống bắt data drift bằng Prometheus và Grafana](https://fdetimes.net/vi/bach-khoa/giam-sat-model-va-data-drift-voi-prometheus-grafana.md): Data drift xảy ra khi phân bố dữ liệu production khác đáng kể so với dữ liệu dùng để huấn luyện model. - [Từ notebook đến API trong hạ tầng khách: huấn luyện model scikit-learn, lưu an toàn và đóng container](https://fdetimes.net/vi/bach-khoa/thuc-hanh-dong-goi-model-sklearn-pytorch-thanh-api.md): Huấn luyện model là quá trình "dạy" một model machine learning tối ưu hiệu năng trên tập dữ liệu huấn luyện. Đưa model thành API dự đoán nghĩa là đóng gói model đã huấn luyện vào một service nhận request và trả về kết quả, chạy được trên hạ tầng của người khác. - [Thực hành DVC: mỗi lần khách gửi dữ liệu mới là một commit truy ngược được](https://fdetimes.net/vi/bach-khoa/dvc-version-du-lieu-va-model-cua-khach.md): DVC là công cụ quản lý version cho dữ liệu và model theo kiểu Git: file lớn nằm ở kho lưu trữ riêng, còn Git chỉ giữ một file metadata nhỏ chứa hash để biết đang dùng phiên bản nào. - [Dựng CI/CD cho model ML với CML: đăng so sánh metric vào mỗi pull request](https://fdetimes.net/vi/bach-khoa/ci-cd-cho-model-ml-voi-cml.md): CML (Continuous Machine Learning) là công cụ đưa CI/CD vào dự án machine learning: mỗi pull request tự động huấn luyện, đánh giá model và đăng báo cáo metric, biểu đồ thành comment. - [ML cổ điển hay deep learning: chọn theo dạng dữ liệu của khách, đừng chọn theo mốt](https://fdetimes.net/vi/bach-khoa/ml-co-dien-hay-deep-learning-cho-du-lieu-khach.md): Chọn cách tiếp cận mô hình là quyết định dùng ML cổ điển (như mô hình dựa trên cây, cần đặc trưng do người thiết kế) hay deep learning (mạng nơ-ron học từ dữ liệu thô), dựa trên dạng dữ liệu, lượng dữ liệu, nhu cầu giải thích và hạ tầng của khách. - [Thực hành: chọn ngưỡng cho model theo giá của từng lỗi, bỏ thói quen dùng 0.5](https://fdetimes.net/vi/bach-khoa/chon-metric-danh-gia-model-theo-chi-phi-nghiep-vu.md): Đánh giá model theo chi phí sai lầm là gán cho mỗi loại lỗi (false positive, false negative) cái giá mà khách thực sự phải trả, rồi chọn metric và ngưỡng quyết định để tổng chi phí đó thấp nhất. - [Ước tính chi phí token trước khi ký hợp đồng: đếm tiếng Việt bằng đúng tokenizer](https://fdetimes.net/vi/bach-khoa/uoc-tinh-chi-phi-token-truoc-khi-ky-hop-dong.md): Ước tính chi phí token là việc đếm số token đầu vào và đầu ra trên dữ liệu mẫu của khách bằng đúng tokenizer của model sẽ dùng, nhân với lưu lượng dự kiến rồi áp đúng tầng giá đang có hiệu lực vào ngày báo giá. - [Thực hành nén context: giữ agent chạy phiên dài mà không quên việc đang làm](https://fdetimes.net/vi/bach-khoa/nen-lich-su-hoi-thoai-cho-agent-chay-dai.md): Compaction là kỹ thuật tóm tắt một cuộc hội thoại sắp chạm giới hạn context window, rồi cho agent chạy tiếp từ bản tóm tắt đó để nó làm được những việc kéo dài. - [Thực hành agentic RAG: cho agent tự viết lại truy vấn và từ chối trả lời khi thiếu bằng chứng](https://fdetimes.net/vi/bach-khoa/agentic-rag-truy-van-lai-va-kiem-bang-chung.md): Agentic RAG là cách tổ chức RAG trong đó việc truy xuất trở thành một quyết định của agent: agent chọn có tìm hay không, chấm xem tài liệu tìm được có liên quan không, rồi chọn trả lời hay viết lại truy vấn và tìm lại. - [Theo dõi agent trong production bằng bốn con số: tỷ lệ hoàn thành, lỗi tool, số bước và tỷ lệ chuyển cho người](https://fdetimes.net/vi/bach-khoa/chi-so-van-hanh-cho-agent-production.md): Theo dõi agent trong production là ghi lại mỗi lần agent chạy dưới dạng log có cấu trúc, rồi đo trên ba tầng vận hành, hành vi và kết quả để biết agent có làm xong việc thật hay không. - [Dựng agent xử lý hồ sơ nhiều bước bằng planner-executor, DAG và vòng tự phản biện](https://fdetimes.net/vi/bach-khoa/planner-executor-va-self-critique.md): Planner-executor là kiến trúc agent trong đó một LLM lập sẵn kế hoạch nhiều bước, còn executor thực hiện từng bước bằng tool, sau đó agent quyết định kết thúc hay lập lại kế hoạch. - [Dựng agent text-to-SQL trên kho dữ liệu của khách: viết định nghĩa trước, viết prompt sau](https://fdetimes.net/vi/bach-khoa/agent-text-to-sql-tren-kho-du-lieu-cua-khach.md): Agent text-to-SQL là hệ thống nhận câu hỏi bằng ngôn ngữ tự nhiên, dịch nó thành câu SQL, chạy trên database rồi trả kết quả, để người không biết SQL vẫn tự phân tích được dữ liệu. - [Thực hành: dựng cổng duyệt qua Slack trước khi agent hoàn tiền hay gửi email](https://fdetimes.net/vi/bach-khoa/human-in-the-loop-qua-slack-email.md): Human-in-the-loop approval là cơ chế bắt agent dừng trước một hành động có hậu quả, gửi đầy đủ chi tiết cho người có thẩm quyền, rồi chỉ thực thi, sửa hoặc huỷ khi người đó đã quyết định. - [Agent đọc web cho khách hàng: chọn crawler, giữ nguồn và đừng coi robots.txt là giấy phép](https://fdetimes.net/vi/bach-khoa/agent-tim-kiem-web-va-crawl-tai-lieu.md): Agent tìm kiếm web và crawl tài liệu là hệ thống tự tìm, tải và rút gọn nội dung từ internet để LLM trả lời câu hỏi, kèm theo nguồn có thể kiểm chứng. - [Khi nào agent phải dừng: bốn lớp chặn và lúc bàn giao cho con người](https://fdetimes.net/vi/bach-khoa/dieu-kien-dung-cua-agent.md): Điều kiện dừng của agent là những quy tắc buộc vòng lặp suy nghĩ–hành động kết thúc: khi đã đạt mục tiêu, khi chạm giới hạn bước, ngân sách hay thời gian, hoặc khi cần con người duyệt. - [Viết tool definition cho API của khách: sáu bước để model chọn đúng tool và điền đúng tham số](https://fdetimes.net/vi/bach-khoa/thiet-ke-tool-definition-cho-api-cua-khach.md): Tool definition là bản mô tả một hàm mà bạn đưa cho LLM, gồm tên, phần mô tả bằng chữ và schema các tham số, để model biết khi nào nên gọi hàm và cần truyền những đối số gì. - [Thực hành LLM-as-judge: hiệu chỉnh judge theo nhãn pass/fail của chuyên gia phía khách](https://fdetimes.net/vi/bach-khoa/llm-as-judge-hieu-chinh-voi-nhan-xet-nguoi.md): LLM-as-judge là cách dùng một mô hình ngôn ngữ để chấm đầu ra của một hệ thống AI khác theo rubric. Judge chỉ đáng tin khi kết quả chấm của nó đã được đối chiếu và hiệu chỉnh với nhãn do chuyên gia gán. - [Trợ lý AI của khách có đối xử khác nhau với từng nhóm người? Cách kiểm bằng phép thử hoán đổi](https://fdetimes.net/vi/bach-khoa/thien-lech-va-cong-bang-trong-ai-cua-khach.md): Thiên lệch trong trợ lý AI là khi hệ thống cho kết quả khác nhau một cách có hệ thống giữa các nhóm người dùng có hoàn cảnh tương đương, chỉ vì đặc điểm nhân khẩu học hoặc những biến đại diện cho đặc điểm đó. - [Biến ghi âm tổng đài tiếng Việt thành bản tóm tắt cuộc gọi](https://fdetimes.net/vi/bach-khoa/speech-to-text-tieng-viet-cho-tong-dai.md): Pipeline speech-to-text cho tổng đài là chuỗi bước biến file ghi âm cuộc gọi thành bản chép lời nguyên văn, có thể chỉnh sửa, gắn đúng người nói, rồi rút gọn thành một bản tóm tắt dùng được cho call analytics. - [Đọc model card trước khi chọn Qwen, Llama, Gemma hay Mistral cho dự án tiếng Việt](https://fdetimes.net/vi/bach-khoa/chon-model-open-weight-tren-hugging-face.md): Model card là file README.md của một model repo trên Hugging Face, gồm một khối metadata YAML ở đầu (license, language, datasets, base_model) và phần Markdown mô tả mục đích sử dụng, giới hạn, dữ liệu huấn luyện và kết quả đánh giá. - [Đọc ảnh hiện trường, biểu mẫu viết tay và video của khách bằng vision model: hướng dẫn từng bước](https://fdetimes.net/vi/bach-khoa/vision-model-cho-anh-va-video-cua-khach.md): Vision Language Model (VLM) là loại model hiểu và xử lý được cả hình ảnh lẫn văn bản, nên có thể đọc ảnh, biểu mẫu chụp lại hoặc video rồi trả lời bằng chữ. - [Thực hành LoRA: dạy một model nhỏ phân loại ticket hỗ trợ mà không sửa trọng số gốc](https://fdetimes.net/vi/bach-khoa/thuc-hanh-fine-tune-lora-model-nho.md): LoRA (Low-Rank Adaptation) là cách fine-tune giữ nguyên trọng số của model đã pre-train, chỉ học phần cập nhật được biểu diễn bằng hai ma trận hạng thấp, nhờ đó số tham số phải huấn luyện giảm rất mạnh. - [Gọi thẳng API Claude và OpenAI: tự viết vòng tool use, rồi đối chiếu với Gemini](https://fdetimes.net/vi/bach-khoa/goi-truc-tiep-api-claude-openai-gemini.md): Gọi trực tiếp LLM API là gửi request tới endpoint của nhà cung cấp, bằng HTTP thô hoặc SDK chính thức, rồi tự quản lý lịch sử hội thoại, luồng streaming và vòng thực thi tool thay vì để framework làm hộ. - [Guardrails cho ứng dụng LLM của khách: chặn đầu vào, khóa đầu ra, thêm moderation](https://fdetimes.net/vi/bach-khoa/guardrails-loc-dau-vao-dau-ra.md): Guardrails là các lớp kiểm soát đặt quanh một mô hình ngôn ngữ: lọc những gì đi vào, giới hạn những gì mô hình được làm và ràng buộc những gì nó được phép trả ra. - [Zero-shot, few-shot, CoT hay ReAct: thử cả bốn trên một bộ ticket để biết lúc nào cần kỹ thuật nặng hơn](https://fdetimes.net/vi/bach-khoa/ky-thuat-prompt-thuc-su-huu-ich.md): Zero-shot, few-shot, chain-of-thought (CoT) và ReAct là bốn cách viết prompt, đi từ đơn giản đến phức tạp: không kèm ví dụ, kèm ví dụ mẫu, yêu cầu model suy luận từng bước, và cho model xen kẽ suy luận với gọi tool. - [Thực hành RAG phân quyền: lọc tài liệu theo phòng ban trước khi tới tay model](https://fdetimes.net/vi/bach-khoa/rag-loc-theo-quyen-nguoi-dung.md): RAG có bộ lọc động là cách truy xuất trong đó tập tài liệu được tìm kiếm bị thu hẹp ngay lúc truy vấn theo thuộc tính của người hỏi, như phòng ban, vai trò hay mức nhạy cảm của dữ liệu. - [Hybrid search và rerank: dựng pipeline RAG tìm đúng số hợp đồng, mã sản phẩm](https://fdetimes.net/vi/bach-khoa/hybrid-search-va-rerank.md): Hybrid search là cách chạy song song tìm kiếm theo từ khóa (như BM25) và tìm kiếm theo vector ngữ nghĩa, rồi gộp hai danh sách kết quả thành một, thường bằng rank fusion, trước khi rerank và chuyển cho mô hình. - [Chọn embedding model cho dữ liệu tiếng Việt: dựng bộ test 50 câu hỏi trước khi tin leaderboard](https://fdetimes.net/vi/bach-khoa/chon-embedding-model-cho-tieng-viet.md): Bộ test embedding là một tập nhỏ gồm câu hỏi thật kèm đáp án tài liệu đúng, lấy từ dữ liệu của chính khách hàng, dùng để chấm các model ứng viên trong cùng một điều kiện. - [Context engineering: chọn phần dữ liệu khách hàng mà model được thấy](https://fdetimes.net/vi/bach-khoa/context-engineering-cho-fde.md): Context engineering là việc thiết kế và liên tục chọn lọc tập token mà model nhìn thấy ở mỗi bước, gồm chỉ dẫn, dữ liệu, bộ nhớ và kết quả tool, sao cho model có đúng thông tin nó cần cho bước tiếp theo. - [Từ solutions engineer sang FDE: viết lại một PoC đến chuẩn production](https://fdetimes.net/vi/bach-khoa/tu-consultant-solutions-engineer-sang-fde.md): Lấp khoảng trống code production là học cách đưa code từ chỗ chỉ chứng minh một ý tưởng thành code chạy ổn trong môi trường thật của khách hàng, rồi tự vận hành và chịu trách nhiệm về kết quả của nó. - [Từ data scientist sang FDE: giữ tư duy debug, học làm chủ cả hệ thống](https://fdetimes.net/vi/bach-khoa/tu-data-scientist-ml-engineer-sang-fde.md): Chuyển từ data scientist hoặc ML engineer sang FDE là giữ lại nền tảng ML và tư duy debug, rồi học thêm cách tách nhỏ bài toán mơ hồ của khách hàng, viết code production và tự chịu trách nhiệm một deployment từ đầu đến cuối. - [Viết design doc để đội kỹ thuật của khách duyệt trước khi bạn code](https://fdetimes.net/vi/bach-khoa/thuc-hanh-viet-design-doc-gui-khach-duyet.md): Design doc là một tài liệu khá thoải mái về hình thức, viết trước khi code, trình bày chiến lược ở mức cao và các trade-off của một giải pháp để người khác góp ý và đi đến đồng thuận. - [Báo cáo tuần cho khách: một trang, ba câu hỏi, và mục quyết định giúp dự án hết treo](https://fdetimes.net/vi/bach-khoa/thuc-hanh-viet-bao-cao-tien-do-hang-tuan-cho-khach.md): Báo cáo tiến độ hằng tuần là một văn bản dài một trang, giữ cùng một khung mỗi tuần, cho khách biết đã đạt được kết quả gì, rủi ro nào đang lớn dần và họ cần quyết định gì trước hạn nào. - [Hiểu kinh doanh cho FDE: lần theo dòng tiền trước khi viết dòng code đầu tiên](https://fdetimes.net/vi/bach-khoa/business-acumen-hieu-khach-kiem-tien-the-nao.md): Hiểu kinh doanh, với một FDE, là biết dự án mình làm thay đổi con số nào trong báo cáo lãi lỗ của khách, ngân sách trả cho nó nằm ở đơn vị nào và ai có quyền duyệt hay cắt khoản chi đó. - [Thực hành: vẽ quy trình thật của khách trước khi để AI tự động hoá nó](https://fdetimes.net/vi/bach-khoa/thuc-hanh-ve-quy-trinh-nghiep-vu-truoc-khi-tu-dong-hoa.md): Bản đồ quy trình as-is là sơ đồ mô tả công việc đang thật sự diễn ra ở khách hàng, gồm cả bước thủ công, email ngầm, vòng làm lại và điểm chờ, chứ không phải quy trình ghi trong tài liệu. - [Debug máy chủ Linux của khách qua bastion: một dòng ssh -J và ba lệnh đầu tiên cần gõ](https://fdetimes.net/vi/bach-khoa/thuc-hanh-debug-tren-may-chu-linux-cua-khach.md): Debug qua bastion là cách đi vào máy chủ nội bộ của khách thông qua một máy trung gian (bastion, hay jump host) bằng SSH, rồi chẩn đoán sự cố chỉ bằng các lệnh có sẵn trên hệ điều hành. - [Git khi code nằm trong repo của khách: danh tính, remote, credential và luật review](https://fdetimes.net/vi/bach-khoa/git-khi-code-nam-trong-repo-cua-khach.md): Git ở site khách là cách một FDE cấu hình danh tính, remote, credential và quy trình review để làm việc an toàn trong repo do khách sở hữu, thường nằm trên GitLab nội bộ của họ. - [Máy chủ của khách không có internet thì pipeline phải kết thúc bằng một file tar](https://fdetimes.net/vi/bach-khoa/thuc-hanh-ci-cd-trien-khai-vao-moi-truong-khach.md): CI/CD là tập hợp các thực hành tự động hoá vòng phát triển, kiểm thử và bàn giao phần mềm; trong môi trường air-gapped, khâu “delivery” kết thúc bằng một gói image được mang vào mạng cách ly rồi nạp lại bên trong mạng của khách. - [Bedrock, Azure OpenAI, Vertex AI: đưa mô hình vào đúng đám mây của khách](https://fdetimes.net/vi/bach-khoa/aws-azure-gcp-cho-fde.md): Dịch vụ AI được quản lý trên đám mây (Amazon Bedrock, Azure OpenAI trong Microsoft Foundry, Vertex AI nay là Gemini Enterprise Agent Platform) cho phép doanh nghiệp gọi foundation model ngay trong tài khoản cloud của mình, với quyền truy cập và vùng dữ liệu do chính họ kiểm soát. - [Dự án tổng hợp: ứng dụng hỏi đáp tự ghi trace và đếm token cho từng câu hỏi](https://fdetimes.net/vi/bach-khoa/thuc-hanh-ung-dung-ai-tron-goi-co-observability.md): LLM observability là việc thu thập dữ liệu theo thời gian thực từ ứng dụng LLM, gồm metrics, trace và log, để biết ứng dụng đang chạy ra sao và tốn bao nhiêu. - [Pipeline Airflow hằng đêm cho trợ lý AI: chạy lại vẫn không hỏng](https://fdetimes.net/vi/bach-khoa/thuc-hanh-pipeline-du-lieu-hang-dem-bang-airflow.md): Pipeline đồng bộ hằng đêm là một DAG trong Airflow, gồm các task được scheduler kích hoạt theo lịch để kéo dữ liệu mới từ hệ thống nguồn, nạp vào kho và làm mới nguồn tri thức mà trợ lý AI đọc. - [Lần đầu vào database của khách hàng: đọc schema, truy vấn trên bản sao và khoá phiên chỉ đọc](https://fdetimes.net/vi/bach-khoa/postgresql-va-nosql-o-khach-hang.md): Truy vấn an toàn ở khách hàng là cách khám phá schema và dữ liệu thật trên bản sao chỉ đọc, trong một phiên có giới hạn thời gian, khoá và transaction, để công việc của FDE không ảnh hưởng tới hệ thống production. - [Đọc codebase Java, Go hay Node.js của khách khi bạn chỉ quen Python](https://fdetimes.net/vi/bach-khoa/doc-code-backend-java-go-nodejs-cua-khach.md): Đọc nhanh codebase lạ là kỹ năng tìm ra manifest, entry point và handler API của một dự án viết bằng ngôn ngữ mình không quen, rồi lần theo một request để hiểu hệ thống thực sự làm gì. - [Thiết kế API cho giải pháp bàn giao: viết hợp đồng trước, viết code sau](https://fdetimes.net/vi/bach-khoa/thiet-ke-api-cho-giai-phap-trien-khai.md): Hợp đồng dữ liệu của một API là bản mô tả chính thức về tài nguyên, trường, kiểu dữ liệu và hành vi mà phần mềm của bạn cam kết với phần mềm bên kia. Bản này được viết trước khi code và chỉ được thay đổi theo luật versioning mà hai bên đã thống nhất. - [Prompt injection khi agent có quyền gọi vào hệ thống của khách: lập mô hình đe doạ và chặn theo từng lớp](https://fdetimes.net/vi/bach-khoa/prompt-injection-khi-agent-co-quyen-goi-he-thong.md): Prompt injection là lỗ hổng xảy ra khi nội dung đưa vào mô hình, do người dùng gõ hoặc nằm trong file và website bên ngoài, làm thay đổi hành vi hay đầu ra của LLM theo cách không ai dự định. - [Thực hành: dựng vLLM trong VPC của khách mà không để lộ cổng nội bộ](https://fdetimes.net/vi/bach-khoa/thuc-hanh-tu-host-model-open-weight-bang-vllm.md): Tự host model open-weight bằng vLLM là chạy server suy luận vLLM trên hạ tầng do khách kiểm soát, cung cấp API tương thích kiểu OpenAI cho ứng dụng nội bộ để dữ liệu không phải ra khỏi mạng của khách. - [Thực hành: dựng eval hồi quy bằng promptfoo trong GitHub Actions, tự chạy mỗi khi đổi prompt](https://fdetimes.net/vi/bach-khoa/thuc-hanh-eval-hoi-quy-trong-ci.md): Eval hồi quy cho LLM là bộ kiểm thử chạy lại trên một golden dataset sau mỗi lần đổi prompt hoặc model, để xác nhận thay đổi cải thiện hệ thống mà không làm hỏng những gì từng chạy đúng. - [Bộ nhớ của agent: ba tầng lưu trữ, mỗi tầng một lịch xoá riêng](https://fdetimes.net/vi/bach-khoa/bo-nho-va-trang-thai-cua-agent.md): Bộ nhớ của agent là các tầng lưu trạng thái, từ context window của một phiên đến database dài hạn dùng chung giữa các phiên, và mỗi tầng có cách ghi, cách truy xuất, cách xoá riêng. - [Tự viết vòng lặp agent bằng Python, không dùng framework: một tool, một vòng for, bốn chỗ hay sai](https://fdetimes.net/vi/bach-khoa/thuc-hanh-tu-viet-vong-lap-agent-bang-python.md): Vòng lặp agent là đoạn code gọi LLM, đọc yêu cầu dùng tool trong câu trả lời, tự chạy tool đó rồi gửi kết quả lại cho model. Vòng này lặp lại cho đến khi model không cần thêm tool hoặc chạm điều kiện dừng. - [Biến SOP của khách thành prompt: viết bộ test trước, viết prompt sau](https://fdetimes.net/vi/bach-khoa/thuc-hanh-viet-prompt-tu-quy-trinh-nghiep-vu-cua-khach.md): Chuyển SOP thành prompt là viết lại quy trình vận hành chuẩn của khách thành chỉ dẫn cho model, gồm vai trò, các bước đánh số kèm lý do, ví dụ lấy từ ca thật và một bộ eval để đo mức độ ổn định. - [LLM căn bản cho FDE: token, context window, temperature và lý do model “bịa”](https://fdetimes.net/vi/bach-khoa/llm-can-ban-cho-fde-token-context-sampling.md): Context window là toàn bộ văn bản mà model có thể tham chiếu khi sinh câu trả lời, gồm system prompt, tin nhắn, kết quả tool, tài liệu, định nghĩa tool và cả chính câu trả lời. Đây là bộ nhớ làm việc của model, không phải dữ liệu huấn luyện. - [Thực hành: đo retrieval của RAG bằng hit rate và MRR trước khi khách hàng tự phát hiện lỗi](https://fdetimes.net/vi/bach-khoa/thuc-hanh-danh-gia-retrieval-hit-rate-mrr.md): Hit rate@k là tỷ lệ câu hỏi có ít nhất một đoạn văn liên quan lọt vào top k kết quả; MRR là trung bình của 1/thứ hạng của đoạn liên quan đầu tiên trên toàn bộ câu hỏi. - [Nâng tự chủ cho agent từng bậc, rồi bàn giao quyền giám sát cho đội vận hành của khách](https://fdetimes.net/vi/bach-khoa/muc-tu-chu-cua-agent-va-ban-giao-van-hanh.md): Nâng dần mức tự chủ (graduated autonomy) là trao cho agent quyền tự thực thi từng nhóm hành động theo mức rủi ro. Mỗi lần nâng bậc phải dựa trên bằng chứng bậc trước đã chạy ổn, và cuối cùng vai trò giám sát được chuyển sang đội vận hành của khách. - [Khi ERP không có API tử tế: cách FDE tích hợp mà không kéo theo cả hệ thống cũ](https://fdetimes.net/vi/bach-khoa/tich-hop-he-thong-cu-erp-api-te.md): Tích hợp với hệ thống cũ là việc đọc và ghi dữ liệu vào một ERP hoặc ứng dụng không thể sửa. Cách làm bền là đặt một lớp dịch (anti-corruption layer) ở giữa, để mô hình dữ liệu cũ không lan sang code mới. - [Đề bài khách đưa hiếm khi là đề bài thật: cách FDE làm rõ yêu cầu trước khi viết code](https://fdetimes.net/vi/bach-khoa/bien-de-bai-mo-ho-thanh-ke-hoach.md): Discovery là quá trình FDE coi yêu cầu khách nói ra như một giả thuyết, rồi phỏng vấn, tổng hợp và kiểm chứng để tìm ra vấn đề thật trước khi viết spec. - [SAML, SCIM và bảng câu hỏi bảo mật: những ràng buộc FDE gặp từ hợp đồng doanh nghiệp đầu tiên](https://fdetimes.net/vi/bach-khoa/sso-saml-iam-trong-du-an-fde.md): SSO doanh nghiệp là cách để nhân viên của khách đăng nhập vào ứng dụng bằng tài khoản công ty qua identity provider (IdP) như Okta hay Entra ID. SAML lo phần đăng nhập, còn SCIM lo việc tạo, cập nhật và vô hiệu hóa tài khoản. - [Workflow hay agent: chọn mẫu thiết kế nào khi khách nói "chúng tôi muốn một agent"](https://fdetimes.net/vi/bach-khoa/workflow-hay-agent-chon-mau-thiet-ke.md): Workflow là hệ thống mà LLM và công cụ chạy theo đường code định sẵn; agent là hệ thống mà LLM tự quyết định quy trình và cách dùng công cụ để hoàn thành việc. - [Debug khi không được vào production của khách: tìm lỗi bằng log, mẫu dữ liệu và bản tái hiện](https://fdetimes.net/vi/bach-khoa/debug-he-thong-tai-khach-hang-khong-co-quyen-production.md): Debug không có quyền vào production là cách tìm nguyên nhân lỗi khi chỉ có log, một ít mẫu dữ liệu và khả năng tự dựng lại lỗi bên ngoài môi trường của khách hàng. - [Thực hành: viết bộ eval 50 mẫu cho trợ lý hỏi đáp bằng Python](https://fdetimes.net/vi/bach-khoa/viet-bo-eval-50-mau-cho-tro-ly-hoi-dap-bang-python.md): Bộ eval là tập câu hỏi có tiêu chí chấm rõ ràng, chạy lặp lại được, dùng để đo xem một hệ thống AI có làm đúng việc được giao hay không sau mỗi lần thay đổi. - [Từ bản vá cho một khách đến tính năng chung: FDE phản hồi cho đội product thế nào](https://fdetimes.net/vi/bach-khoa/tu-giai-phap-mot-khach-den-tinh-nang-san-pham.md): Vòng phản hồi field-to-product là quy trình FDE ghi lại những gì quan sát và xây dựng ở môi trường khách, kèm bằng chứng và bối cảnh, để đội core product quyết định có tổng quát hóa thành tính năng cho mọi khách hay không. - [Dẫn dắt kỹ thuật tại khách hàng khi không ai báo cáo cho bạn](https://fdetimes.net/vi/bach-khoa/dan-dat-ky-thuat-tai-khach-hang.md): Dẫn dắt khi không có quyền hạn là khả năng khiến người khác chọn một hướng kỹ thuật nhờ uy tín, cách giao tiếp và quyền được người bảo trợ cho mượn, chứ không nhờ chức danh. - [Sự cố production tại khách hàng: phân vai trước, sửa sau, viết postmortem để không lặp lại](https://fdetimes.net/vi/bach-khoa/su-co-production-tai-khach-hang-postmortem.md): Xử lý sự cố production là quy trình đi từ lúc tuyên bố sự cố, phân vai và giảm thiểu thiệt hại, đến lúc viết postmortem ghi lại tác động, các hành động đã làm và những thay đổi để sự cố không lặp lại. - [API và webhook cho FDE: viết tích hợp như thể mọi thứ sẽ được gửi hai lần](https://fdetimes.net/vi/bach-khoa/api-va-tich-hop.md): Tích hợp hệ thống doanh nghiệp là việc nối phần mềm của bạn với hệ thống của khách hàng và bên thứ ba qua API (bạn chủ động gọi) và webhook (họ chủ động gọi bạn), sao cho dữ liệu vẫn đúng khi mạng chập chờn, request bị gửi lặp hoặc đến sai thứ tự. - [Python và SQL cho FDE: đếm khóa, kiểm tra JOIN rồi mới tin số liệu](https://fdetimes.net/vi/bach-khoa/python-cho-fde.md): Nền tảng Python và SQL tối thiểu của FDE là khả năng dùng SQL để kiểm tra xem dữ liệu của khách hàng có đáng tin không, rồi dùng Python để lấy dữ liệu ra, xử lý lại và viết các phép kiểm tra thành code tự chạy mỗi lần dữ liệu thay đổi. - [Một deployment, bốn kiểu người nghe: FDE làm việc với kỹ thuật, nghiệp vụ và lãnh đạo khách hàng thế nào](https://fdetimes.net/vi/bach-khoa/giao-tiep-voi-stakeholder.md): Quản lý stakeholder phía khách hàng là việc vừa giữ quan hệ với lãnh đạo, những người ra quyết định, vừa giữ cho đội kỹ thuật, đội nghiệp vụ và người dùng tuyến đầu cùng hướng về một mục tiêu đo được. - [Viết tài liệu bàn giao để khách tự vận hành mà không cần gọi lại FDE](https://fdetimes.net/vi/bach-khoa/tai-lieu-ban-giao.md): Tài liệu bàn giao là bộ văn bản giúp đội phía khách hàng tự vận hành, sửa lỗi và phát triển tiếp những gì FDE đã xây mà không phải hỏi lại người xây. - [Từ POC lên production: vì sao nhiều dự án AI dừng lại ở buổi demo](https://fdetimes.net/vi/bach-khoa/tu-poc-len-production.md): Khoảng cách POC–production là phần việc nằm giữa một bản demo chứng minh mô hình làm được việc và một hệ thống chạy hằng ngày trên dữ liệu thật, gắn vào quy trình thật của khách hàng. - [Đo ROI cho khách hàng: đếm việc đạt chuẩn, trừ công kiểm tra và sửa lỗi](https://fdetimes.net/vi/bach-khoa/do-roi-cho-khach-hang.md): ROI của một dự án triển khai là phần giá trị kinh doanh đo được sau khi đã trừ toàn bộ chi phí, kể cả công kiểm tra và sửa lỗi, so với một baseline đo trước khi hệ thống chạy. - [Chốt phạm vi dự án FDE: ba phép thử tách scope creep khỏi discovery](https://fdetimes.net/vi/bach-khoa/scoping-du-an-fde.md): Chốt phạm vi trong dự án FDE là việc thống nhất bằng văn bản kết quả khách đã mua, những việc sẽ không làm và tiêu chí "xong", rồi dùng chính văn bản đó để quyết định mỗi yêu cầu mới là bước làm rõ hay là việc mới cần định giá lại. - [On-prem, VPC hay SaaS: FDE phải vẽ được bản đồ “cái gì chạy ở đâu”](https://fdetimes.net/vi/bach-khoa/on-prem-va-cloud.md): Mô hình triển khai (SaaS, customer VPC/BYOC hay on-prem) quy định phần mềm của vendor chạy trên hạ tầng của ai, dữ liệu nằm ở đâu và vendor còn giữ những quyền điều khiển nào. - [Cấp quyền cho AI agent trong hạ tầng khách hàng: bắt đầu từ việc agent không được làm gì](https://fdetimes.net/vi/bach-khoa/bao-mat-khi-trien-khai.md): Phân quyền cho AI agent là việc thiết kế xem agent được gọi công cụ nào, chạy nhân danh ai, với scope nào, khi nào phải có người duyệt và được phép kết nối mạng tới đâu, sao cho khi mô hình bị lừa thì thiệt hại vẫn nằm trong giới hạn. - [Observability cho hệ thống LLM: trace từng request, kiểm soát log và đối soát chi phí](https://fdetimes.net/vi/bach-khoa/observability-cho-llm.md): Observability cho hệ thống LLM là cách ghi lại toàn bộ đường đi của một request qua các bước gọi model, gọi công cụ và truy xuất dữ liệu (trace), kèm số token, nội dung đã che dữ liệu nhạy cảm và chi phí, để bạn debug được và giải thích được tiền đã đi đâu. - [Tool calling: mô hình chỉ đề xuất, còn code của bạn mới thực thi](https://fdetimes.net/vi/bach-khoa/tool-calling-va-agent.md): Tool calling là cơ chế trong đó mô hình phát ra một yêu cầu có cấu trúc gồm tên tool và đối số JSON, còn ứng dụng quyết định có chạy thao tác đó hay không, chạy thế nào, rồi gửi kết quả trở lại cuộc hội thoại. - [Khoan dựng RAG: đếm token trước, đo Recall@k sau](https://fdetimes.net/vi/bach-khoa/rag-cho-fde.md): Đánh giá retrieval là đo riêng xem bước tìm kiếm của hệ thống RAG có đưa đúng đoạn tài liệu cần thiết vào top-k kết quả hay không, tách khỏi chất lượng câu trả lời cuối cùng. - [Sau go-live, bộ eval thật của agent nằm trong trace của khách hàng](https://fdetimes.net/vi/bach-khoa/danh-gia-ai-trong-production.md): Eval từ trace production là cách lấy mẫu những gì agent thực sự làm với người dùng thật, phân tích lỗi trong đó rồi biến thành test case và evaluator, để bộ eval luôn bám theo cách khách hàng dùng sản phẩm. - [Ôn thuật toán chỉ chuẩn bị cho một vòng trong loop phỏng vấn FDE](https://fdetimes.net/vi/bach-khoa/phong-van-fde.md): Phỏng vấn decomposition là một phiên mở và mang tính cộng tác: ứng viên vừa nói to suy nghĩ của mình vừa tách một bài toán thực tế còn mơ hồ thành những phần nhỏ có thể giải được. - [Nối dữ liệu khách hàng là việc chính của FDE, không phải việc lặt vặt trước khi “làm thật”](https://fdetimes.net/vi/bach-khoa/tich-hop-du-lieu-khach-hang.md): Nối dữ liệu khách hàng (data onboarding) là đưa dữ liệu thật, rời rạc và không hoàn hảo từ các hệ thống của khách về một dạng thống nhất, kiểm chứng được, để sản phẩm có thể chạy trên đó. - [Nhà tuyển dụng FDE tìm gì: code là ngưỡng, giao tiếp với khách hàng là thước đo](https://fdetimes.net/vi/bach-khoa/ky-nang-cot-loi-fde.md): Kỹ năng cốt lõi của FDE là tổ hợp năng lực kỹ thuật (lập trình full stack, cloud, data engineering, applied AI) và năng lực làm việc trực tiếp với khách hàng mà nhà tuyển dụng dùng để sàng lọc rồi xếp hạng ứng viên. - [Từ câu "con bot trả lời dở quá" đến một bộ eval: biến lời phàn nàn thành thước đo](https://fdetimes.net/vi/bach-khoa/fde-va-llm-agent.md): Biến lời phàn nàn thành thước đo là chuyển kỳ vọng mơ hồ của khách hàng thành các tiêu chí cụ thể, có ngưỡng rõ ràng, kèm một bộ eval chứng minh hệ thống AI đạt hay chưa đạt. - [Why, what, how: tách một FDE engagement thành ba câu hỏi trước khi viết code](https://fdetimes.net/vi/bach-khoa/deployment-strategist.md): Tách why/what/how là cách chia một FDE engagement thành ba câu hỏi riêng: vì sao khách cần thay đổi (why), kết quả đo được nào chứng minh thành công (what), và hệ thống kỹ thuật nào tạo ra kết quả đó (how). Mỗi câu hỏi có người chịu trách nhiệm và cách kiểm chứng riêng. - [Ngày làm việc của FDE chạy theo standup của khách, không chỉ của công ty bạn](https://fdetimes.net/vi/bach-khoa/mot-ngay-cua-fde.md): Làm việc theo lịch của khách hàng nghĩa là FDE dự standup của đội khách, triage các vấn đề khách gửi tới trước giờ làm, rồi đặt ưu tiên trong ngày quanh những gì đang chặn khách chứ không quanh backlog nội bộ. - [Khách nói dashboard chậm, nhưng thứ họ thiếu là conversion: bài học discovery của FDE](https://fdetimes.net/vi/bach-khoa/customer-discovery.md): Customer discovery trong nghề FDE là cuộc điều tra kỹ thuật có cấu trúc, tiến hành dưới dạng hội thoại, để lần ngược từ lời mô tả của khách về vấn đề workflow thật sự bên dưới. - [Delta và Echo: vì sao Palantir giao việc triển khai cho hai vai, và cách một FDE tự đóng cả hai](https://fdetimes.net/vi/bach-khoa/nguon-goc-fde-palantir.md): Delta và Echo là cặp vai trong mô hình triển khai của Palantir: Echo là analyst có chuyên môn ngành, ngồi cùng khách hàng để làm discovery, lo adoption và giữ quan hệ; Delta là kỹ sư triển khai, nhận bài toán đó và nhanh chóng xây prototype chạy được. - [FDE và software engineer: cùng viết code, nhưng FDE sở hữu kết quả của một khách hàng](https://fdetimes.net/vi/bach-khoa/fde-khac-software-engineer.md): FDE (forward deployed engineer) là kỹ sư phần mềm làm việc ngay bên trong tổ chức khách hàng, chịu trách nhiệm về kết quả của một account cụ thể thay vì một component dùng chung. - [FDE hay Solutions Architect: ai được commit vào production mới là ranh giới](https://fdetimes.net/vi/bach-khoa/fde-khac-solutions-engineer.md): Forward Deployed Engineer là kỹ sư sở hữu code chạy production trong môi trường của một khách hàng cụ thể, khác với Solutions Architect, người tạo ra tài liệu kiến trúc và kế hoạch triển khai mà không commit code. - [Vì sao các phòng lab AI đang săn Forward Deployed Engineer](https://fdetimes.net/vi/bach-khoa/fde-la-gi.md): Forward Deployed Engineer (FDE) là kỹ sư phần mềm làm việc trực tiếp tại khách hàng, vừa tìm ra bài toán thật vừa tự tay triển khai hệ thống AI vào hoạt động kinh doanh của họ. - [Fine-tuning hay RAG: đừng chọn kỹ thuật, hãy chẩn đoán vấn đề](https://fdetimes.net/vi/bach-khoa/fine-tuning-hay-rag.md): RAG đưa kiến thức mới vào ngữ cảnh của mô hình lúc trả lời, còn fine-tuning huấn luyện lại mô hình để đổi hành vi của nó. Nên dùng cái nào tùy vào việc lỗi đến từ chỗ mô hình thiếu kiến thức hay làm sai cách. - [Deploy prompt bằng một label, và vì sao rollback có thể mất tới một phút](https://fdetimes.net/vi/bach-khoa/prompt-trong-production.md): Prompt versioning trong production là cách quản lý prompt như một artifact có phiên bản: một label trỏ tới bản đang chạy, eval tự động chặn thay đổi kém, và rollback là chuyển label về phiên bản tốt gần nhất. - [Data lake, warehouse hay lakehouse: đọc đúng kiến trúc dữ liệu của khách trước khi viết pipeline ML đầu tiên](https://fdetimes.net/vi/bach-khoa/data-lake-warehouse-lakehouse-o-khach-hang.md): Kiến trúc dữ liệu của khách là cách họ lưu và biến đổi dữ liệu: data lake giữ dữ liệu ở dạng gốc, data warehouse giữ dữ liệu đã được xử lý cho một mục đích cụ thể, còn lakehouse đặt một lớp metadata lên các file của lake để có tính năng quản lý kiểu warehouse. ## Phân tích (Tiếng Việt) - [FDE cho chính phủ và quốc phòng: lương không cao như lời đồn, cái giá nằm ở chỗ khác](https://fdetimes.net/vi/phan-tich/fde-khu-vuc-cong-quoc-phong-gia-tri-va-danh-doi.md): FDE khu vực công và quốc phòng là kỹ sư triển khai phần mềm ngay tại cơ quan chính phủ hoặc đơn vị quân sự. Vị trí này thường đòi giấy phép an ninh, phải ở onsite nhiều và đi lại theo nhu cầu của nhiệm vụ. - [Một FDE gánh được bao nhiêu khách? Câu trả lời nằm ở giai đoạn và công cụ, không ở một con số](https://fdetimes.net/vi/phan-tich/mot-fde-nen-phu-trach-bao-nhieu-khach-hang.md): Trần tải của một FDE là số engagement một kỹ sư có thể phụ trách cùng lúc mà không làm giảm chất lượng. Trần này do giai đoạn của từng tài khoản và mức tái sử dụng công cụ quyết định, không phải một con số cố định. - [Cần FDE có phải vì sản phẩm chưa xong? Hãy xem code tùy biến đi về đâu](https://fdetimes.net/vi/phan-tich/fde-co-phai-dau-hieu-san-pham-chua-xong.md): Forward Deployed Engineer (FDE) là kỹ sư làm việc trực tiếp tại khách hàng để đưa sản phẩm vào vận hành thật, rồi mang phần học được và phần code dùng lại được về sản phẩm lõi. - [Khi chữ "xong" quyết định doanh thu của agent](https://fdetimes.net/vi/phan-tich/gia-theo-ket-qua-fde-ganh-gi.md): Giá theo kết quả (outcome-based pricing) là cách tính tiền trong đó khách chỉ trả khi agent tạo ra một sự kiện kinh doanh đã thỏa thuận trước, chẳng hạn một cuộc hội thoại hỗ trợ được giải quyết hay một lượt hủy dịch vụ được giữ lại, thay vì trả theo số seat hay số token. - [CV FDE: bỏ danh sách framework, kể kết quả triển khai bằng con số có mốc so sánh](https://fdetimes.net/vi/phan-tich/cv-fde-ke-ket-qua-trien-khai-thay-vi-liet-ke-framework.md): Bullet định lượng trong CV FDE là một dòng mô tả kết quả triển khai cho khách hàng bằng một con số đo được, kèm mốc ban đầu và khoảng thời gian đo, thay cho một danh sách công cụ. - [Khi AI viết code hàng loạt, FDE được trả tiền để chịu trách nhiệm](https://fdetimes.net/vi/phan-tich/fde-khi-ai-viet-code-gia-tri-nam-o-dau.md): Forward Deployed Engineer (FDE) là kỹ sư làm việc ngay trên hệ thống của khách hàng, viết và tích hợp phần mềm tại đó, đồng thời chịu trách nhiệm việc triển khai có chạy được hay không. - [Đội FDE đầu tiên: tuyển lúc nào, đo gì và khi nào cần FDE Lead](https://fdetimes.net/vi/phan-tich/dan-dat-doi-fde-dau-tien-tuyen-dao-tao-thang-tien.md): Đội FDE đầu tiên là nhóm kỹ sư làm việc trực tiếp tại khách hàng để đưa sản phẩm vào vận hành. Đội này cần được thiết kế có chủ đích: tuyển ai, báo cáo cho ai, đo bằng chỉ số nào và khi nào cần thêm một tầng lead. - [Từ FDE lên founder: thói quen nào mang theo được, thói quen nào phải học lại](https://fdetimes.net/vi/phan-tich/fde-den-founder-con-duong-tu-palantir.md): Lộ trình FDE-thành-founder là việc dùng kinh nghiệm làm việc tại hiện trường khách hàng, như customer discovery, ship bản nhỏ và mở rộng dần, làm nền để tự xây một công ty sản phẩm. - [Đi công tác tới 50%, chữa cháy không dứt: FDE giữ tay nghề kỹ thuật bằng cách nào?](https://fdetimes.net/vi/phan-tich/fde-kiet-suc-va-huong-di-dai-han.md): Rủi ro kiệt sức của FDE là áp lực mang tính cấu trúc do đi công tác dày, liên tục chuyển ngữ cảnh và chữa cháy cho khách hàng, có thể kéo kỹ sư xa dần khỏi kỹ năng làm product. - [Cùng chức danh FDE, khác hẳn công việc: năm phép thử để đọc ra vị trí "đội lốt" trong tin tuyển dụng](https://fdetimes.net/vi/phan-tich/nhan-fde-bi-dung-lan-lam-sao-doc-tin-tuyen-dung-de-nhan-ra-viec-that.md): Forward deployed engineer (FDE) là kỹ sư làm việc ngay trong hệ thống của khách hàng sau khi hợp đồng đã ký, viết code production chưa từng có để giải bài toán của khách hàng đó, rồi đưa những gì học được ngược về sản phẩm. - [FDE cho người mới ra trường có thật, nhưng chỉ là một cửa hẹp mở theo mùa](https://fdetimes.net/vi/phan-tich/fde-junior-con-cho-trong-thoi-ai-viet-code.md): FDE new grad là vị trí forward deployed engineer dành cho người sắp hoặc vừa tốt nghiệp: làm việc trực tiếp với khách hàng để xây phần mềm chạy production, thường được tuyển theo từng đợt gắn với một khung thời gian tốt nghiệp cố định. - [Ảnh AI cho doanh nghiệp: thứ khó làm đúng là quy trình duyệt, không phải prompt](https://fdetimes.net/vi/phan-tich/tao-anh-bang-ai-trong-doanh-nghiep.md): Quy trình duyệt ảnh AI là chuỗi quy tắc, quyền quyết định và bước kiểm tra mà một ảnh do model sinh ra phải đi qua trước khi được đăng lên một kênh cụ thể. - [Kubeflow hay SageMaker, Vertex AI, Azure ML: hãy hỏi ai sẽ vận hành pipeline trước khi so tính năng](https://fdetimes.net/vi/phan-tich/kubeflow-hay-dich-vu-ml-managed-tren-cloud.md): ML pipeline là chuỗi bước tự động đưa dữ liệu qua xử lý, huấn luyện và đánh giá thành model, được một hệ thống orchestration điều phối và chạy lặp lại. - [Khách đòi cả ba thứ, FDE nên kéo cần gạt phạm vi trước](https://fdetimes.net/vi/phan-tich/danh-doi-pham-vi-toc-do-chat-luong.md): Dùng phạm vi làm cần gạt nghĩa là FDE điều chỉnh những gì sẽ giao trước tiên để giữ thời hạn và mức chất lượng tối thiểu, chỉ đổi thời gian hoặc nguồn lực khi đã thương lượng rõ với khách. - [Vibe coding: nợ kỹ thuật đến hạn đúng ngày lên production](https://fdetimes.net/vi/phan-tich/vibe-coding-prototype-nhanh-va-cai-gia.md): Vibe coding là cách để AI viết code theo mô tả, chấp nhận kết quả mà không đọc, không kiểm thử và không cần hiểu code, khác với phát triển phần mềm có AI hỗ trợ, nơi người viết vẫn review, test và giải thích được từng dòng. - [Đổi model không chỉ là đổi API key: vì sao prompt viết cho GPT có thể hỏng trên Claude, Gemini và Llama](https://fdetimes.net/vi/phan-tich/chuyen-prompt-giua-cac-model-va-nha-cung-cap.md): Model migration là việc chuyển một ứng dụng đang chạy production từ model này sang model khác, gồm cả viết lại prompt, định dạng tool call, tham số sampling và phần hậu xử lý output, rồi kiểm chứng bằng eval rằng chất lượng không bị giảm. - [Khi lãnh đạo khách hàng muốn một “nhân viên AI làm được mọi thứ”: FDE cần tách AGI khỏi agent ngay từ buổi họp đầu](https://fdetimes.net/vi/phan-tich/ai-va-agi-noi-chuyen-ky-vong-voi-lanh-dao-khach.md): AGI là loại trí tuệ nhân tạo giả định, ngang hoặc vượt con người ở gần như mọi tác vụ nhận thức. Còn agent là hệ thống dùng LLM, được gắn thêm khả năng lập kế hoạch, công cụ và bộ nhớ để tự xử lý những tác vụ cụ thể. - [Bàn giao cho nhiều khách hàng: nên tách theo khách hàng trước khi tách code](https://fdetimes.net/vi/phan-tich/monolith-microservices-deployment-stamps.md): Deployment stamps là cách triển khai nhiều bản sao độc lập của ứng dụng, mỗi bản có data store riêng và phục vụ một nhóm tenant định trước. - [Chọn data mesh hay fabric? Đọc sơ đồ tổ chức của khách trước](https://fdetimes.net/vi/phan-tich/chon-stack-du-lieu-data-mesh-data-fabric.md): Data mesh là mô hình quản lý dữ liệu phân tán, giao trách nhiệm dữ liệu cho từng domain nghiệp vụ; data fabric là một cách thiết kế lớp tích hợp để truy cập dữ liệu rộng khắp; còn kho hoặc hub trung tâm là nơi một đội duy nhất chuẩn hóa và phục vụ dữ liệu cho cả tổ chức. - [Giữ log 12 tháng, xoá dữ liệu không chậm trễ: bài toán kiến trúc API](https://fdetimes.net/vi/phan-tich/gdpr-hipaa-pci-dss-anh-huong-thiet-ke-api.md): API compliance là việc thiết kế API, log và kho lưu trữ sao cho đáp ứng các yêu cầu pháp lý về dữ liệu như GDPR, CCPA/CPRA, HIPAA và PCI DSS ngay từ kiến trúc, thay vì vá lại sau khi hệ thống đã chạy. - [Assistants API đã tắt: chuyển dự án của khách sang Responses API không chỉ là đổi endpoint](https://fdetimes.net/vi/phan-tich/di-chuyen-tu-openai-assistants-api.md): Chuyển từ Assistants API sang Responses API là thay ba khái niệm Assistant, Thread, Run bằng Prompt, Conversation, Response, đồng thời đưa vòng gọi tool về chạy trong code của chính khách hàng. - [Klarna tuyển lại người: use case AI cần bằng chứng vận hành, không chỉ blog vendor](https://fdetimes.net/vi/phan-tich/ban-do-use-case-ai-theo-nganh.md): Bản đồ use case AI theo ngành là cách xếp các ứng dụng như RAG, agent và hệ gợi ý theo bài toán, theo dữ liệu chúng cần và theo người chịu trách nhiệm với kết quả, để biết cái nào đáng triển khai trước. - [AI Engineer, ML Engineer và FDE: cùng bộ công cụ, khác người chịu trách nhiệm](https://fdetimes.net/vi/phan-tich/ai-engineer-va-fde-khac-nhau-the-nao.md): Forward Deployed Engineer (FDE) là kỹ sư cần nền kỹ thuật tương tự AI/ML Engineer nhưng làm việc trực tiếp với một khách hàng cụ thể, tự tìm ra phạm vi bài toán và được đánh giá bằng kết quả thực tế sau khi hệ thống chạy. - [Cửa sổ ngữ cảnh chứa 5.000 trang, nhưng mốc bỏ RAG chỉ là 500 trang: FDE phải trả lời khách bằng số đo](https://fdetimes.net/vi/phan-tich/context-dai-co-thay-duoc-rag.md): Long context là cách đưa thẳng một lượng văn bản rất lớn (hàng trăm nghìn tới hàng triệu token) vào prompt. RAG (retrieval-augmented generation) thì chỉ truy xuất những đoạn liên quan rồi đưa chúng vào cửa sổ ngữ cảnh lúc suy luận. - [LangSmith, Arize, Helicone hay PostHog: khách hàng đặt ràng buộc gì thì chọn công cụ đó](https://fdetimes.net/vi/phan-tich/langsmith-arize-helicone-so-voi-langfuse.md): LLM observability là việc thu thập metrics, traces và logs từ ứng dụng LLM để biết hệ thống có đang chạy đúng trong production hay không. - [LangChain, LlamaIndex, Haystack hay gọi API thẳng: chọn framework theo vấn đề của khách, không theo độ nổi tiếng](https://fdetimes.net/vi/phan-tich/langchain-llamaindex-haystack-hay-tu-viet.md): Chọn framework cho agent là quyết định giao lớp nào của hệ thống (gọi model, truy xuất dữ liệu, điều phối luồng, xử lý tài liệu) cho một lớp trừu tượng do người khác viết, thay vì tự viết và tự giữ quyền kiểm soát. - [Model reasoning: khi nào đáng bắt khách hàng trả thêm tiền và chờ lâu hơn](https://fdetimes.net/vi/phan-tich/model-reasoning-khi-nao-dang-tra-them.md): Model reasoning (o-series của OpenAI, extended thinking hay adaptive thinking của Claude) là chế độ model tự sinh thêm một chuỗi suy luận nội bộ trước khi trả lời; chuỗi đó chiếm context window, làm tăng độ trễ, và với Claude được tính tiền như token output. - [Chọn OpenAI, Anthropic, Gemini hay open-weight cho khách: dữ liệu đi đâu quan trọng hơn bảng xếp hạng](https://fdetimes.net/vi/phan-tich/chon-nha-cung-cap-model-cho-khach-hang.md): Chọn nhà cung cấp model là quyết định dùng API thương mại nào (OpenAI, Anthropic, Gemini) hay tự host một model open-weight, dựa trên hiệu năng, cách giữ dữ liệu, vùng xử lý dữ liệu và hợp đồng cloud khách đang có. - [Multi-agent: song song hóa việc đọc, giữ việc ghi ở một luồng](https://fdetimes.net/vi/phan-tich/multi-agent-khi-nao-dang-dung.md): Hệ thống multi-agent là kiến trúc trong đó nhiều agent LLM, thường gồm một agent điều phối và các subagent, cùng chia nhau xử lý một nhiệm vụ thay vì để một agent làm tuần tự từ đầu đến cuối. - [Từ 25% đến 50% thời gian ở chỗ khách: vì sao hầu hết vị trí FDE không thể làm từ nhà](https://fdetimes.net/vi/phan-tich/di-cong-tac-25-50-phan-tram-fde-co-phai-o-cho-khach.md): Forward Deployed Engineer (FDE) là kỹ sư phần mềm được đưa đến làm việc cùng khách hàng để triển khai và tùy biến sản phẩm ngay trong môi trường thật của họ, thường phải dành một phần đáng kể thời gian tại chỗ khách. - [Phỏng vấn FDE: vòng code chưa biến mất, nhưng không còn là bộ lọc chính](https://fdetimes.net/vi/phan-tich/cognition-phong-van-fde-bang-mo-phong-khach.md): Vòng decomposition là dạng phỏng vấn FDE trong đó ứng viên nhận một bài toán doanh nghiệp mơ hồ, thường do người phỏng vấn đóng vai khách hàng đưa ra, và được chấm trên cách họ hỏi, làm rõ phạm vi rồi chia nhỏ vấn đề, chứ không chấm trên code. - [Từ software engineer sang FDE: code production chỉ là tấm vé qua cửa](https://fdetimes.net/vi/phan-tich/tu-software-engineer-sang-fde-loi-the-va-khoang-trong.md): Forward Deployed Engineer (FDE) là kỹ sư viết code chất lượng production ngay bên trong hệ thống của khách hàng. Họ chịu trách nhiệm cả ba việc: xác định cần xây gì, hiểu vì sao nó quan trọng với doanh nghiệp, rồi deploy và scale nó. - [Khi agent viết code, việc của FDE dồn về ba chỗ: định nghĩa, ràng buộc và phán xét](https://fdetimes.net/vi/phan-tich/agentic-ai-thay-doi-fde.md): Trong bối cảnh agent lập trình, việc của FDE gồm ba phần: định nghĩa bài toán và người dùng, đặt ràng buộc để chỉ đạo agent, và phán xét xem kết quả có tạo ra giá trị thật cho khách hàng hay không. - [Cửa FDE cho kỹ sư Việt nằm ở các lab đòi có mặt, không ở tin ghi “Remote”](https://fdetimes.net/vi/phan-tich/co-hoi-fde-cho-ky-su-viet.md): Trong tin tuyển Forward Deployed Engineer, “remote” chỉ là nhãn hình thức làm việc. Điều kiện thật nằm ở ba chỗ: phải có mặt ở đâu, phải đi khách hàng bao nhiêu phần trăm thời gian, và ai được phép nộp đơn. - [FDE tốn khoảng 400.000 USD mỗi năm: mô hình chỉ scale được khi mỗi lần deployment làm lần sau rẻ hơn](https://fdetimes.net/vi/phan-tich/mo-hinh-fde-co-scale-duoc-khong.md): Forward deployed engineer (FDE) là kỹ sư làm việc ngay trong môi trường của khách hàng để đưa sản phẩm vào vận hành thật, rồi mang những gì học được ở hiện trường về lại sản phẩm lõi. - [Palantir chia việc FDE cho hai người, hai startup AI dồn cả vào một người](https://fdetimes.net/vi/phan-tich/fde-palantir-va-fde-startup-ai.md): Mô hình Delta/Echo là cách Palantir ghép một kỹ sư viết code tại chỗ khách hàng (Delta, tức FDE) với một chiến lược gia triển khai (Echo) lo quan hệ và quy trình, để giải pháp vừa chạy đúng vừa được khách hàng dùng thật. - [Công ty AI y tế tuyển FDE nhưng kinh nghiệm y tế chỉ là điểm cộng](https://fdetimes.net/vi/phan-tich/fde-chuyen-sau-nganh-hay-lam-generalist.md): FDE T-shaped là kỹ sư có một năng lực cốt lõi đủ sâu (đi vào thực tế vận hành của khách hàng rồi xây giải pháp khớp với thực tế ấy), cộng với bề rộng có được sau khi làm qua nhiều ngành, thay vì chuyên sâu một vertical chọn từ trước. - [Tỷ lệ pass là quyết định sản phẩm, và đó là việc của FDE](https://fdetimes.net/vi/phan-tich/eval-thanh-ky-nang-cot-loi.md): Eval là bài kiểm thử cho hệ thống AI: đưa một input vào, rồi áp logic chấm điểm lên output để biết hệ thống có đạt yêu cầu hay không. - [Ranh giới giữa FDE và consultant không nằm ở tốc độ, mà ở nơi bài học chảy về](https://fdetimes.net/vi/phan-tich/fde-co-phai-consulting.md): Forward Deployed Engineer (FDE) là kỹ sư phần mềm làm việc trực tiếp với khách hàng để xây hệ thống chạy production, chịu trách nhiệm đến kết quả và đưa bài học từ deployment quay về định hình sản phẩm. - [Ba tin tuyển dụng, một nấc thang: lương FDE từ 1 năm đến 8 năm kinh nghiệm](https://fdetimes.net/vi/phan-tich/luong-va-thang-tien-fde.md): Lộ trình thăng tiến FDE là chuỗi bậc từ kỹ sư mới vào nghề lên senior rồi quản lý đội FDE, có thể đọc trực tiếp từ yêu cầu kinh nghiệm và dải lương trong tin tuyển dụng công khai. - [Vì sao OpenAI và Anthropic đồng loạt dựng đội FDE](https://fdetimes.net/vi/phan-tich/vi-sao-cong-ty-ai-lap-doi-fde.md): Forward Deployed Engineer (FDE) là kỹ sư làm việc trực tiếp bên trong tổ chức khách hàng để biến một sản phẩm AI thành hệ thống chạy được trong thực tế, đồng thời mang bài học từ hiện trường về cho đội sản phẩm. ## Tin tức (Tiếng Việt) - [Medplum cho FDE làm thay PM, và quy trình bắt đầu gãy khi đội FDE lớn dần](https://fdetimes.net/vi/tin-tuc/product-management-without-product-managers-a-conversation.md): Mô hình FDE kiêm PM là cách tổ chức trong đó chính các forward deployed engineer tiếp nhận yêu cầu, xếp thứ tự ưu tiên và đưa tín hiệu từ khách hàng vào roadmap, thay cho một đội product manager riêng. - [Fyxer nói 90% người dùng vẫn hoạt động sau ba tháng: FDE nên hỏi gì trước khi tin con số này](https://fdetimes.net/vi/tin-tuc/how-fyxer-built-an-ai-executive-assistant-people-trust.md): Retention theo cohort là tỷ lệ người dùng trong một nhóm bắt đầu cùng thời điểm vẫn còn hoạt động sau một khoảng thời gian, và tỷ lệ này chỉ có nghĩa khi đã định rõ nhóm đó và thế nào là "hoạt động". - [Hai cha đẻ Kubernetes muốn kéo agent khỏi laptop lên cloud](https://fdetimes.net/vi/tin-tuc/can-a-cloud-native-harness-make-agents-reliable-beyond-the.md): Agent harness là lớp phần mềm bao quanh model, gồm vòng lặp agent, môi trường thực thi công cụ và trạng thái phiên làm việc, quyết định agent chạy ở đâu, cho ai và với quyền gì. - [Cổng duyệt cuối cùng của agent: bỏ hay giữ là câu hỏi FDE phải trả lời](https://fdetimes.net/vi/tin-tuc/the-last-human-gate-forward-deployed-engineering-for.md): Approval gate là điểm chặn trong workflow của agent, nơi hành động phải chờ một người có thẩm quyền duyệt trước khi được thực thi. - [Eval đang trở thành "definition of done" của FDE, và thành cả điều khoản hợp đồng](https://fdetimes.net/vi/tin-tuc/the-definition-of-done.md): Eval là bài test cho hệ thống AI: đưa một input, áp logic chấm điểm lên output để đo mức độ thành công, và khi được hai bên thống nhất trước, nó trở thành định nghĩa "xong" của một engagement. - [Chiều rộng bắt đầu có giá: execution rẻ đi, phán đoán đa lĩnh vực lên giá](https://fdetimes.net/vi/tin-tuc/breadth-finally-pays.md): Chiều rộng (breadth) trong tuyển dụng kỹ sư là khả năng phân biệt đúng–sai ở nhiều lĩnh vực thay vì đi sâu một đường, thứ thị trường từng xem nhẹ vì khó đánh giá. - [Perplexity tin GPT-6 Astra chạy hệ thống end-to-end, nhưng chưa công bố số liệu nào](https://fdetimes.net/vi/tin-tuc/perplexity-trusts-gpt-6-astra-with-end-to-end-systems.md): Tin cậy end-to-end là việc để một model tự xử lý trọn vòng lặp gửi tin nhắn, sửa phần mềm và giám sát production, con người chỉ bước vào khi cần thay vì duyệt từng bước. - [Tin tuyển FDE tăng hơn 1.000%, nhưng chưa ai đo được công việc thực sự là gì](https://fdetimes.net/vi/tin-tuc/the-word-is-growing-faster-than-the-job.md): "Từ chạy nhanh hơn nghề" là tình trạng một chức danh lan rộng trong tin tuyển dụng nhanh hơn tốc độ thị trường thống nhất về việc người giữ chức danh đó thật sự làm gì. - [Benchmark mới cho agent làm FDE: cổng nghiệm thu chặn mọi run "train mà không học" trước khi khách trả tiền](https://fdetimes.net/vi/tin-tuc/trains-but-doesn-t-learn-a-post-training-delivery-benchmark.md): TBDL (trains but does not learn) là kiểu thất bại âm thầm trong post-training: loss giảm, mọi tín hiệu giám sát đều xanh, nhưng model giao đi không hơn gì base model. - [Khảo sát State of FDE 2026 đóng ngày 9/10: đo công việc thay vì đếm chức danh](https://fdetimes.net/vi/tin-tuc/the-state-of-fde-2026-survey-is-open.md): State of FDE 2026 là khảo sát do FDE Hub tổ chức nhằm đo công việc thực tế của Forward Deployed Engineer qua chính câu trả lời của người làm nghề, thay vì đếm số người mang chức danh FDE. ## Data - [Roadmap (JSON)](https://fdetimes.net/api/roadmap.json): The stages of becoming an FDE. - [FDE jobs (JSON)](https://fdetimes.net/api/jobs.json): Open FDE roles; the refresh time is in the generated_at field. - [Full text of the guides (Vietnamese)](https://fdetimes.net/llms-full.txt): Every guide and the roadmap as Markdown.