To understand how constructors through Solidity works (that is, how do we go from the compiled contract's bin to a live deployed contract with a different deployedBytecode), I took a deep dive into how one simple contract worked.
The contract Simple.sol:
pragma solidity ^0.5.12;
contract Simple {