Career guide

AI Engineer vs ML Engineer vs Software Engineer

The titles get mixed up in job ads and on social media. Here's what each role actually does day to day, where they overlap, and which one fits you.

SWEMLEAIEPython, dataAPIs, testingEvals, metricsproduction
Highlight a column:
Software EngineerML EngineerAI Engineer
Core questionHow do we build this system so it's correct, fast and maintainable?How do we train a model that predicts this well from our data?How do we turn an existing foundation model into a reliable product?
A typical dayDesign APIs, write and review code, fix bugs, improve CI/CD, handle on-callClean data, engineer features, run training experiments, tune, deploy and monitor modelsDesign prompts and context, build RAG and tool integrations, write evals, tune cost and latency
Main inputsRequirements, specs, existing codeLabeled datasets, features, compute (GPUs)Pretrained models (via API or open weights), company docs and data, tools
OutputServices, apps, infrastructureTrained model artifacts + training/serving pipelinesChatbots, copilots, agents, LLM-powered features and workflows
Math depthLow to medium (algorithms, complexity)High: statistics, linear algebra, calculus, optimizationMedium: probability, vectors, metrics. Enough to reason about models
Typical toolsPython/TypeScript/Go/Java, SQL, Docker, Kubernetes, Git, CIPyTorch, scikit-learn, pandas, Spark, MLflow/W&B, feature storesLLM APIs & SDKs, vector DBs, eval & tracing tools, MCP, agent frameworks
How quality is measuredTests pass, uptime, latency, bug ratesOffline metrics (AUC, F1, loss) and online A/B testsEval suites (code checks + LLM-as-judge + humans), user feedback, cost per task
Nature of bugsDeterministic: same input, same failureStatistical: data drift, overfitting, leakageProbabilistic: hallucinations, prompt regressions, injection, retrieval misses

The honest summary

AI engineering is software engineering with a probabilistic component in the middle. You rarely train models. You design what goes into them (context), what they can do (tools), and how you know they're working (evals).

ML engineering lives closer to the model itself: data, training, and serving. When an AI team decides to fine-tune or distill a model, ML engineers usually lead that work.

The overlap is growing. Strong AI engineers understand loss, overfitting and evaluation metrics. Strong ML engineers increasingly build LLM systems. Strong software engineers move into either with the right practice.

Which path fits you?1/4

Which problem sounds most fun to you?