How much preperation is required for GRE I am a student going into my 4th year at a Canadian university.

I am pursuing a degree in electrical engineering, although in the last 6 months I have taken up programming and have been working this summer as a C++ developer. I will also be working as a C++ developer part time during the school year.

My grades are good (slightly above A average. 9.3/10 on CGPA scale).

I do not know if I am going to pursue a post-grad, but I definitely will if the company I work for offers to pay for it. 

From your knowledge and experience, how much preperation is needed for a problem-solving/mathematically inclined person to do well on the GRE? 

By well I mean qualifying for top-ish schools in the states.

I'm trying to collect information to decide whether I should just wing it or prepare extensively after I graduate.

ps. Don't crucify me for a subjective question please
The ETS (makers of the GRE) offer two free practice tests as part of what they call their POWERPREP offering. You can simulate authentic test conditions on your own, and they'll even give you an estimated score that I personally found to be within 5-10 percentile points of the real test I took later the same week.

So there is really no need to go into the process blind. Spend a few hours going over their practice questions to understand the types of questions they'll present you and how to answer them, and take the practice test to get an estimate of where you are now (takes about an afternoon of your time). 

However, no one can give you any meaningful guess on your score based on self-descriptions, nor is there any guideline on how long to prep. The main thing to know is that, beyond perhaps a week of study to get comfortable with testing methods and types of questions, the GRE is quite resilient against short-term efforts massively changing the score on a retest. If you want to change the score you get by more than 10 percentile points, you'll need to put in a lot of work over a significant period of time to do so, because the ETS is quite good about making tests for which there is no easy way to 'cram' or make large leaps quickly. 

As a rough guideline, if you are below the 50th percentile on a portion of the test and you want to get over the 80th percentile, I have not heard of any reliable way of doing so without a month+ of sustained, full-time effort, and even then there is no guarantee whatsoever. Some people train for the GRE for 1+ year and still don't do very well, while some only spend a few hours to prepare and find it reasonable easy to do 90%+ on at least 1 part of the test. 

Regardless, the GRE is only one part of the process of applying to graduate school in the US, and every program (and individual involved) puts their own value on what it means. No one gets accepted to a top program just because of a great GRE (not even with a perfect score), but a very low score is a disadvantage.

My advise is to take the free test after a few hours of getting to know the types of questions, and then you'll know just what kind of situation you are in and can plan ahead.