So let me share what I know about the job market in software industry.
So I graduated and started to look for job but I didn’t know much about the market. I personally feel this should be a module in universities or colleges. Unless you have a good connection with senior batch which graduated and is navigating the industry you will get lost in the cooperate world, without a navigation sign. If you only talk within your office or listen to your management that is essentially spoon feeding information.
Look care fully at the requirement under job titles in my article and if you honestly assesses you can do more than that then don’t fall for offers like titles, money, etc.
So let me tell you about the opportunities in the software industry.
- Software engineer
- Quality assurance (QA)engineer -testing
- Support engineer - Managed Services
- Business Analyst (BA)
- Project management
This is the person who collects information from clients and helps them design the system. Requirement deciding.
Requirement: You have to be a people person, some basic knowledge about system analysis and design will get you this job over that software department will support you.
This is will be the person overseeing the work of other people. This exists in the industry just because they don’t have stake at the development process since they will be more transparent to the management.
Requirement: This person doesn’t need to come from a information technology background (enough said).
This people work closely with business analyst to check if the developed solution meets the requirement. And they also hunt for bugs.
Requirement: well there is a lot of parts in testing manual testing here you will have a list of scenarios you will be testing manually entering the values (boring), automated testing here you will be automating the software like Selenium to scenarios that exist in it, performance testing this is the interesting part of testing here you will look for performance, stress, and load by running different scenarios (made life easy by introducing frameworks like spring boot which are optimized to preform by PhD holders :)).
This people will be in the end of development spectrum giving all kind of support to live systems (on production).
These responsibilities comes with interacting with clients with different kind of understanding about the software system and narrowing down the issue (that sounded easy than it actually is ;)).
Responsibilities: When someone is using the system there will be all kinds of people who asks questions starting from how to connect the cable to access internet (handled by level-1 (L1)support team) or technical questions like how to move the data from one place to another (handled by level-2 (L2)support team) or bugs which need immediate fixes other wise the system can’t function (handled by level-3 (L3)support team).
This people who is involved in continues integration continues deployment of a software critical to the company.
Requirement: Knowledge on cloud environment (eg. AWS).
These are the people who develop the solution in a language. And there is a lot of parts there is to specialize on and you can’t be a specialist in everything. And domain (eg. finance, commercial) also plays a major part in it.
Requirement: logics and a programming language knowledge.
What to expect
When deciding on a company it is always better to go as direct than outsourced you will enjoy a lot of perks.
So there are questions you need to ask you can chat up someone in LinkedIn for example.
Product company which has a solution and will be maintaining it. Work will be comparatively easy since all your collogues will be good with the system and you will be doing small change of requirements or fixing bugs.
Service company is what serves the client. Here you will have opportunity to get exposed to lot of areas if it is a small company. In a large one you will just be doing the same work over and over again (boring). Some even tell you they will expose you to various things but won’t if you go and ask there will be just a promotions or salary increment.
Always look at what scope your language has in your environment. How is your pay and treatment in the company. Don’t trust a company which gives important to emotions (at the end legally what is your family is your real family it is to them you should be honest). If they are doing something bad to others they will do it to you never forget that.
Company products or services, culture, salary, and PAR process you can do a research in websites like Glass Door no listen to me it is extremely important.
Go mentally prepared to bargain and there are questions to ask like what is the language I’ll be working on what areas I’ll be working on don’t just get sold out by the company name.
A company will mostly want to keep an a-player or someone who is exposed to the client and their work is being maned by over worked collogues.
When they build a team for services it is about billing the client per head. If your company has different salaries for same level of work be careful. You might get over worked. Don’t trust a company which talks bad to you about your colleges.
Your word matters especially if you are a fresher and have connections to the university you studied on.
You are there because they need you as well if not there is no offer!
Don’t look for promises, look for what is being delivered right now. Before signing the contract take at least 3 days think it through (if your company rushes you tell them NO).