Great example of why OOP sucks: https://github.com/aws/aws-iot-device-sdk-js#jobs
Jobs extends Device ThingShadow extends Device
and that's why you can only use Jobs OR ThingShadow, not both at the same time on the same connection: https://github.com/aws/aws-iot-device-sdk-js/issues/179#issuecomment-356427624