A Little About Me #
Hi! I am FASTian Syed Musa Ali (09-Batch). You may or not may not have heard of me (if you have, I am flattered!). I graduated as a Bronze Medalist. I am also studying Actuarial Science formally and have completed 3.5/10 requirements for my Associateship. I am currently working as a Team Lead in Centegy Technologies (not my job title, but it is my role). We’re working on Enterprise Solutions for Takaful Insurance companies in the Middle East. It’s a product (not just a project) so one of the most important things we do is to write code with the aim that it should last. Also, it’s not just another CRUD application, it involves complex calculation engines to deal with all the business logic used by these companies. Yes, we wrote these engines from the ground up, and I was, and still am, an instrumental part of that.
I love programming, I love learning and I love teaching what I learn. There are certain things I learned after graduation, that I wish I had learned in University, so right now I want to give you guys that chance.
What I am Offering #
As I mentioned, there a lot of things that we don’t learn in University, and I wish that some of these things, we did. For example, most of the code we write in our university life sucks because we write it to last till the professor’s deadline, or the project demo. Even if it’s written for fun, we simply aim for it to last till we have interest in it. We don’t write with long term considerations because we know we won’t be using it for a very long term. Similarly, very few of us write code in such a way that others can make sense of it. Heck, sometimes even we cant make sense of our own code after a few months. These are only some of the things that I want to fix.
So what I am offering is a chance to work with me for approximately 3 months during which I will try my best to teach you about the following:
- How to write code with long-term considerations
- How to make our code flexible to future changes
- Importance of User Experience (I promise not to make this like HCI)
- Developer-Friendly Code
- How Business considerations affect Technical decisions
- The right way to work in a dev team (totally different from your uni experiences)
This is a tentative list and feel free to suggest changes to it.
The Program #
So I plan on making 2 teams of 3-4 students and work with them on a real world project. No, this isn’t me hiring you for a personal project. This is going to be YOUR project, and I would prefer projects big enough that you can extend them to your FYP. Heck, you might even be able to attempt your own Start-up on this project (don’t forget me when you are a big shot!).
I will be there coordinating with you on the keyboard level. We’ll be having discussions ranging from the idea itself, system architecture, the design, the modules, the very code itself.
I’ll be hosting weekly 4-hour sessions at my place every Sunday. The entire team will meet then and review what we did during the entire week and see where we need to go this week. Also we’ll try to get as much coding done together as possible. I must warn you though, that this MUST NOT be the only time you work on the project. I expect you to put in at least an hour every day. There is a limit to what I can make you do. The actual value you extract from this depends on your own dedicated efforts.
What I Expect From You #
- That you give me your Sunday mornings (4 Hours: 10am to 2pm)
- That you give me an hour each day. You may or not may not use this time talking to me. For the most part, you will use it to work on your project.
- That you play nicely with others and pull your own weight. I really do not want any sleeping partners here.
- That you keep an open mind and do not hesitate from learning new things to do new things.
- That you treat everyone (including me) with the respect that you want everyone to show you.
Things I am Looking for in a Protege #
Which Batch? #
I am primarily interested in the 3rd year students. They are old enough to understand complex concepts and young enough to NOT have their hands full of FYP and job applications. So obviously, I will not be considering final year students. As for younger batches, if you can prove that you are better than 95% of your senior batch, than you are most welcome!
The Curious Case of GPA #
While one of my close friends, Asad Memon, is the living embodiment of the phrase “GPA Does Not Matter”, there is no denying that a good GPA means the following things:
- This person takes his work seriously
- This person is at least smart enough to outsmart most of the exams
- This person pays attention in class (ok, not always true. I slept in most of mine)
- This person won’t abandon mid-way saying “I need to study!! My GPA can’t take any more hits!”
So I will consider GPA as a metric for judgement, but I will also give you a chance to explain why your GPA is low. For example, in Asad’s case, his GPA mostly suffered due to his inability to pass calculus. That is of course, a forgivable sin. To be perfectly honest, there have been courses where I admit my GPA suffered because I did not take them seriously, or because I didn’t have my priorities straight at the time, or because the teacher disliked me. So feel free to give me an explanation. Then use the rest of your energy demonstrating why your low GPA does not matter, and why despite it, you are an exceptional person who I would be lucky to have.
How Good of a Developer Do You Need To Be? #
Ok, quite bluntly, I can’t work with people who would struggle even with basic ITC questions.
Quick Test: Print numbers 1 to 100, but instead of numbers divisible by 3, print “Fizz” ; instead of numbers divisible by 4, print “Buzz” and instead of numbers divisble by both 3 and 4, print “FizzBuzz”.
If you can’t do that under 5 minutes, this program isn’t for you.
Beyond the basics, your prowess can be judged from a number of things:
- Your general problem solving ability
- Your ability to express your ideas in code
- The diversity of languages/platforms you have worked with
- You command over a certain language/platform
- Your knowledge and understanding of data structures and general programming concepts
- Your past projects
If you can safely say that you got more than half of those points right, then you are good enough.
What If Coding isn’t Your Strength? #
You might feel that you are a good coder, but not an awesome one. Well this is going to be a team effort, so we need not have all the team members having the same skill set. So the question is, what can you bring to the table? if you have skills that others don’t then you can leverage these in your favor as well. For example:
- Your Mathematical Prowess
- Your ability to come up with clean software designs
- Your ability to understand and explain complex concepts
- Your willingness and ability to document other people’s work
- Your general leadership skills.
In my FYP group, it is a fact that 90% of the code was written by my fingers. Another fact is that I couldn’t have passed FYP without my other two teammates. Their contributions were numerous and absolutely crucial to our success. So as long as you can contribute to the team meaningfully, there is room for you.
Special Consideration for Girls? #
It recently came to my attention the current 3rd year batch is full of a lot of female talent. I considered making one of the teams strictly girls-only. Then i reconsidered, and decided that reserving seats for girls would be an insult to them. They are not in any way handicapped, so we need not treat them as such. They can compete with guys on an equal footing and kick butt! So it’s a free-for-all. Beat the guys you compete against, and welcome to the club!
I Wish this all were Free, But… #
My original plan was to make this totally free, because my intentions were charitable, not business-like. Then my own mentor, and close friend, the world famous Tanzila Khan, convinced me that it’s in everyone’s best interest that there be a fee for this.
If I do this for free, I see it as a charity and whatever I would be doing, I would consider it good enough. After all, it’s for free! Similarly, you would be happy in anything you got. The whole price thing forces you to demand better service from me, and it forces me to provide better service. Furthermore, it forces both of us to take this thing seriously, and to stay committed to it.
So I have decided on a fee of Rs. 1000 per month per person. This is hardly anything considering you are most probably paying 4000 per month for a 3 credit hour course, or that I probably make much more than 1000 in a single working day. This is just to serve as an entry-barrier to find out those to whom this is worth at least 1000, who I know would take this seriously (or who aren’t serious but got cash to burn).
Where Do I Sign Up? #
Click here to go to Registration Form
Deadline: Friday, 26-Dec-2014