Your Picture

</>

STUDENT @ PENN STATE

About Me

Hi there! My name is Amr, and I'm a Schreyer Honors Student at Pennsylvania State University majoring in Computer Engineering and minoring in Physics. I have a passion for programming and hardware design.

Throughout my academic career, I have developed a strong foundation in programming and software development, with a particular talent for C/C++, Verilog, and Python, and have written a variety of code. I try to apply what I learn in class through creative projects that fuel my interests.

When I'm not studying or working on projects, you can usually find me drawing, watching a show, or trying out new recipes in the kitchen. I'm excited to see where my career in computer engineering takes me, and I'm always looking for new opportunities to learn and grow.

Resume

My Work Experience


Software Engineer, Nittany Motorsports

C
Git
STM32
RTOS
  • Developed and debugged embedded C firmware for an RTOS-based STM microcontroller.
  • Designed and optimized data logging to an SD card integrating real time data acquisition to the car's diagnostics using SDIO and FATFS.
  • Collaborated with the team to align firmware with overall system requirements.
  • Currently adding multithreading to enhance system performance.

Enterprise SSD Firmware Engineer, Samsung Semiconductor

C
Java
HTML
CSS
Java Script
Jira
Bitbucket
Git
Linux
Bash
  • Developed human readable NVMe-CLI vendor-unique commands in C, providing a simple interface for the user to interact with a drive. This reduced the time and effort previously expended by programmers across the team by omitting the need of the NVMe spec to issue a command.
  • Created an internal tool using java to track and display missing changes from customer release firmware, improving efficiency and quality control.
  • Invited input from team members prior to the start of and throughout projects, as a means of ensuring that user needs were prioritized throughout projects.
  • Presented a summary of each project and responded to questions from technical and nontechnical peers, managers, and others across the team.

Research Assistant, APUS Lab

Python
Pytorch
  • Applied graph neural networks in Python to model complex physics systems within VTOL aircrafts in collaboration with the "Geometric Deep Learning for Dynamics on Graphs" group.

Learning Assistant, Penn State

Assembly
Verilog
Vivado
  • Assisted students in understanding Verilog, CPU architecture and FPGA design concepts.

Engineering Intern, Penn Dot

  • Collected and analyzed data for PennDOT's Roadway Management System.

My Projects


UEFI Bootloader

C
UEFI
qemu

Developed a custom Bootloader using UEFI (Unified Extensible Firmware Interface) in C, integrating UEFI for bootloader functionality and applying core operating system principles.


Dynamic Memory Allocator

C
gdb debugger
Linux

A dynamic memory allocator in C, that follows operating system and memory management principles. This project includes common memory allocation functions (like malloc, calloc, realloc, and free) and stores memory efficiently with the use of segregated free lists.


FPS Multiplayer Game

C++
Object-Oriented Programming
Unreal Engine
Networking

An online multiplyer game that makes use of impractical, comical weapons and abilities to create an enjoyable playing experience. The game is built using C++ and Unreal Engine and uses the Epic Online Service to manage player networking.


AI Powered Retro Gaming Console

Python
Raspberry PI
Linux

In this endeavor, I'm creating a retro gaming console on the Raspberry Pi, empowered with an AI-infused voice assistant. The console's buttons provide a nostalgic gaming experience, while I2S ensures high-quality sound output. My vision for the AI is to have it serve as a friendly companion, providing players with witty responses, helpful guidance, and a charming personality, elevating the overall gaming experience to new levels of enjoyment.


MDADM Memory Manager

C
Systems Programming
Networking

Robust memory manager program in C, built using concepts of memory management, networking, and systems programming. This project included the implementation of networking support, enabling users to connect to a remote JBOD server and exchange packets effortlessly. To further optimize performance, I integrated a cache system into the memory manager, resulting in substantial speed improvements by reducing memory access latency.


32-bit CPU

Verilog
Vivado
Computer Architecture

In this project, I successfully designed and implemented a 32-bit Central Processing Unit (CPU) using Verilog within the Vivado development environment. The CPU encompasses critical components such as the Arithmetic Logic Unit (ALU), control unit, registers, instruction decoder, and data paths. Through meticulous optimization and testing, I ensured the CPU's efficient functionality and performance. This project showcases my expertise in digital design and Verilog programming, demonstrating my ability to create complex and reliable CPU architectures.