Responsibilities
- Researching, evaluating, and integrating state-of-the-art NLP models and RAG frameworks (e.g., Transformers, BERT, GPT variants, Vector Databases, Semantic Search).
- Mentoring junior team members on the team, sharing knowledge, and advising the best machine learning and software engineering practices and approaches.
- Establishing and maintaining robust communication channels with other cross-functional teams to facilitate the integration of machine learning solutions into other Unifonic products.
- Developing and optimizing highly confident machine learning algorithms and models and creating/exposing the service APIs using frameworks such as Flask, FastAPIs, or other relevant frameworks.
- Staying up to date with the latest machine learning research papers, and AI trends (i.e. Generative AI).
- Collaborating with the data engineering team and other teams to collect and analyze extensive datasets, extracting insights and patterns, in real-time, near-real-time, or batch processing mode.
- Implementing proof of concepts and prototypes to demonstrate the potential of new AI use cases and innovations.
- Building scalable, maintainable machine learning services, which should handle thousands of requests per second, and help to perform the required load tests to meet the SLA.
- Reviewing the code of other team members and suggesting improvements to ensure the SOLID principles and clean architecture.
- Assisting in the project documentation and demos.
Requirements
- Proven experience designing and implementing RAG systems, including familiarity with various retrieval strategies (e.g., BM25, dense retrieval, hybrid approaches) and knowledge graph integration.
- Hands-on experience with LLM orchestration frameworks such as LangChain, LangGraph, CrewAI, or similar tools for building and managing autonomous agents.
- Deep expertise in various NLP techniques and models, including but not limited to: Transformer architectures (e.g., BERT, GPT, T5, LLama, Mistral) Large Language Models (LLMs) and their fine-tuning/adaptation Vector embeddings and similarity search Text classification, named entity recognition (NER), sentiment analysis, summarization, and question answering.
- Hands-on 3-5 years of relevant work experience as a Machine Learning Engineer.
- Hands-on 3+ years of experience with Python.
- Excellent analytical abilities, with the capacity to collect, organize, and analyze large datasets to glean valuable insights.
- End-to-end experience in training, evaluating, testing, and deploying machine learning products in production.
- Ability to write world-class code in Python (SOLID principles), considering the best software engineering fundamentals, i.e. data structures, algorithms, and data modeling
- Solid experience in ML frameworks such as NumPy, Pandas, Scikit-Learn, PyTorch, Keras, BERT, Tensorflow, and similar.
- Mastering data science needed skills like SQL, hypothesis testing, Data cleansing, data augmentation, data pre-processing techniques, and dimensionality reduction.
- Excellent understanding of Machine learning techniques like Naive Bayes classifiers, SVM, Decision Tree, KNN, K-means, Random Forest, modeling and optimization, evaluation metrics, classification, and clustering.
- Experience with the Hugging Face libraries (i.e. transformers).
- Experience fine-tuning pre-trained models and using vector search to enhance LLMs results.
- Experience with LLM frameworks (i.e. LangChain) and prompt engineering techniques.
- Familiar with code versioning tools such as GIT, CI/CD concepts, and toolchains.
- Familiar with Agile methodologies i.e. scrum and kanban.
- Ability to develop high-level architecture and low-level design, End-to-end for a specific project.
- A Bachelor’s degree in a relevant field. (e.g. Computer Science, Computer Engineering, Software, etc).
- Excellent communication and collaboration skills.
Nice to Have
- Basic knowledge of Kubernetes and Docker is nice to have.
- Experience in event sourcing patterns and tools i.e. Kafka, RabbitMQ, or similar is a plus.
- Experience with LLM frameworks (i.e. LangChain) and prompt engineering techniques is nice to have.
- Experience in event sourcing patterns and tools i.e. Kafka, RabbitMQ, or similar is a plus.
- General knowledge of Data warehouse tools e.g. Vertica is a plus.
Benefits
- Competitive salary and bonus.
- Unifonic share scheme (we are all owners!).
- 30 holiday days after the first anniversary.
- Your Birthday off!
- Spend up to 25 days per year working from anywhere in the world!
- Paid leave for new parents.
- LinkedIn learning license.
Work Arrangement
Hybrid
Team
Team size: 500. Structure: Engineering team
Additional Information
- Good level of spoken and written Arabic and English.
