A reverse engineer is a software developer or programmer who specializes in analyzing software to figure out the code base of a program. The tools and techniques they use are helpful in trying to identify and exploit weaknesses in a product’s source code, developing solutions to security holes, and recreating proprietary functionality from a competitor’s product. As a reverse engineer, your job duties include studying and analyzing software programs and online applications, using developer tools to parse code, and creating quality solutions.