From the job descriptions available now, a software developer, software engineer or senior software engineer will consult with clients and other engineers, write design specifications, write, design and implement unit tests using Microsoft or Google Test frameworks, do task breakdowns, provide accurate time estimates, implement software modules, provide code reviews, keep bug lists up to date, mentor software engineers through techniques such as pair or extreme programming, participate in Agile and Scrum meetings. Depending on the field of work, it's either going to be "Big Data" with R, Scala, Hadoop, Java, "Embedded Systems" with C, embedded C, assembler, IOS or Android; or "Desktop Systems" with C#, Java. In every case, they wil five years or more experience.