Graduation Project: Do’s and Don’ts!

In this blog I will try to share some Do’s and Don’ts about college graduation project. The idea is to start a discussion to make this a mini road map so future grads can avoid falling into the traps some of us did.

So, let’s start by a simple yet a key question:

How important is the graduation project after all?

You can’t work hard on a task especially a tough one unless you truly believe it will pay off someday!

I think the answer to this question is the root cause to how we mistakenly choose to perform badly on our graduation projects!

Let me try give you me opinion on how important graduation project to your career by telling you a short story:

A few months ago we held job interviews here at Eptikar to hire two developers, we had 60+ applicants to choose from. We wanted to hire (0-2 years working experience) developers and as a custom software company we wanted someone with great passion for coding and open source philosophy.

So, how did we filter through all the fancy CVs with the amazing bios? you guessed right! graduation projects.

It’s actually so simple to filter applicants who worked on a real project compared to the ones who didn’t. The first are usually waiting for the part when you ask them:

“so, Ahmed. What did you do on your college grad project?”
and Ahmed would get a wide, proud smile and start telling you what they built and how.

On the other hand the other group seems afraid of this part _which will definitely come in any job interview_ and will answer with vague sentences “I am not quite sure why we choose that tool?” “I didn’t really work on that part” “I only did the writing part, .. bla bla bla

Doing good in your graduation project will almost definitely help you secure a job and it will do you a more important favor: it will help you decide what type of  job/career you want.

Passion is key in every line of work but it’s critical in ours, how do you know if you like working with databases, front-end design, APIs building, back-end, System Administration, mobile development, … etc without getting your hands dirty and exploring those fields! You can’t.

When we held the interviews a few months ago, we had very bright candidates from FMS, SUST and other colleges, you could tell they were smart, but most of them lacked passion! they don’t know what they want to do in their career, which path to take and it’s true they are many other causes to this but poor performance in graduation project is a key factor.

Don’t listen to the advice saying “graduation project is just another course, don’t give it any special time/thoughts – Get your “A” and move on!”

Majority of grads take graduation project as just another course with a target to get an “A” and it’s sad many teachers and supervisors advise them to do so!

“Time is not enough” is simply a myth that you will clearly see after moving from student life to work. You will find yourself doing a lot more than you thought you could ever do or handle.

You have plenty of time to get great scores on all your exams and do decent work on your project without the need to be a pure genius. You just need to have the will to do it.

Graduation project is your key to secure a job in no time, i suppose you went through the tough years and exams in college to achieve that? right! well most of IT/CS colleges in Sudan lack proper technical teaching! Some grads never touched linux or worked with Git and many can’t even write very simple programs!

In my college case, UofK-FMS computer science syllabus badly lacked in the implementation side (which is a topic worth another blog post), so graduation projects comes as a life saver to give your CV something tangible you actually built, because after all; your “A”s on algorithms and compiler courses won’t convince a CTO who needs someone to help building not designing architecture.

Don’t fight over supervisors?

I remember when the list of projects were published on the board, groups would fight and brutal races would begin to get this or that supervisor project without really knowing much about the project.

With all due respect to our teachers, I think you shouldn’t overthink this and choose any supervisor, it does not matter that much!

Some great teachers are not very great supervisors and vice versa.

Do choose the scary supervisor?

If you really need to learn and build something you should choose a supervisor who will push you beyond your limits. Yeah, it sounds suicidal and as students many won’t buy it, but it’s the truth.

It’s very easy to sign-up with a supervisor and get a nice big “A” without actually making any effort but then what? Months later college is over and you will step into a very different environment where “A”s don’t count as your ability to deliver results.

Of course by “scary” i mean a smart supervisor who will push you to do your best and guide you, some people are just mean … you don’t need that drama in your graduation project!

Don’t choose your buddy as a team-mate

It starts by: Well, me and Khalid/Mona hang out all the time, we are close friends and it make sense we work together in the graduation project!

Just trust me, 99% of the time it’s a bad idea.

It’s true you need someone who you can successfully communicate with but that’s not the only factor.

Chose someone with whom you can learn and build, someone with a set of skills you lack, someone with good communication skills and most importantly someone with great level of commitment who you can trust to do their part

Don’t be afraid of coding/presenting/technical writing/ ..etc

It’s natural we try to run away from things we don’t understand, but your graduation project is a perfect chance and in fact your last chance to explore all IT fields.

You will be:

– Dealing with your supervisor, carefully capturing project requirements
– Negotiating adding/removing parts of the project if needed
– Managing/Working with a team, assigning tasks
– Designing and implementing software
– Testing and Q/A
– Presenting and Writing Technical Documents

Each of above list could be your future job, as a developer, dba, project manager, IT Sales or CRM, ..etc

Even if there is someone else handling most of the technical writing in your team, make sure to see how is he doing it, offer to help to get a feeling perhaps that’s where you shine!

Anyway, good luck for all grads and enjoy your graduation project and give it your best! 😉

P.S If you have additional advice [Do’s or Don’ts] you think i missed, please do share and i will happily add it to the post.

Arab World Programmers’ Contribution to Stackoverflow

إقرأ هذا المقال باللغة لعربية

Stackoverflow is a question and answer site started in 2008 to be a forum – so to speak – for programmers from all fields.

Today there are about:

4 million registered users at stackoverflow, with a rate of about 3500 new users every day.

9.2 million questions with 15 million answers about 40 million topics at a rate of 6500 new questions a day.

Ask any developer about their experience with stackoverflow and they’ll list a number of times an answer on the site has saved them enormous time and effort trying to solve some problem.

Using the site is free, and requires no previous experience giving any person the opportunity to contribute. Theres also the fact that most administrative tasks such as removing inappropriate questions or answers is done by ordinary members with a high reputation.

Wait, did I say high reputation?

Yes, the site is based on the simple concept of encouragement through scoring (Gamification). Any correct action you take will be rewarded by points, starting with answers of course, but also editing a question for correction or clarification, and others. On the other hand, asking an inappropriate question or repeated question could deduct from your points.

Stackoverflow has become a complete community, to the degree that elections are held yearly to select the head moderators (who have privileges such as the ability to close off a question). Every member can cast a vote in, after getting familiarized with each candidates program, hopefully to make stackoverflow a better environment for learning.

Working with stackoverflow is considered one of the ways to contribute positively to the programming and computer science worlds. Among the sites members are a number of veterans and experts answering questions comfortable for beginners, as well as the site being a major resource for finding bugs and errors in programs, while being the cornerstone for the development of others.

So, whats the size of the Arab world audience in this giant platform?

This question came to mind a little while ago, an fortunately the platform has opened up a method for searching or extracting data through

We ran some queries on their massive database, then performed some statistical methods using the R language, and the results were as follows:

Size of Arab presence on site:

The following graph presents number of users from each Arab country:


User Age:

The following graph represents users by age:


User’s Expertise by Country:

The following graph represents users’ reputation based on country


Most Popular Languages/Tools/Platforms in the Arab World:

The following graph shows most popularly discussed subjects in the Arab world.



One of the problems we faced while preparing this study is that the location field in the user profile is an open one, allowing user to input whatever they want. This required a lot of data cleanup, for example insuring that all users from Cairo, Port-Said and Sharam-Al-Sheikh were considered to be from Egypt.
Its important to point out that this problem affects the accuracy of the data, because non-arab users could list arab countries as their location due to working there, and arab users on the other hand might not due to living outside their home countries.

The Data has More to Tell:

The data offered through is very rich, allowing for  wealth of indicators to be extracted from it. That’s why we’ve put up the code for data cleanup and graph drawing on our company’s account on github, for anybody wishing to dig deeper into this subject

Don’t forget to keep us posted on your results 😉

Contribute with Your Work, Little or Large:

We hope to re-conduct this study in a year to find that both Arab presence and diversity on the site have increased, to better reflect the level of skill and talent we possess 🙂

مساهمة المبرمجين العرب فى موقع StackOverFlow

Read this article in English

Stackoverflowهو موقع أسئلة وأجوبة أنشأ عام 2008 ليكون مُنتدي إن جاز التعبيرللمبرمجين في كل التخصصات.

اليوم هُنالك حوالي:

 4 مليون مبرمج مسجلين في ”Stackoverflowبمعدل 3,500 عضو جديد يومياً

9.2 مليون سؤال تقابلها 15 مليون إجابة, حول 40 مليون رؤوس موضوع بمعدل 6,000 سؤال جديد تقريباً يومياً

إذا سألت أي مبرمج عن تجربته مع ”Stackoverflowسيُعدد لك المرات الكثيرة التي أنقذته إجابة علي الموقع و وفرت عليه الساعات لحل مشكلة ما

لا تتطلب المشاركة علي الموقع أي رسوم أو خبرة محددة فلأي شخص حق المشاركة, كما أن أغلب المهام الإدارية من حذف الأسئلة والأجوبة الغير مناسبة أو غير لائقة يقوم بها أعضاء عاديون يتمتعون بسمعة “Reputation” جيدة!

مهلاً, هل قلت سمعة جيدة؟

نعم, الموقع يقوم علي فكرة بسيطة وهي التشجيع عبر النقاط (Gamification), أي عمل جيد تقوم به تكافأ عليه بدئاً بالإجابة طبعا, ثم تعديل سؤال لتصحيح أو توضيح, وغيرها وفي المقابل طرح سؤال غير لائق أو مكرر قد يعرضك لخسارة نقاط السمعة.

Stackoverflowصار مجتمعا متكاملاً حتي أنه تقام كل عام إنتخابات لتعيين مُراقبين أساسين (مستخدمين لديهم صلاحيات مثل إغلاق سؤال وغيرها). يحق لكل عضو الإدلاء بصوته بعد التعرف علي برنامج كل مرشح و خطته لجعل مجتمع ”StackoverFlow” مكان أفضل للتعلم.

المشاركة في ”Stackoverflowتعتبر أحد الوسائل للمساهمة إيجاباً في مجتمع المبرمجين وعلوم الحاسوب, يوجد بالمجتمع أعلام من خبراء مخضرمين يجاوبون بكل أريحية أسئلة مبتدئين جدد, كما كان الموقع سببا لكشف وحل مئات العيوب في برمجيات معروفة وحجر الأساس لإنشاء أخري!

يا تُري ماهو حجم الحضور للمبرمج والمطور العربي علي هذه المنصة العملاقة؟

خطر علي بالنا هذا السؤال؟ ولحسن الحظ فخلال الأعوام الماضية وفرت المنصة خدمة البحث والتنقيب حول بيانات الموقع عبر data.stackexchange

قمنا بإجراء بعض العمليات علي قاعدة البيانات الضخمة ومن ثم إجراء عمليات إحصائية بإستخدام لغة “R” , إليكم النتائج:

حجم الحضور العربي علي الموقع

الرسم البياني يُبين عدد الأعضاء من كل دولة عربية


أعمار المستخدمين

الرسم البياني يُبين توزيع الأعضاء العرب علي الفئات العمرية


مستوي إحترافية المستخدمين في كل دولة عربية

الرسم البياني يُبين متوسط سمعة الأعضاء في كل دولة عربية


أكثر اللغات البرمجية / الأدوات / المنصات شعبية في العالم العربي

الرسم البياني يبين أعلي المواضيع التي يهتم بها المستخدم العربي


صعوبات وعيوب:

من الصعوبات التي واجهتنا لإعداد هذه الدراسة أن حقل البلد في الملف التعريفي للمستخدم هو حقل مفتوح فوجب إجراء الكثير من عمليات تنظيف البيانات لكي يتم التجميع, مثلا مستخدمين من القاهرة” , “بورسعيدو شرم الشيخعلي أنهم من مصر

من المهم أيضا الإشارة إلي أن هذه الصعوبة لها أيضا أثر سلبي علي دقة المؤشرات فبعض الأعضاء غير العرب قد يدرجوا البلاد العربية التي يعلمون بها وآخرين عرب قد لايدرجوا بلدانهم الأصلية بل مكان الإقامة الحالية!

البيانات لديها المزيد لتحكيه:

البيانات المتاحة علي data.stackexchange غنية للغاية ويمكن إستخلاص العديد من المؤشرات المفيدة منها, لذا وضعنا كود عمليات التنظيف و تكوين الرسوم البيانية علي حسابنا علي Github لكل من يرغب في البحث أكثر في هذا الموضوع

لاتنسي أن تطلعنا علي إكتشافاتك 😉

ساهم بعلمك قليله وكثيره:

نتمني أن نعيد هذه الدراسة بعد عام من الآن لنجد الحضور العربي أكثر حجما ونوعا ليعكس للعالم مستوي المواهب والخبرات التي نمتلكها 🙂

Career Change!


People are scared of change in general and career change in particular. They feel like it’s an unnecessary risk, spending a lifetime building a career to then simply drop all that behind, just to start a new adventure; who does that?! Well, a few fearless souls do 😀

Source (

I studied engineering (computer and electronic systems engineering), and when I was at college I had a bunch of different courses on electrics, programming, electronics, control and networking. I always hated programming, to me programming languages were like an alien language and I have never truly understood them. Despite that, I naturally fell in love with automation control (PLC precisely); even though it involved a little programming (ladder logic diagram)  it actually made sense to me unlike the (Pascal and C ) I had been taught. And yes, we were taught Pascal and C in the twenty first century (in particularly 2008)!

Through the college years I was very interested in automation control; so I aimed all my study and training courses at getting better at it. I graduated with one career objective in mind; to be an automation engineer.

A few months after graduating I got a  job of marketing officer at Eptikar IT Solutions and for the two months during this period I got to knew a little about web based applications programming and the languages my colleague developers use which were completely new to me. When the company was looking for a junior developer, I thought to my self: hmmm, why not? And that’s was when I discovered the beauty of Ruby.

I love Ruby
source (

Ruby is a programming language(not a girl apparently) which we use a lot at Eptikar. I couldn’t believe that programming could be this fun (no thanks to the Pascal and C from college). There were just nothing in common, in either simplicity or clarity.

A few weeks later I had a chance to work as an automation engineer at one of the top private companies in Sudan which is concerned with the food industry but I was irresolute about it, “Dude, are you out of your mind? there is nothing to be irresolute about !” that was everyone who I asked for advice’s opinion, specially my father, but you have to know he is an electric engineer and was certainly biased towards engineering. He believes that programming is not actually a job, that any one can use the internet to learn a programming language and become a programmer. To be honest I actually don’t blame him, that was my opinion too until I got my hands dirty with programming and realized that anyone can learn a programming language and make a software but a very few will make a good software.

So I had to make a decision about being a developer or an automation engineer, automation is kind of boring but its semi guaranteed job because not a lot of people do it, unlike programming which is fun but many people do that?! I told myself you are young fresh graduate if you want to make a gamble it’s now or never.

Yes I chose to gamble and now am a developer, but the bet isn’t being a programmer, but to be one of the few good ones 😉

On the next blog post i would like to share my experiment of becoming a developer and the learning process I’ve been through, so to be continued …..

كٌتـــــاب : الدليل الإلكترونى للمدارس السودانية

فى إبتكارنقدر كثيراً دور التعليم و بناء المعرفة فى تطور الامم , حيث يمثل التعليم و القدرة على التعلم عامل أساسى للريادة فى مجالٌنا – مجال تقنية المعلومات .كفريق إبتكار دائماً نبحث عن وسائل لتطوير أنفسنا, كما نبحث عن طرق لتطوير العملية التعليمية بالسودان, فبدأنا بمجال المكتبات حيث قدمنا مشروع حِكمـــة “نظام إدارة المكتبات المتكامل”. ثم جاء كٌتاب ليكون أول إِسهام لنا فى مجال التعليم الأساسى و ما قبل المدرسى .

كلنا نعلم ان عدد المدارس و الرياض فى تذايد كل يوم, و أصبح من الصعب على الأباء إختيار المدرسة المناسبة لأبنائهم بسهولة , حيث لا يوجد حصر لهذه المدارس, و لايوجد طريقة معتمدة سريعة و محايدة لمراجعة مواصفات المدارس و الرياض المختلفة , ليتم إختيار الأنسب .

و من هنا جاءت فكرة كٌتاب – أول دليل إلكترونى للمدارس و الرياض السودانية . إنطلق الموقع رسمياَ فى يوليو 2013. يقدم كٌتاب حالياَ قاعدة بيانات لكل المدارس الخاصة بالخرطوم, و يخدم الموقع طرفين أساسيين على حد سواء الأباء و المدارس .


بالنسبة للأباء “المستخدمين”, خدمات كٌتاب مجانية, يٌمكِنهم الموقع من البحث عن المدارس بمواصفات معينة على حسب الموقع الجغرافى للمدرسة, المنهج المتبع , لغة الدراسة … إلخ المعلومات الأساسية التى تشكل عوامل الإختيار للمدرسة الأنسب لأبنائهم . يتميز البحث عن المدارس فى كُتاب بالسهولة و السرعة , حيث يقلص نطاق البحث الى المدارس التى توافق شروط و معايير الأباء , فى أقل من ثانية. بعد ذلك يمكن للأباء تصفح صفحة المدرسة بكٌتاب, لمعرفة مزيداً من التفاصيل التى تٌهمهم من خريطة موقع المدرسة و معلومات الإتصال الأساسية, المناهج و اللغات, منشأت المدرسة, الأنشطة, و بالإضافة لمعرض صور المدرسة الملحق فى الصفحة .

ثانياَ نأتى لخدمة كٌتاب للمدارس, حيث يمثل كٌتاب وسيلة إستثنائية للمدارس للتعريف بإمكانيتها, عبر العنوان الإلكترونى للمدرسة ضمن مجال كٌتاب الذى يوصل لصفحة المدرسة بكٌتاب والتى تُغنى المدرسة عن إنشاء موقع إلكترونى خاص بها, شاملةً كل متطلبات الموقع الإلكترونى من معرض صور, و خرائط مواقع, و قالب مرتب لعرض معلومات المدرسة, كل هذا فى تصميم أنيق و بسيط سهل الإستخدام .

بالإضافة الى ذلك يقدم الموقع فرصة للمدارس و الأباء للتفاعل و التواصل, عبر مواقع التواصل الإجتماعى , و الرسائل النصية القصيرة. حيث يمكن للأباء التعليق فى صفحات مدارس و التصويت لمدارسهم المفضلة مستخدمين حسابتهم الإلكترونية بمواقع التواصل الإجتماعى مثل فيسبوك و تويتر, تمثل هذه الخاصية مرجعية شفافة لتقييم المدارس من قبل الأباء, حيث يتم ترتيب المدارس بكٌتاب بناءَ على مجموع الأصوات التى حصلت عليها المدرسة .

ومن جانب اّخر, يمكن للمدرسة التواصل مع الأباء و أولياء الإمور عن طريق الرسائل النصية القصيرة التى يقدمها الموقع ضمن خدماته للمدرسة, تعتبر هذه الطريقة سريعة و غير مكلفة للمدرسة لتوصيل أخبارها و فعاليتها لجميع أولياء إمور طلاب المدرسة .

نحن فى إبتكار فخورون بكٌتاب, بإعتباره خطوة كبيرة فى تسهيل عملية إختيار المدارس, حيث يعتبر وجود دليل إلكترونى و قاعدة بيانات للمؤسسات التعليمية من أبسط الوسائل فى الدول المتقدمة. و فى خطتنا المستقبلية المٌمرحلة للمشروع , لدينا الكثير لنقدمه بإذن الله, ليشمل الموقع كل انواع المدارس و كل مدن السودان . و نتوقع أيضاً ان يقدم كٌتاب خدمات إحصائية مثل مؤشرات عن التعليم  و المؤسسات التعليمية فى السودان فى المدى القريب إن شاء الله.