This movie, along with the original "All You Zombies" story that inspired it, seems to be one that assumes a fixed unchangeable timeline, one obeying the Novikov self-consistency principle. In this type of story there is no "original" version of events that "initializes" an altered timeline, instead there is just a single timeline which is constrained to be totally self-consistent.
Since you mention you're a software developer, it might help to think of this sort of thing in terms of how we might, in principle, create a computer simulation of a world where time loops of this kind can occur. To start, imagine you want to write a computer program to generate a possible chess game. One way is to start with the pieces in their initial configuration, then have the program generate each successive configuration on the next turn from the configuration on the previous turn, using only legal chess moves. But here's another, more elaborate way to do it. Imagine we just program the computer generate an entire series of configurations at once, completely randomly, so it just picks randomly which pieces to put in which positions on which turn. It is very unlikely that the resulting series will look like a legal chess game--a piece might randomly be on a particular square on one turn, but then the next turn randomly be on some totally different square that it shouldn't be able to get to in one move by the rules of chess. But suppose as a thought-experiment that you have access to an idealized computer with nearly infinite speed and memory, and you have it generate a gigantic number of random series this way--if your number is large enough, chances are at least some of the series would just happen to satisfy the rules of a legal chess game. So you could specify that the computer should throw out all series which violate the rules of chess, and be left only with series that represent legal chess games. But since you are dealing with an entire series at once, you could also place other constraints on them, like "throw out all series where white wins", or "show me only series where the black rook checkmates the king in 25 moves", whatever you want. For sufficiently detailed conditions, it might be very hard to generate a chess game that matched them in the traditional way of starting from the beginning and basing each new configuration of pieces on the configuration of the previous turn, but using this brute-force method of generating a near-infinite number of entire histories, and throwing out all but the ones that satisfy your constraints, it's easy to get a game that satisfies any conditions you like without even having to think about it or plan the details of the game.
And suppose we want to come up with a game of "4D chess" which is similar to ordinary chess but with some extra rules that allow you to send pieces "back in time" to earlier turns in the game, but only in a self-consistent way where history is not changed. For example, suppose there are two squares labeled A and B on the middle of the board, such that if on any turn a piece is moved onto square A, then the rules say it is transported to square B four turns earlier (and say the player who controls the piece has to immediately move it when it appears on square B, and pieces can't move directly to square B by non-time-travel routes, to avoid the issue of multiple pieces occupying square B on a particular time-increment). It would be pretty hard to generate self-consistent games following these rules by the usual method of starting from some initial configuration and evolving it forward step-by-step, but if you just generate some astronomical number of random histories, the computer can algorithmically check any given randomly-generated history to see if it actually is a self-consistent 4D chess game that obeys the rules at every point, so with enough memory and computing power it should be able to find some valid games.
You could do the same thing with other simple types of "games" where there are rules governing how the configuration on each time-step must be related to the configuration on the previous step, like a cellular automaton. For instance, you could use this sort of method to generate a time-evolution for something like the Game of Life, but with a "wormhole" somewhere on the board where the state of the cells at a particular location at one time-step would be defined as "neighbors" for some cells at a different location at an earlier time-step, so that mobile patterns of cells like gliders might be able to enter the "wormhole" region at a later time and exit at an earlier time, perhaps even going on to interact with some other pattern of cells in a way that would lead to the creation of the same glider that would later enter the wormhole, like a small-scale version of the life story of the character in Predestination.
We could make this even more grandiose, and imagine using this incredibly powerful computer to generate a simulation of an entire universe obeying some set of fundamental "laws of physics"--instead of picking some initial conditions and then letting it evolve forward according to some set of laws of physics, you could again specify your "laws" in terms of constraints on entire histories, with the computer generating a huge number of random histories and then throwing out all the ones that don't satisfy the conditions. If the "laws of physics" you pick happen to allow time travel, then obviously any universe that respects the laws of physics locally at every point in spacetime must be globally self-consistent, and the computer will find some histories satisfying this condition. But the computer does not need to have any intelligence to do this, it isn't playing the role of a sentient "Fate"-like force, it's just randomly generating a huge number of possibilities until it finds one that satisfies the constraints. From the point of view of a simulated sentient being in this universe with access to a time machine, it might seem like the universe was cleverly finding ways to "outsmart" them and thwart their plans every time they tried to change history, but it would actually be the result of a fairly simple rule, just not a dynamical rule based on picking initial conditions and evolving them forward, as with normal computer simulations.
Of course, this is assuming that the behavior of intelligent beings can in principle be explained in some type of reductionist way, as the emergent outcome of huge numbers of fundamental particles (or whatever the most basic physical 'unit' is) in some configuration, with their collective behavior following from their arrangement at each time along with the fundamental laws of physics governing how they interact and move over time. If intelligent beings have some sort of mysterious libertarian free will (as opposed to compatibilist free will), then you might say that while this method could generate self-consistent time loops involving inanimate objects (like the ones involving billiard balls that I discussed in this answer), it wouldn't generate any involving intelligent beings like the one involving the characters in Predestination. But I think most physicists (not to mention A.I. researchers) would favor the idea that all physical behavior, including that of intelligent beings, can always in principle be explained in terms of a collection of fundamental units obeying mathematical laws.