Telegram Multilingual Translation Bot
This project is a fully automated Telegram bot that enables seamless multilingual communication in any group chat.
Key Features:
– Automatically translates every group message into each user's preferred language.
– Language preferences collected via free text ("English", "עברית", etc.)
– Supports multiple languages per group with easy dynamic updates.
– Stores preferences in a lightweight local SQLite database.
– Translates via Google Translate using deep-translator.
– Fully asynchronous Python bot using python-telegram-bot
and optimized for cloud deployments (AWS EC2).
How It Works:
– Each group member sends their preferred language as a simple text message.
– The bot responds with confirmation and stores the choice.
– Every future message gets automatically translated and grouped in one clear reply.


NES Classifier – GNN-based Protein Signal Detection
This project was completed as part of a hackathon at The Hebrew University of Jerusalem, during a university course on protein bioinformatics. The project was conducted in a team of four students, and I served as the team coordinator, managing coordination between different parts of the project including data processing, model training, and evaluation.
Project Overview:
The NES Classifier is a deep learning pipeline designed to detect Nuclear Export Signals (NES) in proteins using their 3D structures. The pipeline is based on a Graph Neural Network (GNN) architecture and provides classification results directly from .pdb protein files.
Key Highlights:
– GNN-based classification of NES signals using 3D spatial data.
– Automatic graph construction from protein residues with spatial filtering.
– Node features include amino acid encoding and NES region marking.
– Multiple models supported (EGNN by default), trained on positive/negative NES datasets.
– Full training and inference pipeline with easy user interface.
Outcome:
The project achieved robust classification results with clear separation between NES-positive and NES-negative proteins. ROC curves and boxplots were generated for evaluation.
Technologies: PyTorch, PyTorch Geometric, BioPython, scikit-learn, matplotlib


Left: ROC Curve demonstrates classification performance.
Right: Boxplot shows the distribution of confidence scores between NES-positive and NES-negative samples.

Pepse Game – Dynamic 2D Open World Simulation
A dynamic 2D open world game.
Highlights:
– Procedurally generated terrain using Perlin noise.
– Day-night cycles with sun movement, halo effects, and smooth transitions.
– Avatar with energy mechanics: depletion while moving, regeneration via collectible fruits.
– Animated weather with floating clouds and rain triggered on avatar jumps.
– Interactive flora: trees with swaying leaves and regenerating fruits.
Features:
– Component-based design for flexible object composition.
– Observer pattern for event-driven rain mechanics.
– Intuitive avatar controls (arrow keys), environmental interaction, and real-time feedback through energy bars and animations.
– Fully configurable cycle durations, world scale, and energy parameters via constants.


Categorizing Cognitive Simulator – Prototype vs. Example-Based Image Categorization
This project investigates two key cognitive theories of image categorization: prototype-based and example-based classification strategies. Using a subset of the MNIST dataset (digits 0 and 1), the project compares both methods by varying the training data size and analyzing classification accuracy.
Key Features:
– Prototype vs. Example-based classification for cognitive modeling.
– Scalable evaluation with adjustable training percentages (1% to 100%).
– Extended experiments on all digits (0-9) using additional scripts.
– Visualizations showing accuracy tradeoffs and categorization efficiency.
Methods & Tools:
– NumPy for data handling, Matplotlib for visualizations.
– IDX file reading and low-level data processing from MNIST dataset.
– Modular Python structure for experiments with minimal external dependencies.
Bricker Game – Java Breakout Clone with Advanced Collision Mechanics
A Java-based Breakout-style game.
Features:
– Multiple collision strategies: extra balls, paddle duplication, turbo mode, and life restoration.
– Lives panel with animated heart indicators.
– Adjustable grid size via command-line arguments.
– Constants-based configuration for easy game balancing.
Tech Stack: Java 17, Danogl game framework.
Note: This game runs as a standalone Java application and is not directly playable in-browser.


Personal Website – Portfolio Site
This website was developed as a personal portfolio to showcase projects and technical capabilities. Beyond just front-end development, this project involved learning and applying essential concepts of web hosting, domain management, and modern website deployment.
Project Scope:
– Full website design and implementation using raw HTML and CSS.
– Minimalist UI design focused on clean and clear user experience.
– Structuring of multiple pages with easy navigation and styling.
Technical Highlights:
– Hands-on experience with DNS configuration and domain registration.
– Setup of a custom domain with live hosting, including Google Search Console integration.
– Linking the site to external platforms (GitHub repositories, LinkedIn posts, email contact forms).
– Experience in managing file hosting via GitHub Pages and connecting site updates to version control.

Sfirat HaOmer WhatsApp Reminder – Automated Daily Notification
A lightweight Python program that sends automated WhatsApp reminders for the daily count of Sfirat HaOmer, including the corresponding Sefira.
Project Highlights:
– Calculates the current day of the Sefira count based on the Jewish calendar.
– Determines and formats the relevant Sefira for each day.
– Uses pywhatkit library to send scheduled WhatsApp messages directly to the user.
– Minimal setup: no servers, no cron jobs – runs locally with WhatsApp Web.
Technical Notes:
– Python program with zero backend dependencies.
– Sends messages via WhatsApp Web browser session, using pywhatkit.
– Simple command-line usage with real-time feedback.
Note: This script is intended for personal use and requires a logged-in WhatsApp Web session.

Screenshot: Example of a WhatsApp message automatically generated and sent by the program.