About Me
Motivated Computer Science student with a solid foundation in object-oriented programming, algorithms, and software development. Experienced in full-stack development. Available for full-time work.
I'm passionate about building efficient, scalable applications and continuously expanding my knowledge in various programming languages and frameworks. I enjoy tackling complex problems and creating elegant solutions.
Education
Bachelor of Science in Computer Science
Ariel University • 2022 - 2026
Relevant Coursework:
- Data Structures & Algorithms
- Object-Oriented Programming
- Database Systems
- Web Development
- Software Engineering
- Operating Systems
- System Design
- Network Programming
GPA: 85 / 100
Projects

Israel Bridge Federation
Building a brand-new web application for the IBF from scratch, using Next.js, TypeScript, Tailwind CSS, and Prisma. Replacing their outdated system, the project emphasizes accessibility, user-friendliness, secure payments, membership management, and an advanced rating system.
System Design Patterns
A multi-threaded server using Pipeline and Leader-Follower concurrency patterns to efficiently handle operations over TCP. Optimized performance and scalability with thread synchronization and resource management.

Netcat Clone
A custom netcat-like tool that opens clients and servers over TCP, UDP, and UNIX domain sockets. It reroutes standard input/output based on flags and even includes a Tic-Tac-Toe game you can play against the computer, showcasing how versatile network communication can be across different protocols.

ML - Text Classification
Using the 20 Newsgroups dataset, investigating the performance of various machine learning algorithms for text classification, and how does different dimensionality reduction techniques affect the results.
async def receive_data(self) -> List[bytes] | None:
"""
1. receive data from the socket and divide it into packet and frames
2. if the packet is not SYN/ACK/SYN_ACK/FIN start measuring time
3. if the stream_id is not in the streams stats dictionary,add it
"""
frames_received_counter = 0
while True:
received_data, address = self.sock.recvfrom(QUIC_PACKET.Max_size)
received_packet, received_frames = QUIC_PACKET.deserialize_data(received_data)
if received_packet.packet_flag not in (FLAGS.SYN, FLAGS.ACK,
FLAGS.SYN_ACK, FLAGS.FIN):
frames_received_counter += len(received_frames)
# GOT THE FIRST PACKET OF THE SPECIFIC STREAM, START MEASURING TIME
if received_packet.packet_flag == FLAGS.FIRST_PACKET:
if received_frames[0].stream_id not in self.streams_stats:
self.streams_stats[received_frames[0].stream_id] = Stats(received_frames[0].stream_id, 0, 0, 0,
time.time())
if OVERALL_DATA not in self.connection_stats:
self.connection_stats[OVERALL_DATA] = Stats(0, 0, 0, 0, time.time())
if len(received_frames) != 0:
self.streams_stats[received_frames[0].stream_id].frames_amount += len(received_frames)
self.connection_stats[OVERALL_DATA].frames_amount += len(received_frames)
# GOT THE LAST PACKET OF THE SPECIFIC STREAM, MEASURING END TIME
if received_packet.packet_flag == FLAGS.LAST_PACKET:
self.streams_stats[received_frames[0].stream_id].time = time.time() - self.streams_stats[
received_frames[0].stream_id].time
QUIC Multi Streams
Asynchronous multi-stream QUIC functionality with dynamic frame management, leveraging asyncio for concurrent operations.
Skills
Programming Languages
C/C++
Java
Python
TypeScript
JavaScript
HTML
CSS
SQL
Frameworks & Libraries
React
Next.js
Node.js
Symfony
Tailwind CSS
Prisma ORM
Doctrine ORM
Tools & Technologies
Git
MongoDB
MySQL
Windows
Linux
TCP/IP
Multi-threading
Resume
This is a short version of my resume. Click the button below to download the full resume.Gal Ben Ami
Computer Science Student
Profile
Motivated Computer Science student with a solid foundation in object-oriented programming, algorithms, and software development. Experienced in full-stack development. Available for full-time work.
Education
Bachelor of Science in Computer Science
Ariel University
2022 - 2026
GPA: 85/100
Projects
Israel Bridge Federation
Currently in progress
Developing IBF's brand-new website (frontend & backend) using Next.js, Prisma, Tailwind CSS, and TypeScript.
QUIC multi streams (Python)
Asynchronous multi-stream QUIC functionality with dynamic frame management, leveraging asyncio for concurrent operations.
System Design Patterns (C++)
A multi-threaded server using Pipeline and Leader-Follower concurrency patterns to efficiently handle operations over TCP. Optimized performance and scalability with thread synchronization and resource management.
Technical Skills
- C/C++, Java, Python, Shell, TypeScript, CSS, HTML, SQL
- MongoDB, MySQL
- React, Next.js, Node.js, Symfony
- Windows, Linux
- Git, Prisma ORM, Doctrine ORM
Get In Touch
Thank you for visiting my website!