5 projects to build your AI engineering competency
I've spent the last 2 years building and interviewing candidates for AI Engineering roles. So I've been fortunate enough to watch the career track evolve from being a fringe amorphous role fueled by hype to a growing discipline in and of itself.
AI Engineering as a term is still pretty fuzzy but for the purposes of this blog post, I define an AI Engineer as an engineer whose primary expertise is developing systems and solutions which integrate AI platforms and stacks.
It's an intersection of skills borrowing from the Machine Learning engineer who primarily focuses on developing and integrating models and software engineer which focuses on developing and integrating software systems. The ideal AI engineer borrows from these disciplines to build solutions that use some of the best parts of both disciplines.
While relevant skills are still evolving, there are some core competencies I wish I could see in more candidates. Rather than drop a vague list of things to read, I am framing growth areas as challenging projects that can be worked on. Here are 5 projects that I believe if worked on earnestly will set you apart in AI Engineering competency.
1. Build your own classification model using only embeddings
Because vector embeddings are semantically rich, they contain a lot of information that can be used to infer and approximate many different properties. You can take advantage of this to build a classification pipeline that requires no additional model training.
For this project, consider a sentiment or content classification problem, as you ingest new data you should give them class labels however you only have embeddings and optionally your vector DB as tools.
2. Build a RAG pipeline with no Vector DB
These days RAG tends to be synonymous Vector DB, but the R in RAG stands for retrieval which can be done using interesting and unconventional mechanisms. In fact, one could make a very good case that search engines were the original RAG. Agent harnesses that operate on file systems are also just RAG pipelines that use grep as their retrieval mechanism.
In this project, you should implement a rag pipeline using a retrieval mechanism that does not rely on embedding vectors. The goal is to find different mechanisms for retrieving the best context for generation. To improve upon it, try combining multiple mechanisms for a hybrid retrieval process. Finally introduce embeddings as another piece of the hybrid mechanism.
3. Build your own Claude Code
Claude Code, Codex, Gemini CLI et all, stand out today as a very impressive agent harnesses that most engineers should have interacted with in some capacity. While they are fun to use, at their core, they are straight forward agent loops wrapped around elaborate TUIs.
In this project, you should design and build your own coding harness, you should be able to supply instructions to the Agent, enable them to read, write and search for files, and optionally execute code that they generate. Bonus content here would be paying special attention to safety. Files could contain malicious instructions which prompt the agent to act against the interests of the user. Attempt creative ways to mitigate the damage for example executing scripts inside docker containers.
4. Train your own LoRA adapter
This will push you to learning to work with and evaluate your own local models. Being able to train/fine-tune for your own usecases gives you a lot of control over how your model behaves and will teach you a lot about why the models do what they do and how to make the most out of them.
For this project, you will want a usecase to train. For example, within the stable diffusion community, a common interest is style transfer or model style consistency. You want to train a LoRA adapter on a model locally (On a 16GB macbook pro, you can train very small LoRAs quite comfortably). You want some kind of mechanism to evaluate the model's performance after the training to see the delta in the behavior.
5. Build your own inference server
There are popular frameworks for building and deploying LLMs such as vLLM, Llama.cpp and Ollama. However they are built on top of some lower level tooling that you can also build on top of - most notably HuggingFace Transformers, building your own inference framework opens the door building on and serving custom unorthodox models as well as applying new and emerging techniques before the go mainstream.
For this project, you want to write your own inference server for the model you created on the previous project. You'd need to load the model accept input via and API and generate the output. Where this gets challenging is making it fast. Consider KV caching, Prompt caching and Batch generation. Because resources are often scarce how do you process as many concurrent requests as possible while being as memory efficient as possible.
Resources
- Huyen, C. (2024) AI Engineering. Available at: https://learning.oreilly.com/library/view/ai-engineering/9781098166298/ (Accessed: 2026-4-20) - This is a really good general intro into the field, if you are completely new to this, read this book first.
- Gilbertson, D. (2025) Text classification with vector embeddings — and no ML model. itnext.io. Available at: https://itnext.io/text-classification-with-vector-embeddings-and-no-ml-model-c793c09698f0 (Accessed: 2026-4-20).
- Moreno, R. (2025) How we built our own Claude Code. www.tinybird.co. Available at: https://www.tinybird.co/blog/how-we-built-our-own-claude-code (Accessed: 2026-4-20).
- Tahir, N. (2024) RAG is not just text. nishtahir.com. Available at: https://nishtahir.com/rag-is-not-just-text/ (Accessed: 2026-4-20).
- Green, C. (2025) How to train a LoRA. diffusiondoodles.substack.com. Available at: https://diffusiondoodles.substack.com/p/how-to-train-a-lora (Accessed: 2026-4-20).
- Vatsa, T. (2025) LLM inference: Inside a Fast LLM inference server. pub.towardsai.net. Available at: https://pub.towardsai.net/llm-inference-inside-a-fast-llm-inference-server-d551f7bfcc97 (Accessed: 2026-4-20).