Hello, my name is
Jalal Sayed
Electronic and Software engineering student at UofG
- contact@jalalsayed.com
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
Hardware
With knowledge in Digital Design and VHDL, I can design, simulate and test Digital Design to find optimal solutions.
Software
I use Python and C in addition to my problem-solving skills to write robust, clean, well-documented code.
Skills
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
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).
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).
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.
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.
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.
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.
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.
Heart rate measurement system:
A tool used to track the heartbeat, which is a two-part pumping action that takes about a second.
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.
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.
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.
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.
Robotic Arm:
An electromechanical system that replicates the articulated motion of human arms. The one developed here is for limb replacement.