Last piece of advice. Imagine you did all work and using IB API, then for some reason you want to leave them. Gave over, full rewrite again.
You're right, but your comment applies for any broker/API. You just need to isolate the OMS (Order Management System) part that interfaces with the broker.
I had basically the same idea about a year ago. I have a background in primarily Java and near real-time systems, but knew nothing about trading. I still have no profitable strategy but I am still at it ... For what it is worth, here are some observations I made along the way in no particular order: (1) Sign up with a data provider that has useful data that meet your timing requirements. I started out with iexcloud.io which was an utter waste of time unless you want to use their data to analyze overnight. I ended up with IBKR and even if their API is not perfect it is pretty good and it is free. Reasonable documentation. Sample application etc. (2) Don't make a decision on what parameters you will use up front (i.e. only price action). You won't know if whatever you limited yourself to actually provide any data that could constitute the basis of a strategy. Be adventourous and curious and look into lots of different types of data. (3) Like it has been stated in other posts your programming paradigm (imperative, object oriented, functional) matters little in the sense that one is not necessarily better than the other. What does matter is that whatever you choose can accomodate the need for asynchronous requests and non-blocking IO concurrency. I used Vert.x because it is heavily focused on the message driven approach that fits nicely into the async requests and composeability such as chaining together logic (which is what the functional programming paradigm actually means ..) and handling succeeded or failed promises etc. To me this has been the absolute most crucial thing that allows me to re-compose logic and try new things out.. (4) You are going to be spending quite a bit of time looking for patterns in your data. Make sure that whatever framework you choose can play nice with a library that supports graphical presentation of you data (candlesticks, barcharts etc.) I use JFreeChart. Again, not perfect, but free. When an idea for a strategy presents itself it is nice to be able to visualize what is going on. (5) I wish I had spent more time up front looking at price action and the market in general. It would have saved me from spending a ton of hours implementing stuff that eventually didn't pan out. Hope this helps.