Principal Software Engineer Performs complex software engineering tasks, provides technical direction, resolves technical issues, plans architectural design, conducts design reviews, prepares software code and enhancements, and maintains communication with customers and vendors.