Developer transition

AI for Software Engineers: Build on Your Existing Skills

Moving from software development into AI starts with a familiar responsibility: making a useful feature work for its users. Your API, database, testing and delivery skills remain relevant. The additional work is handling model responses, choosing the right context and checking behaviour that can vary between requests. Start with the part of the product you want to improve, then choose the AI depth that responsibility requires.

Choose the AI Work You Want to Own

“AI developer” and “GenAI engineer” can describe overlapping responsibilities. Read the work behind the title. Integrating a model into an application, adapting a model and operating inference infrastructure require different kinds of evidence.

Responsibilities, not job titles. Read the evidence each kind of work requires.

Work you want to take onQuestions you need to answerRelevant next step
Add AI features to a productWhat is the input contract? Which context is allowed? How will the result be checked?Build one application feature using the example below.
Improve model behaviour through data and adaptationWhat baseline fails? Is the training data suitable? Does the change help on held-out cases?Explore the <a href="/courses/generative-ai-course">Generative AI course</a>.
Run LLM inference and application operationsWhere does latency come from? What happens under load or dependency failure? How is a release recovered?Explore the <a href="/courses/llmops-course">LLMOps course</a>.
Coordinate operations across ML, LLM and agent systemsWho owns deployment, access, observation and recovery across the platform?Explore the <a href="/courses/aiops-course">AIOps course</a>.

You may eventually work across several of these areas. For your first project, choose one responsibility you can demonstrate clearly. The application example in this guide suits developers who want to add an AI capability to software they already know how to build.

Build on the Engineering Skills You Already Use

Keep learning close to that contribution. A frontend developer can build a careful review experience while learning the backend contract. A backend developer can begin with checked responses before building an agent. Someone with test automation experience can make an existing prototype easier to assess before changing its architecture.

If Python is new to you, use the Python for AI Development guide to focus on the language skills needed for these integrations. You do not have to relearn every software engineering concept in a new language.

Your existing experienceA useful starting contributionAdditional AI judgement to practise
Backend and API developmentDefine request contracts, access checks, persistence and error handling.Separate a successful model request from a useful, supported answer.
Frontend or full stack developmentBuild an interface for input, progress, results and review.Show uncertainty and incomplete responses without presenting them as finished work.
QA and test automationCreate fixtures, regression cases and reproducible failures.Add criteria for answer support and task quality alongside deterministic assertions.
Database, search or data engineeringTrack source versions, permissions and ingestion state.Check whether retrieved material actually supports the answer it is used to produce.
DevOps or SREPackage services, manage configuration and observe dependencies.Connect service health with model behaviour, usage and evaluation evidence.

Start with One AI Feature in an Existing Product

A support-reply drafting feature is a useful example. It receives a ticket and suggests a reply using approved product documentation. A person reviews the draft before it is sent. Use fictional tickets and a small documentation set while developing it.

Define the request. Accept a ticket identifier and the requested product version. Establish the user's identity on the server and check access to that ticket. Do not trust a client-supplied owner identifier to establish permission.

Prepare the context. Load the authorised ticket and documentation for the relevant product version. Treat their text as information to inspect, not as authority to change application permissions or send a message.

Define the result. Return a draft, the supporting document references and an explicit status such as draft_ready or needs_review. If the documentation does not answer the request, return a clear reason for review. Do not invent a refund promise, delivery commitment or product capability to fill the gap.

Keep the action separate. Generating a draft does not send it. The product's existing review and send operation remains responsible for that action. A model response must not skip the permission or approval checks around it.

Start with a template-based reply as the baseline. Compare the model-assisted version on the same fictional tickets. Useful cases include a question with a clear documented answer, an ambiguous request, an outdated product reference and a question the documentation cannot answer. A request for another user's ticket should be blocked before its contents reach the model.

This small feature reveals the engineering work behind AI application development: contracts, access, context, response quality and product behaviour. For a complete learning sequence, follow the AI Developer Roadmap.

Use Claude Code and GitHub Copilot with Review

Claude Code and GitHub Copilot can help you read unfamiliar code, implement a bounded change and draft tests. Using them well is also useful when the product itself has no AI feature. Building an AI application adds a separate responsibility: deciding how the model behaves inside the product.

Give the assistant a small task with a clear boundary. For example: “Add request validation to the draft-reply endpoint. Reject missing ticket identifiers, preserve the existing authorisation check, and add tests for valid and invalid requests.” Supply relevant repository context without adding secrets or unrelated customer data.

Review the diff before accepting the change. Check whether the tests exercise meaningful failures, whether the selected dependency is necessary and whether the behaviour still matches the request. Run the application and the relevant checks yourself. The Claude Code best-practices guide and GitHub Copilot responsible-use documentation are useful references for this workflow.

Vibe coding can help you explore an interface or a small prototype quickly. Before using that prototype in a project you will maintain, make its dependencies, data flow, access checks and error behaviour explicit. Be able to explain the code you keep and reproduce the failures you claim to have fixed.

Show the Decisions Behind Your Work

Keep a short change record for the feature: the original behaviour, the problem you observed, the change you made and the evidence you used to assess it. For the support example, that might mean comparing generic replies with replies grounded in versioned documentation.

Record whether each answer is supported, whether a reviewer needs to intervene, and how long the request takes. If you measure model usage, explain what was counted. A lower token count is useful only alongside the quality and task requirements you are trying to meet.

When a case fails, preserve the input and a redacted response so that you can investigate it. Separate a retrieval mistake from a generation mistake and an authorisation mistake from both. Fixing the prompt cannot substitute for fixing a permission check.

Use the AI Developer Projects guide when you want a fuller project brief. Choose one extension that demonstrates a new responsibility, such as version-aware retrieval or a controlled tool action, rather than rebuilding the same feature with several frameworks.

Questions About Moving from Software Development into AI

Can I Keep Working in Java, JavaScript or C#?

Yes. Existing applications can call model services through HTTP APIs or supported SDKs. Learn Python where it helps you use the libraries, examples and evaluation tools relevant to your work. The architectural decision is where each component belongs, not whether the whole product must change language.

Is Using an AI Coding Assistant the Same as Being an AI Developer?

Using a coding assistant is a development workflow skill. Building AI applications also involves model integration, data boundaries, output checks, evaluation and runtime behaviour. They can support each other, but being comfortable with generated code does not establish those application skills by itself.

Should I Learn Fine-Tuning Before Building an AI Feature?

Begin with the feature's requirements and a baseline. Prompt design, better input data or retrieval may address the first problem you encounter. Learn fine-tuning when you have a defined behaviour to improve, suitable examples and an evaluation that can assess the change. It is not a required first step for every application.

How Can I Make Progress Alongside a Full-Time Job?

Use a small, repeatable work cycle: implement one behaviour, test its failure cases, record the result and choose the next change. Keep the scope small enough to finish a coherent increment during the time you actually have. Reviewable progress is a better planning unit than a promise to cover a long tool list in a fixed number of weeks.

Take the Next Step in AI Application Development

If your goal is to build AI features with guidance, explore School of Core AI's AI Developer course. Review the syllabus, projects and mentor support to see how the programme builds on your software development experience.

Explore the AI Developer Course