Looks way less professional than that in real life
Writes Code - Makes Robots
Projects
Click on each project for more details
Design
I have done some simple graphic design over the years. Mostly for events and activities in college.
Click on each image for more details
About
Hey there, I am Ahmed, Computer Engineering graduate from UIUC (May 2015).
I am mostly interested in embedded systems and low level software. In college, I was the president of iRobotics, the largest robotics organization in UIUC. I spent the bulk of my time playing with microcontrollers and writing software for robots in our lab.
After graduation, I worked in Qualcomm (Boulder, Co) for 3 months as a software engineer. The company announced layoffs the week I started and 2 months later I got my layoff notice.
Currently, I am a financial software developer in Bloomberg LP (Manhattan, New York Office).
Feel free to contact me with regards to any new opportunities. I have 4 years of volunteer experience with FIRST and I am currently looking for a FLL/FRC team to mentor in the New York City Area in my free time.
All/any views represented here are my own.
Experience
Bloomberg LP Financial Software Developer Oct 2015 - Present
Designed and developed high performance inter-processor communication mechanisms that provide simple, reliable transports and the flexibility to support Qualcomm's diverse product lines.
Worked with thermal software team to build a configurable framework to control the temperature response of various Snapdragon devices
Developed device drivers and kernel modules to emulate an off-target environment to test thermal software
Developed applications to allow application core and modem core to interact for thermal mitigation purposes
3Red Trading LLC Software Development Intern Summer 2013
Developed GUI applications in WPF which were used in the firm for trading and operations
Built front end distribution platform and configuration file server in ASP.net for all GUIs in the firm
Worked on various other projects including developing market data generators and a logging framework using Redis and Splunk
Embark Business Solutions Web Development Software Intern Summer 2012
Designed and developed E-Commerce websites for clients in ASP.NET
CUDA Project
About
We all have listened to a song at a concert or party and thought, “Wow, I really like this song! I wonder who sings it...” Well, Shazam Entertainment, Ltd. solved this problem by creating their application which listens to a recording of a song, identifies the song, and returns the information about it to the end user. Shazam uses a music recognition algorithm developed in the year 2000 written by Avery Li-Chun Wang, the co-founder of Shazam. This algorithm recognizes a song from a noisy audio sample, deals with voice codec compression and network dropouts, has few false positives and a high recognition rate, and most importantly it has to perform quickly over an enormous database of songs.
However, Shazam is not perfect. After recording a song via the microphone, there is still several seconds worth of delay where the CPU must process the song before actually being able to identify it against Shazam’s gigantic song database. These precious few seconds may not seem like much, but to a user trying desperately to find out what song is playing at a concert, it can mean failing to identify the song as it limits the amount of attempts he can make using Shazam before the song is over. With the ever-increasing power of GPUs in mobile devices, we believed that we could optimize Shazam using parallel programming and reduce this delay to a level where the human brain cannot perceive the delay inherent to the song processing step. We used CUDA to illustrate the speed increases one can achieve by parallelizing the Shazam algorithm.
When we researched this algorithm, there were no working open source parallelized versions of an audio recognition system that we could find. We implemented a serial version based on the Shazam algorithm, and then created our final parallelized version which ran on GEM, a CUDA cluster in UIUC. Our final parallelized version yielded a result of about a 10x speedup compared to our serial version, which is a very significant result. The code is now released in Github. Feel free to download it and run it on your own NVidia machines.
Members:
Michael Wilner, Ahmed Suhyl, Cody Van Etten
Fall 2014
Microwaving the future
About
nextWAVE is a smart microwave built for the hardware hackathon section of HackIllinois.
nextWAVE solves the 'problem' of not knowing how long to microwave your food. We built an Android app that allows you to scan barcodes, and look up cook times in a Firebase Database. The app can be launched using an NFC tag. Then, the app can turn on the microwave via wifi using a Spark Core Microcontroller. While your food is cooking, the cook time is displayed on a Pebble Smartwatch App. Finally, when the food is done cooking, it will open itself and play "Funky Town".
You can view all the source code here and see a video of the working microwave here.
Special thanks to Isaac DuPree for designing the logo.
Making Robots
As the Captain and Software Lead of the Brobots, I had to lead my team for the Jerry Sanders Design Competition (JSDC) 2014. The Brobots entered JSDC 2014 facing a lot of setbacks along the way, including the partial closure of the machine shop, the random explosions of our BeagleBone Blacks (BBBs) and the fact that our manipulator did not work 3 days before the competition. Yet, we overcame all these obstacles and got our Robot working with 100% functionality with no communication issues.
I will focus on the controls part of the robot here. Texas Instruments kindly donated 4 BeagleBone Blacks (BBB) for us to use. We started toying around with them and fell in love with them. However, our BBBs started frying a couple of weeks into the competition when we plugged in our spike inputs. It seems that they were not able to handle all the current that it was drawing from the various victors. 2 nights before the competition we came up with a new communications design which made used of an Arduino with an Ethernet shield to handle all the manipulator functions using a UDP protocol. In the end, we developed a communications protocol which had 2 open communication streams open all the time.
The client side application running in the laptop (developed in C#) would interpret the data coming in from 2 Xbox 360 controllers and send the necessary values to the robot for it to use. The data was encoded in JSON and sent via TCP/IP to the BeagleBone Black which drove our drivetrain and via UDP to our Arduino which had an Ethernet shield equipped. Both controllers were hooked up to a router which set up a local network. We needed to run multiple threads in our BBB to enable us to run multiple PID control threads to set the position of our wheels for our crabdrive. Here is a video of our drivetrain.
We used the data from our second Xbox controller to run our manipulator. Here is a video of our manipulator in action.
We were one of the only teams from UIUC to reach the Quater Finals where we lost out to the 2 robots which reached the finals in a very close encounter. Regardless of the result we are extremely proud of our robot and what we have achieved this season. Our robot is in 100 working condition before and after the competition and we have a super cool robot to show-off during our demonstrations for the year to come.
Thanks to our sponsors and anyone else who have supported is in one way or another.
Winning at Robots
At the start of the year 2015, we went through our design discussions with one goal in mind: we wanted to win the Jerry Sanders Design Competition (JSDC) 2015. With our years of experience, we analyzed the game mechanics and we came up with a simple design that we felt strongly could score the most points in the time we had. We decided to not pursue half the game elements (the foam ball, the teeter totter and the drop walls) and focused on one thing: making a robot that could get golf balls and wiffle balls one at a time and run around the field (and over the moats) quickly with an 8 wheel drive. We started out Spring semester slowly, trying out designs for a wiffle ball shooter but we did not have enough time to implement one. Over the weeks, we built the 8 wheel drive and the golf ball shooter (which was initially super overpowered). Our electrical team, was having a nightmare with the current draw and in the process we fried 5 Arduinos. Eventually the controls team managed to resolve this issue with a 5V voltage regulator on board.
On the first day of competition, we had major issues with our shooter as the field was not flat (it had bumps) and this destroyed part of our golf ball shooter. Running on very low sleep, we decided to head back home to get a few hours of sleep and redo our shooter at night. At the same time we sacrificed getting points from the preliminary games as we were not able to attend any of the matches that day and as a result we knew we were going to get a bad seeding the next day (which was single elimination). At night we finished the new shooter which had enough clearance to go over the bumps in the field. At the same time, the controls team managed to implement LED strips which were tied to an optical sensor which would change color when we successfully got the ball.
We went on to the final day of the competition with our robot fully fixed up and ready for action. We dominated the competition scoring the most points by any other team – 95 in our first round.. Quarter finals did not go smoothly as we got stuck on the moat but we managed to get out of it after 90 seconds by rocking the robot with our pnuematics. Semi finals went smoothly and in the final game we scored 95 again (we won with 5-10 seconds to spare). It was a very close game but we all started jumping around in happiness as we won JSDC for the first time. Check out our highlights here:
This has been an incredible journey for all of us. Special mentions go to our mech lead: Alex and controls lead: Danny (who have been with the team for 4 years), our drivers on the day, Alex and Pat, and finally our alum, Matt Birkel. If it weren’t for Matt, there was no way would we have had the resources and the guidance to pull off what we did. Thanks to our sponsors for supporting us all the way! Thanks to the JSDC committee for a well organized competition this year!
This was my final year in college and my final year as the Brobots Team Captain. I am really glad to have ended my time in college on a winning note!
WizardStaff is a popular drinking game in which one tapes consecutive new cans of liquid on top of their empties, and thereby creates a "Wizard's Staff". If one's staff is longer than another player, then that higher level wizard may instruct the lower level wizard to hydrate himself.
But what if your liquid of choice doesn't come in cans?
Enter Wizard Staff. Wizard Staff is a set of connected pint glasses, an Android app, and companion Pebble app and web app for viewing the scoreboard. It allows for people to play Wizard Staff with any liquid that goes in a glass. Stay hydrated!
You can view all the source code and more project details here and see a video of the working demo here.
Press
We have been featured on Hack A Day (for the second time!), and we emerged as the Winner of the Best Use of Spark Hack at Hackillinois 2015.
Thanks
Team Brady Rocks built WizardStaff in 36 hours.
Dario Aranguiz - Android App, DB Interaction
Kashev Dalmia - StrapKit App, A Whole Lot of Nothing, Web Scoreboard
Ahmed Suhyl - Embedded Software, Test, Hardware, Graphic Design
Special thanks to Brandon Seiser for coming up with the idea, and letting us run with it. Thanks to Alex Kordas, Matt Tischer, and Arnold Kao for moral support. Thanks to the entire HackIllinois staff for putting on this event, especially Matthew Dierker.
ECE PULSE is a major conference that happens every year in UIUC that celebrates advances in electrical and computer engineering. As part of the conference, there are multiple student competitions and our team took part in one of them, the signal processing challenge. More information about the conference.
The Task
We were given the task of doing something unique or awesome with an EMG sensor (from Sparkfun). More specifically, we had to help a student who "needed to lose weight fast to appear desirable to members of the opposite sex in any hopes of getting a date for Valentine’s Day" through signal processing techniques.
Our Solution
Our project, Reps480085, is a personal fitness motivator that helps to count your reps when lifting weights. Not only that, it uses a customizable gallery of images that will show up one by one for each set. For each set, the image will start out with the lowest resolution possible and it will increase until it reaches the maximum resolution when you reach the final rep of the set. It will reset at the end of the set so that you know you are done with the set.
How does it work?
We process the data coming out of a op amp circuit (the EMG sensor) with an Arduino. Once the data is processed, we send it to our computer via serial and a python applet running in it will take care of the visualization and rendering of images onto the screen. The competition was 12 hours long but we finished this app in around 3 hours.
Thanks
Thanks to the ECE PULSE Committee for organizing this competition and giving us the opportunity! We had loads of fun!