Software Development means nothing without domain knowledge. Whatever you want to build needs domain knowledge. Let me give you some examples and hopefully it connects the dots for you.
There are two types of jobs in IT market.
- IT in support of Business
- IT in support of IT/Software
Let's discuss each one those a bit.
If your goal is to work as a software developer in support of Business, then years of experience in that business counts a lot.
For example a Senior Java Developer who works in retail business doesn't only need several years of Development experience under his belt, but he needs several years of work experience in retail business. He needs to know how retail works, how transactions are processed (since in most businesses there are standards that all of them mostly follow), and also knowing the work environment (high paced for most retail businesses). That gives him an edge since he can negotiate more.
If two Senior Java Developer interview the same retail job opening, and one has 7 years of Java experience and 1 year of retail experience. and the second one has 5 years of Java experience but 3 years of retail experience. In most cases the second one get the offer since that is more desirable by most retail businesses as they don't have to teach him a lot about the business and the domain.
Now let's talk about the second option: IT in support of IT/Software.
When you work for IT in support of IT, this means that you are going to develop tools, and products that are going to be a platform for other developers to build business on top of.
Example: If you are working for Oracle and they place you in a team for MySQL product, you need to know Algorithm, Math, Probability, and a lot of Code/Technology knowledge as a computer scientist because you are building an IT product which should offer great and stable performance. Or you can also work for an open-source project which is a different story.
The point is, You have a job now, and you are getting paid every month. That means you aren't desperate for a job. Therefore you can take your time and interview for other job postings. If something interesting comes up, then you can take it and quit your current job.
But for now, try to learn more about the business domain (finance) because when you go for an interview, you can use that as an advantage. You can say that you were working with a different technology that was appropriate for that business but you learned a lot about the domain that you can carry to your next job and use it with other technologies and tools.
A True Software Developer doesn't care about the tool, the tool is only a matter to solve a problem with. The more you learn, the less you care about the tools because in real world, new technologies come out every year and many of the old ones go out of business/use. So if you are so biased or attached to one specific language, you will not survive the technology evolution and will lose at some point.
I think the two points I can leave you with are:
- Do what you enjoy. Money isn't everything as you can make money in many different ways.
- Don't be attached to a specific technology, as things always change in future quickly.