Hi friends, I'm posting in JGO after a long while today. I'm in my final year of my college and had spent the last two months attending interviews. I'm posting this today because I'm in a dilemma and I need a career advice from someone experienced.

My first interview was in an MNC, which had 60 years of industry experience. I was asked questions on Assembly programming there and I cracked it. However, two things I'm concerned are the pay package and the available projects; they are offering me 3.36 as the package, which is half of my father's current pay (he earns 7 per annum).

My second one was a startup, which was founded in 2012, and they held the interview on purely technical rounds. I cracked it too, and apart from a job, they asked me to join early for a mandatory student internship in the next semester. The package is much higher here, they initially offered me a package of 8 per annum, and said that depending on my performance in the internship they might increase it to 12.

I'm not thinking only in terms of salary, but also in terms of the projects that I'll be working on; the big MNC is a service based one, and mostly works with low level technologies and databases. The new startup is a national payment gateway in India, and it's major client is the reserve bank. The Technology they are using is PureScript which is a functional language.

Regarding company size, the MNC has got 3,86,000 employees while the startup had got less than a hundred employees.

Now I'm in a dilemma. What factors should I be considering as a fresher?

I'm not clear what the pro arguments for the larger company might be. Is the latter company at risk of failing? In the USA, at least, things are pretty chaotic in terms of corporate survival. Even in established companies, divisions within them are subject to reorgs and have a nasty habit of coming and going.

There is certain value to learning about databases if you haven't had much experience dealing with them. The most important things, though, IMHO, are not so much about building them or dealing with the internals, but being able to analyze real-world problems and design database structures at a higher level to accommodate them. By higher level, I'm thinking in terms of ERD diagrams and employing concepts such as "normalization" where appropriate, and organizing the data to optimize for the most important functions. Having direct experience with working with SQL is very helpful here.

I'm not familiar with PureScript. It could be a very good thing to pick up, as well. Certainly the processing of transactions, learning more about the financial operations will also continue to be hugely important.

The most successful person I know in programming has done a lot of job-hopping over the years, and now has a nice position at Adobe. At least here in the USA, a lifetime commitment to work with a single company is a thing of the past. (For example, my father spent his entire programming career at IBM.) So, as someone new coming in, I'd try to anticipate the type of work I'd like to eventually do or the industry I'd like to know more about, and treat the first position something like an "internship" or a learning opportunity and a stepping stone, rather than a final destination (but don't tell them that in the interview!).

Thus, will the type of programming you would be doing help you, going forward, or is it a technology that is going stale? I'd be worried that the "low-level" coding involved in the first job might go the way of COBOL, and not be helpful except for "legacy" programming jobs 10 years from now, say.

I imagine companies have a certain culture to them, and that could also be an issue. Is the more established company one that respects its employees and does not overwork them? The same question can be asked of the "startup." Sometimes startups can make huge demands and burn out workers, as well as have troubles meeting payroll. But from what you described, your "startup" is actually pretty well established already, so those sorts of things are probably not a concern. And, as the younger company grows, it will be more likely to hire people, near term, that you will be senior to, whereas the first company will mostly only offer promotions when people ahead of you leave.

Another "job culture" aspect not mentioned is the availability of mentoring. If the "startup" company is just going to throw you at problems in a sink-or-swim manner, that can be stressful, and personal progress can be slower as you have to learn things on your own, as opposed to having a senior who shows you the ropes.

I also don't know a lot about your own goals, for example, if something like game programming or another passion is highly important, and picking a job that supports that passion is an issue (e.g., by providing more free time to work on your own projects).

So, for the most part, from the info you gave, I agree with the others that the "startup" job looks more appealing, but I am not ruling out possible scenarios where taking the other could be the better, say as a "strategic" choice in the short term, with the assumption of moving on after a couple years into a more promising direction.

Thank you all for the responses. I have opted to the startup as well, and it is extremely fun way (though we are working with PureScript, a functional programming language). I just finished moving to the new city.

Thank you all for the responses. I have opted to the startup as well, and it is extremely fun way (though we are working with PureScript, a functional programming language). I just finished moving to the new city.

java-gaming.org is not responsible for the content posted by its members, including references to external websites,
and other references that may or may not have a relation with our primarily
gaming and game production oriented community.
inquiries and complaints can be sent via email to the info‑account of the
company managing the website of java‑gaming.org