I like that there are two minigames that you need to manage in parallel, it’s a cool idea. I like frantic games like this, and switching between the two games was definitely interesting.
The unhacking minigame felt a little unfair sometimes when I’d wait for a while and see no matches. Not sure what your implementation was, but one thing that MMOs do is skew the randomness in favor of the player based on how unlucky the player was.
For example, you could increase the probability of a matching shape appearing based on the number of previously un-matched pairs that appeared, and reset it once a match appears. This way, the player’s progressively more likely to see a match the longer they’re on an unlucky streak.
It might have also been nice to see a preview of the unhacking game while playing the hack game so you can manage the two a little better.
I like the use of recursion in the hacking game and the music is pretty good too, nice job!