Summer Internship

Why Choose Our Internships

– Fascinating topics across various domains.

– Work closely with experienced mentors.

– Apply theoretical knowledge to real-world challenges.

– Experiencing dynamic and supportive ecosystem.

– Contribute meaningfully to projects that matter.

– Enhance your skills in areas including (but not limited to) ML, deep learning, software development, data analysis, and more.

How to apply

1. Read Project Descriptions Carefully: Take your time to thoroughly review the project descriptions. Understand the goals, requirements, and expectations associated with each project.

2. Select Your Project Thoughtfully: Choose a project that aligns with your interests, skills, and aspirations.

3. Complete the Application Form with Care: Once you’ve decided on a project, fill out the application form. Provide accurate information, showcase your enthusiasm, and highlight relevant experiences.

Deadlines

Application Deadline:  May 28, 2025 (7 Khordad)
Notification for Acceptance (Normal Applications): June 1, 2025 (11 Khordad)
Late Application Deadline:  June 13, 2025 (23 Khordad)
Notification for Acceptance (Late Applications): June 20, 2025 (31 Khordad)

Projects

Preferred number of apprentices: 1

Background
Python
Deep Learning
Transformers (preferred)
Computer Vision

Description
This project aims to train talented individuals to collaborate on the development of emotional image captioning techniques and visual language models. The focus is on combining computer vision and natural language processing to generate emotionally-aware captions for images using modern deep learning frameworks.

Goals

      • Develop and fine-tune a model for emotional image captioning
      • Integrate emotion recognition into a visual-language model pipeline
      • Evaluate model performance on emotional and semantic accuracy

Planning

      • Introduction to visual language models and emotional captioning
      • Study of transformer-based architectures for image and text processing
      • Development and training of emotional image captioning model
      • Evaluation and improvement based on quantitative and qualitative feedback

Future Works

      • Expand the emotional captioning system to support multilingual output
      • Integrate the model into real-world applications such as assistive technology, content moderation, or mental health tools

Preferred number of apprentices: 1

Background
Python
Camera models
Deep Learning
Transformer Architectures (preferred)

Description
This project aims to mentor motivated individuals in the research and development of systems that utilize large language models (LLMs) for interpreting geospatial images. The focus is on integrating satellite imagery or map data with advanced language models to automatically generate coherent and informative textual explanations of geographic content.

Goals

      • Build a prototype system for geographic image explanation
      • Adapt and fine-tune large language models for geospatial tasks
      • Design evaluation metrics for geographic and semantic accuracy

Planning

      • Introduction to geospatial data and remote sensing imagery
      • Review of vision-language models and relevant datasets
      • Model training on aligned image-text data with a geographic focus
      • Evaluation and refinement of geographic image explanation outputs

Future Works

      • Incorporate temporal data for dynamic geographic storytelling
      • Apply the system to environmental monitoring, disaster response, or geographic education

Preferred number of apprentices: 1

Background
Linux
Parallel Programming (MPI/OpenMP)
Python or C++
HPC Infrastructure (preferred)

Description
This project aims to train motivated individuals in the design, implementation, and optimization of applications for High Performance Computing (HPC) environments. The focus is on leveraging parallel computing frameworks to solve computationally intensive problems efficiently, with potential applications in science, engineering, and data analysis.

Goals

      • Understand the fundamentals of HPC architectures and parallel programming
      • Develop and optimize a scalable HPC application or simulation
      • Benchmark performance and identify bottlenecks

Planning

      • Introduction to HPC systems, parallelism models, and workload types
      • Hands-on practice with MPI and/or OpenMP for distributed and shared memory computing
      • Design and implementation of a selected HPC application or algorithm
      • Performance profiling and iterative optimization

Future Works

      • Expand to heterogeneous computing (GPU acceleration, hybrid models)
      • Integrate with scientific workflows and real-world simulations

Preferred number of apprentices: 1

Background

Linux
OCI Containers (Docker or Podman) (preferred)
Ansible (Bonus)
Security tools (Bonus)
Knowledge of common vulnerabilities (Bonus)

Description

This project aims to train talented people to cooperate in completing the automation of HPC services deployment and security audit.

Goals

      • Automating deployment and security audit of HPC services.

Planning

      • Introduction to Containerizing, Ansible and automation

      • Introduction to CI/CD pipelines

      • Automating deployment of remaining systems

      • Adding security audits to CI/CD pipeline

Preferred number of apprentices: 1

Background

Good knowledge of C++ and low level programming
Good knowledge of common algorithms and data structure
Knowledge of amd64 (64-bit Intel or AMD processor) assembly (Bonus)
Knowledge of operating system scheduling (Bonus)
Knowledge of CPU memory system hierarchy (Bonus)

Description

This research project aims to maximize the resource utilization of a program in a shared resource environment such as cloud or clusters. In these environments many resources are shared between all the running processes. While operating systems manage some of these resources (such as CPU time), other processes might compete for others. This competition directly influences the total execution time of operations. The aim of this project is to maximize the resource utilization and gain the maximum possible performance for the implemented algorithms by implementing them based on the systems behavior rather than providing a general implementation.

Goals

      • Providing implementations of the common algorithms that gain maximum performance in shared resource environments

Preferred number of apprentices: 1

Background

Good knowledge of Python
Knowledge of PyTorch or Tensorflow (preferred)
Knowledge of Language models (Bonus)
Knowledge of common vulnerabilities (Bonus)
Knowledge of other programming languages (C/C++ in particular, preferred)

Description

This research project aims to detect vulnerabilities in software using language models. There are many possible vulnerabilities that could slip in to the software, there are many tools that aim to identify these vulnerabilities and in recent years, researchers hope to better perform this task using language models instead of static and deterministic analysis.

Goals

      • Creating a tool to identify one or more classes of vulnerabilities in software using a language model

Planning

      • Studying language models

      • Studying common vulnerabilities

      • Reviewing literature

      • Identify a potentially identifiable class of vulnerabilities

      • Creating a tool to identify the mentioned vulnerability

Preferred Number of Apprentices: 3

Background

Frontend: HTML5, CSS3, JavaScript (ES6+), React (preferred)
Backend: Java, Spring Boot
Databases: MySQL and MongoDB using JDBC
Infrastructure and DevOps: Docker, Docker Compose, Git, basic Kubernetes concepts
Architecture: Microservices, RESTful APIs
Additional Knowledge (optional): CI/CD pipelines, container orchestration, API gateways

Description

This internship program is designed to train participants in full-stack web development and cloud-native architecture. Interns will work on enhancing and modularizing an existing enterprise web application, the IPM portal, along with its related sub-projects.

Participants will gain hands-on experience in developing microservices, integrating multiple databases, and deploying containerized services using modern development workflows.

Goals

      • Develop and maintain scalable web applications using Java and Spring Boot

      • Build responsive and interactive user interfaces with modern JavaScript

      • Design and implement microservices with a focus on modularity and maintainability

      • Containerize backend services using Docker for development and deployment

      • Integrate and manage data using both MySQL and MongoDB through JDBC

      • Collaborate using Git and follow version control best practices

      • Get introduced to DevOps concepts, including container orchestration and CI/CD

Planning

      • Project onboarding and environment setup

      • Introduction to microservice architecture and containerization

      • Feature development and integration into the IPM portal

      • Refactoring monolithic components into microservices

      • Implementing JDBC-based database connectivity for SQL and NoSQL systems

      • Participation in agile development practices and code reviews

Future Works

Participants who complete the program may be invited to continue with further development work, including expanding system features, implementing CI/CD pipelines, improving system performance, and contributing to cloud deployment strategies.

Preferred number of apprentices: 1

Background

Python
Deep Learning
Computer Vision
Generative Models (preferred)

Description

This project aims to guide motivated individuals in the development of a robust deepfake detection system capable of identifying fake images generated by both GAN-based and diffusion-based models. With the rapid evolution of generative models, traditional deepfake detection techniques are becoming less effective. This internship will focus on building a model that generalizes across multiple deepfake generation paradigms using advanced deep learning techniques.

Goals

      • Develop a unified model architecture that detects deepfakes created by GANs and diffusion models
      • Gather and explore existing datasets of real, GAN-generated, and diffusion-generated images
      • Evaluate model robustness across different generation methods and manipulation techniques

Planning

      • Introduction to generative models: GANs and diffusion-based synthesis
      • Study of state-of-the-art deepfake detection techniques
      • Development and training of a dual-capability detection model
      • Performance benchmarking on mixed-source datasets
      • Implement visualization techniques to interpret model decisions and highlight key features used to detect synthetic content

Future Works

Expand the model to detect deepfakes in videos and multimodal content
Develop interpretability tools to visualize how the model distinguishes real from fake
Integrate the detection pipeline into content verification tools or media forensics platforms

Preferred number of apprentices: 1

Background

Python
Basic knowledge of Docker
Front-end development (HTML, CSS, JavaScript – basic proficiency)
Working with REST APIs
Basic understanding of databases (SQL or NoSQL)

Description

This internship project is focused on developing a simple and functional user interface for a container management system. The goal is to provide a user-friendly front-end that interacts with container orchestration logic via APIs, making it easier to view, manage, and monitor Docker containers. The system will be designed to support basic operations like viewing running containers, starting/stopping them, and accessing container metadata.

Goals

      • Design and implement a minimal front-end interface for container management
      • Connect the interface with backend APIs for Docker container operations
      • Ensure data from the database is displayed and updated correctly in the UI
      • Keep the system lightweight, easy to understand, and user-friendly

Planning

      • Introduction to Docker and container management concepts
      • Set up the backend API and database integration (provided or guided setup)
      • Develop front-end components for displaying and controlling container states
      • Test API communication and UI functionality
      • Ensure responsive and accessible design principles in the front-end

Future Works

Add user authentication and role-based access to the interface
Extend support to visualize container metrics (CPU, memory, etc.)
Integrate with container orchestration platforms like Docker Compose or Kubernetes (as a stretch goal)

Background

Python
Basic understanding of signal processing
Matlab (Preferred)
Introductory knowledge of machine learning models
Optional: Experience with MNE-Python or other EEG-related toolkits

Description

This internship project focuses on analyzing electroencephalogram (EEG) signals and building a machine learning pipeline to classify different mental or physiological states based on the recorded brainwave data. The goal is to process raw EEG signals, extract relevant features, and train a supervised learning model for accurate classification. This project is ideal for biomedical data analysis or applied machine learning students.

Goals

      • Preprocess EEG signal data (filtering, artifact removal, segmentation)

      • Extract meaningful features from EEG time series

      • Train and evaluate machine learning models for classification tasks

      • Visualize EEG signals and model results

Planning

      • Introduction to EEG signal structure and common preprocessing techniques

      • Work with open EEG datasets

      • Perform data cleaning, normalization, and segmentation

      • Implement and compare multiple classification models

      • Use cross-validation to evaluate model performance

      • Visualize performance metrics and key signal features

Future Works

Explore deep learning methods (e.g., CNNs, RNNs) for improved accuracy
Develop a simple GUI to load EEG files and run classification in real time
Extend to multi-class classification for more complex brain state detection
Investigate feature importance and interpretability of trained models

Preferred number of apprentices: 1

Background

Go
Python
Distributed Systems
Linux / Bash / Docker
PyTorch or TensorFlow (basic understanding)
Parallel Computing or HPC concepts (preferred)

Description

This project aims to train apprentices in designing and building distributed systems to support scalable and efficient AI workloads. The focus is on applying distributed computing techniques—such as data parallelism, model sharding, and resource orchestration—to enable high-performance AI training and inference across multi-node environments.