Two most important fields that logic plays vital role are:
Seems needs some clarification, in formal languages you need to extremely work on logic, for clarification take a look at:
In short: 1. Definition of language needs logic, 2: Justice of it's procedures needs logic, 3. verification procedures need logic.
I should mention that this is different from compiler design or ..., This is "Formal" definition of languages, main reason to do this is proving correctness of language or model, also having a formal proof. This can be used in verification of software models, finding errors before implementing, finding deadlocks again before implementing, ...., For software which simulate this you can take a look at NModel.
Now why in Fixed parameter tractable problems you need to work with logic, You can divide classes of Fixed parameter tractability with different levels of logic, this arethey can be converted to each other : logic to automata, automata to graph, and vice verse, But if you be an expert in logic you can divide and decide on them simply, most important theorem (after Robertson and Seymour theorem), in this field is Courcelle's theorem. for more information read Meta Algorithmic Theorem survey.