Hi everyone. Thank you a lot for the reactions and the questions. This will serve as the essay version of what Essam and I were trying to say, but will also include a lot of useful links collected from multiple sources.
One of the narratives people try to sell, early on in university, is that we’d be lucky to get a half decent job when we graduate.
This is WRONG for a number of reasons:
- I am a recent grad myself and I know for a fact anyone in our class whomever wanted a job was able to get one, and the quality of their workplace varies across engineering quality, location, workplace culture and many other things.
- More notably, the number of Alexandria University alums working in very reputable companies in Europe and the US (the US’s been somewhat more difficult now for a few years) is very high. This helped establish a very solid reputation for us particularly in Europe.
Also giving yourself low chances when studying/job hunting/exercising/doing anything really will only harm you.
Now that we’ve eliminated the extreme and dominated approach. Let’s also be reasonable and mention our shortcomings. For a lot of reasons, we’re not able to cover all of the content we need to cover in most of our university courses.
How can I make that claim? How could we all know that and know what boxes we need to check? Research is the answer.
Google’s guide for technical development has been telling us for years now. It’s now a full website. It used to be a single page buried in their jobsite back in the day.
MIT’s curriculum and courses are also all publicly available and are not designed for the genius student. The content is more challenging than ours but mostly because it’s longer and assumes you actually studied the prerequisite courses, not because it’s more intense or insanely more difficult.
So now that you know from multiple sources, here’s what you could do:
- Identify your goals in order to prioritize your learning plan.
- Study more intensely the courses that companies and top universities find important.
- If maintaining a very high GPA is not one of your goals, you can deprioritize some courses that you find irrelevant
- Continue studying more material in certain subjects where the curriculum was too short. (Ex: probability, algorithms, mathematics for computer science aka discrete mathematics)
- Know your strengths, such as studying (possibly with electives) 4 AI and Machine Learning courses as an undergrad or studying/coding compilers as an undergrad.
- DO NOT choose courses only based on the staff’s grading. You could miss out on great skill and knowledge merely to protect your GPA. You could still do that, but realise what your priorities are, particularly whether you’re pursuing Academia or want to work in the Industry.
Everyone in software engineering knows that interviewing is a difficult process designed primarily to prevent false positives. Fear of failure is very understandable.
The ACM sessions in our university (at least 3-4 years ago) start at high pace and have a very high dropout rate, but as they themselves always reminded participants, they’re designed for people passionate about competitive programming not for people targeting better interviewing skills.
So, do not let that be your frame of reference. Most interviews even at FAANG companies aren’t as hard. Many people can get roles at these companies without competitive programming backgrounds. You can get better at problem solving in other ways. There’s a section in this document that will list some good resources and communities to learn from.
If you enjoy competitive programming, that's great. It’ll help you greatly, but make sure to distribute your time evenly to also learn some technologies and build projects that’ll make your resume look good.
Because hiring events aren’t a strong option in our region (although Amazon for example has been doing hiring events in Cairo lately), referrals are one of the best ways to boost your chances in the resume screening phase and get you an interview.
Referrals need you to do things: First, have a positive attitude and just reach out to people for help. Second, do things to boost your network:
- Apply to companies and reach out to their recruiters over linkedin (keep it brief and don’t spam anyone)
- Network within your class by working on projects with different people (be more inclusive and don’t be afraid to try).
- Attend hackathons (reputable ones, don’t waste your time)
- Locally, you could attend events like RiseUp, EgyptJS meetups, Facebook Developers meetups, etc. Keep an eye on Egyptian Geeks for those.
One of the easy mistakes you could make early on in applications is to only start studying when you get an interview.
The hiring season for internships and new grad positions for big companies in Europe begins in September the preceding year and continues up until February. Start dates are around late June early July.
For Egypt, usually companies hire interns and new grads around the same start date but only start around April. Microsoft ATLC, as an exception, starts hiring in February but they’re the only such case, I think.
For the US, it’s even earlier. US starts August the preceding year and by January most of the hiring is done. Internships in the US from our region have recently become very rare, but you could score something remotely. Canada also is more realistic and has the same timeline.
It’s mostly wise to apply early and begin your prep very early. Summers are a good chance to practice.
Recruiters have been saying that almost all resumes from Alexandria University look the same, have the same projects and relevant coursework.
It’s important you build cool projects to try to sell yourself a bit more. If you don’t have a lot of original ideas, you could draw inspiration from:
- Cassidy's guide is a very good starting point for building a resume.
- Public Apis
- Product Hunt
- Build our coursework projects with a new flavor (new language, new programming paradigm, etc.).
There’s a great post we recently came across on Linkedin on being “culturally taught NOT to tell people of my goals and intentions, otherwise, they wouldn't happen.”
If you share opportunities, you’re strengthening your community’s future chances, you’re making your university more reputable, you’re letting people know what kind of opportunities you’re interested in and you’re growing your personal network.
We've written an extensive separate document for interview and jobhunting resources that you can find here.