Sunday, April 6, 2014

Get That Job at NTP Software!

What is NTP Software?

NTP Software is a worldwide leader in storage management software. It creates computer software that help enterprises manage their storage servers. We create software to help these enterprises that have data on the order of hundreds of terabytes (or in some cases petabytes) manage their storage, set quotas for their users (NTP Software QFS) , and get detailed reports about their storage composition. We help them find out which servers are going to fill up soon, which users are storing non-business files (NTP Software File Reporter), and allow them to automatically backup unused data to slower (and bigger) servers, then retrieve them when needed (NTP Software Precision Tiering). We allow them to securely access their data from any device consistent with its Active Directory security and other policies (NTP Software Universal File Access).

As you can see, our software works with very huge data, and sometimes thousands or tens of thousands of users (One of our customers has over 200,000 users), so performance and scalability are very important to us.

Why would you want to work for NTP Software?
  1. Experience: You gain more experience working in NTP Software than most of the other software development houses here in Egypt.
  2. Trust: In NTP Software, we choose our own process, and you are trusted to work on any piece of the software and propose any new ideas/features. In fact, you are encouraged and asked to do so!
  3. Team: NTP Software has a great team! It has some of the most talented and bright developers I ever worked with in Egypt. Most of them are Ex-ACMers or active TopCoders. It feels great to work with such a great team. We also hold monthly meetings where we share knowledge about new technologies or product news.
  4. Work/Life Balance: Work/Life balance is encouraged in NTP Software, we set our own deadlines and estimate the time for our tasks. You are expected to work smart on your tasks and do your best to meet the deadline by being a good developer, but rarely if ever you'll ever be asked to work in weekends (I never heard that it happened), you are even discouraged from working in weekends.

What would you need to know to work for NTP Software?

It really depends on which position you're applying for, but let me talk about the C++ Developer position as most of our vacancies are for this position.

  1. C++: You need to know C++ well which is obvious since this is a C++ position.
  2. Multithreading: You need to have good knowledge with multithreading, know about different inter-process communication techniques, understand locks pretty well, know how to avoid deadlocks in your code, etc ..
  3. Data Structures/Algorithms: You need to know about the basic data structures and algorithms and know the time/space tradeoffs.
  4.  Windows Programming: You should have a basic knowledge about Windows API and inter-process communication techniques in Windows.
It would be a good bonus if you know ASP.net, SQL or have good experience with debugging and assembly.

How can you apply for NTP Software?

Send me your resume here :)

ufayez at NTPSoftware dot Com

See you in another post ...

Saturday, February 8, 2014

Get That Job At Valeo

Since many of my friends and friends of my friends usually ask me about Valeo, what it does, what to expect in the interview process and in work, I decided to write a small post to help you pass the interview and to determine if this is what you really need. I will talk about other companies as well. These posts are going to be based on my experience and that of my colleagues and friends.

Valeo is an automotive supplier. It develops components for automotive OEMs like BMW, Ford, VW, etc ... These components are like Park4U (Auto Parking), Temperature Control, Vision, etc ... A modern car can include more than twenty ECUs or computers to control different things inside the car.

Valeo sells the whole component (Mechanical parts, electronics and software) as one package. It has many factories and development and research centers.

Basically, the interview process consists of the following steps (not necessarily in the same order).
  • MCQ Exam (C language, Embedded Systems and Software Development Process)
  • English Exam
  • Technical Interview
  • HR Interview (In English)
  • GM Interview
The MCQ exam is a used to filter candidates who will go through the interview. To pass MCQ, you need to review or search the following

  • C Language basics and know about different keywords and their usage and tricks like "volatile"
  • Know what interrupts and critical sections are
  • Know about V-Cycle model and the different stages of software development using V-Cycle model
  • Research about CAN and LIN protocols that are widely used in Automotive industry. Just know their basics.
  • Know about basic microcontroller architecture, PWM, ISRs, IO Ports, etc ..
The HR interview is pretty typical and mostly like any other HR interview but you should prepare for it well. You have to pass the HR interview to get an offer. I think most rejections are actually because they didn't pass the HR interview.

For the Technical interview, it should be very easy to pass, I was asked some very basic questions like: what is a bootloader? what are the main components inside a microcontroller? write a function to sort N integers ... 
Some of my friends even got easier programming questions like a function to get the average of N integers or calculate the factorial! 

Now to the important part : what to expect from Valeo? 
  1. Stability : Valeo is a well-established corporation that has been there for more than half a century.
  2. Great Environment (Smart Village).
  3. Good Package and Insurance.
  4. Great and Friendly People.
  5. Working on Big Projects that are used by thousands of people.
  6. Personal development opportunities through different training courses (Communication Skills, Team Leadership, Handling work pressure, etc ..)

I hope this helps you set your expectations, and helps you to get an offer if you wish to apply :-)

See you in another post ..