Amr Ali Abdel-Naby - RnD Engineer at SECC
My name is Amr Ali Abdel-Naby. I work as a full-time RnD Engineer in SECC for 7+ years now. In SECC, I gained good knowledge in Embedded Systems. I do the complete SDLC for a product, public training, technical consultation, and sourcing services. In addition to my work in SECC, I work as a a freelance telecom integrator, technical and business consultant, and I own the technical blog www.embedded-tips.blogpsot.com.
My dad was a professor of production engineering while my mom is a metallurgical engineer. The natural result for that was that I like engineering as well. I joined the faulty of engineering in 1999. The first year in college is a preparatory year, where we take subjects from different departments. I only found my self in subjects related to electrical engineering. More specifically, electronics and communications engineering. In the following four years, I discovered how good was my choice was. I graduated with a cumulative grade distinction with honors.
Most of my work is related to SW development on target boards. In addition to target boards, I only use 2 HW tools; the debuggers and oscilloscopes. Although I am convinced that these tools should be the last resort for a SW developer, they are interesting to use. Debugging is like an art, and these tools proved to be handy for me when I have a serious problem in my projects.
I use many SW development tools during my work, starting from development tools and ending with SW process management tools. I feel attracted more to open source development tools like the GNU tools and Eclipse based IDEs. Regarding SW process managemnt, I prefer IBM Rational tools like ClearCase, ClearQuest, and Test RealTime. Recently, I had the chance to work with static code analysis tools. These tools are magnificent in discovering without the need to run the code I am developing.
I was involved to a year and half project where my team was developing a portable multimedia player. Our goal was to have VLC running on TI Davinci platform. The trickiest part was to have the VLC working on ARM + DSP. After profiling for a couple of months and porting some codecs to the DSP, we integrated it to the complete system. During testing, we got a green screen! With the lack of debugging tools, we had to use our imagination to figure out the problem specially we had no prior experience in multiprocessing programming. After 2 weeks of working, a single sentence in the documentation made the breakthrough. It resulted in a single line of code added to our code and we had the system working fine. I learned from that before getting my hands dirty into coding, I have to read the documentation carefully.
Embedded engineering is a vast area. Do not get distracted and focus on a certain area. The harder the knowledge you gain, the greater the value you earn.
I learned a great concept that I learned from HW engineering. Always code with testability in mind. Add your own tracers and loggers that can help you verify your design assumptions at run time as well as compile time. A good example, I always advice is the book Writing Bug Free C Code.
Many books related to the embedded SW.Examples include, but not limited to, Writing Bug Free C Code by Jerry Jongerius, Hello Android by Ed Burnette, and Building Embedded Linux Systems by Karim Yaghmour.
Last May, Nokia in Egypt contracted me to provide a Bluetooth/proximity marketing machine. They planned to use it in Cairo ICT expo. I had a very tight notice. A younger engineer, I trust a lot called Omar Fadl, managed to integrate open source SW over a HW to get the stuff working. The blow up was that I sold a non-working machine! Whenever we tried it, it works. Whenever they try it, it halts. Omar is really a genius who managed to solve the problem at the customer’s site without their notice. I do advice, test your products in an environment similar to your customer’s environment.
I did enjoy all the projects I worked in. I always say, even if you do not like your project, at least you learned not to do a similar one in the future. At earlier stages of my life, I enjoyed lengthy projects like the portable multimedia player, where I was subjected to the complete system development life cycle starting from the requirements writing, architecture design, detailed design, coding, system testing, and release. Recently, I focus on short-term projects where I develop a hack-like applications to prove a certain concept. A good example was porting an open source speech recognition engine written in J2SE to J2ME and supporting Arabic language.
I am working on porting Android.In the current quarter, I am porting Android to a new platform and I am documenting my experience in 3 Days course that will be delivered through SECC starting from Q2, 2012.
Linus Torvalds the father of Linux was asked once what was the drive behind writing a free kernel. His answer was about that the knowledge should be availed for free. In December 2009, I decided to make a technical blog where I can share my humble knowledge through simple courses and labs. I focused on Embedded Systems. My friends liked the idea and encouraged me. Even 2 of them, I call them SAMS, they added to the content by sharing a digital design course using VHDL. We are trying to build Egypt 2.0.
I plan to establish a technical/business services company specialized in embedded software development, telecom integration, mobile development, and business consultation.
Recession is the biggest challenge, specially it will have many cycles. It will be hard in the next days to sustain business. Engineers will have to look for more innovative and niche solutions that attract investors and consumers.