Hello, my name is

Jalal Sayed

Electronic and Software engineering student at UofG

Jalal Sayed image
About me

Electronics and Software Engineering student working toward a passion.

A little bit more about me:

I am currently engaged in a part-time role that involves FPGA programming, where I actively contribute to implementing an open-source image for the Xilinx Zynq family. My primary focus revolves around utilizing VHDL to create a signal generation, demonstrating my adeptness in working with Xilinx Vivado and Field-Programmable Gate Arrays (FPGA). This role not only sharpens my technical skills but also emphasises the importance of teamwork and collaborative efforts in achieving project milestones.

I possess significant expertise in programming languages such as Python and C, specifically focusing on their application within the area of Embedded Systems. I’ve accumulated substantial hands-on experience in utilising Python and C to engineer and optimise various Embedded Systems. These skills enabled me to contribute effectively to diverse projects, showcasing the potential for innovation and problem-solving.

What I do


With knowledge in Digital Design and VHDL, I can design, simulate and test Digital Design to find optimal solutions.


I use Python and C in addition to my problem-solving skills to write robust, clean, well-documented code.



Recent Experience

Sep 2023 - Present

Quantum Circuit Group

FPGA Programming

Implement an open-source image for the Xilinx zynq FPGA family to make a signal generater using VHDL.

Sep 2022 - Present

UofG IT Helpdesk

Student IT helpdesk assistant

Part-time role providing 1st-level IT Helpdesk support for students and staff as part of the Information Services support service, utilising the Enterprise Service Management system to respond to user queries.

Jun 2023 - Sep 2023

UofG Sport

Radar MCU application Engineer

Perform software and hardware diagnostic to new Radar processors and evaluation boards including register-level C programming.

Technical Portfolio

0 +
  • OS scheduling algorithms:

Using OOP in Python, I implemented the most popular OS scheduling algorithms: First Come First Serve (FCFS), Shortest Job First (SJF), Round Robin (RR) and Shortest Remaining Time First (SRTF).

Find out more about it..

  • File transfer system:

Using Socket library, it enables a host to share files with a server where host can upload files to server (PUT), download files from server (GET) or explore the files in server (LIST).

Find out more about it..

  • Face detection:

From user’s camera and using OpenCV, it detects all human faces and eyes in the video and draws a rectangle around them identifying their location.

Find out more about it..

  • Image template matching:

Taking two images, one is a sub image of the other. Using OpenCV, it identify where exactly is the sub image in its original one. Then draws a rectangle around that location.

Find out more about it..

  • Networked Long-Range RF Embedded sensing Firmware:

Developing firmware to handle the communication between transmitter and receiver nodes using an ARM-based Cortex-M3 CC1310 microcontroller.

  • Web Monitoring:

Web monitoring system to count the number of visits from different domain names using an input log file.

Find out more about it..

  • Switch debounce:

To investigate switch bouncing and to cope with it in mbed – FRDM-KL25Z.
While a switch from the outside world bounces many times when clicked/pushed, our ucontroller will only react to it when it settles on a steady-state.

Find out more about it..

  • Dependency Discoverer:

Multithreaded system to process the c/yacc/lex source file arguments, outputting the dependencies between the corresponding .o file, the .c source file, and any included .h files.

Find out more about it..

  • Heart rate measurement system:

A tool used to track the heartbeat, which is a two-part pumping action that takes about a second.

Find out more about it..

  • Quicksort algorithm:

Variant implementations of the Quicksort algorithm.
QuickSort has Best case running time = O(nlogn), average time = O(nlogn) and worst time =O(n^2)
Space complexity of the algorithm = O(logn)
The algorithm is Stable.

Find out more about it..

  • Priority Queues:

It consist of 2 parts:
Part 1: Implementing in Java the Priority Queue ADT using 2 different data structures.
Part 2: Using the Priority Queue to implement an algorithm for a practical problem.

Find out more about it..


  • 8 bits shift register:

A fully featured 8-bit shift register. It has 3-bits control input which allows it to perform certain functions: holt, load parallel, shift bits right, shift left, rotate right, rotate left, arithmetic shift right and arithmetic shift right.

Find out more about it..

  • 4-to-12 Demultiplexer:

Taking 2 inputs: D (Data) and S (4-bits select line) . Outputs: Y (12 bits bus). It uses three 2-to-4 demultiplexers for the full implementation.

Find out more about it..

  • Robotic Arm:

An electromechanical system that replicates the articulated motion of human arms. The one developed here is for limb replacement.

Find out more about it..

Full profile on GitHub..