As a Principal Software Engineer, you will be responsible for leading and implementing technical decisions and efforts of a software engineering team, overseeing and performing the development of high-quality software products, and enhancing our existing software platforms alone or with individuals of the same or similar role. The role requires a combination of strong leadership, advanced technical capabilities, and excellent communication skills. The successful candidate must have a deep understanding of the software development lifecycles, modern software engineering technologies and methodologies, and the ability to guide and inspire a team of talented engineers.
The Principal Software Engineer is the basic unit member of a future engineering department capable of taking the business where it needs to go. High performing, skilled engineers - capable of thriving in both a team environment and as individuals. In a gist, this is a coding/technical role with good management ownership mindset.
Your responsibilities will include: leading and managing a team of software engineers, fostering a creative and cohesive unit capable of delivering complex software projects coordinating with scrum masters, project managers and other software engineers to plan, design, develop, test, and maintain web-based and desktop applications providing technical leadership in all aspects of our software development processes overseeing the design, development, and implementation of new software systems and enhancements to existing systems ensuring all software engineering projects are delivered on time and to the agreed quality standards continually updating technical knowledge and skills and sharing them with the team maintaining high standards of software quality within the team by establishing good practices and habits providing regular performance feedback, coaching, and career development to team members facilitating root cause analysis of system issues and implementing resolution strategies. with a minimum of 7 years of hands-on experience in software development, including at least 3 years in a leadership capacity with extensive experience in various programming languages such as Java, C++, C# dot Net, Python, JavaScript, etc. competent in Object Oriented Design, functional programming, and even with straight forward scripting to solve problems. with solid experience as a full stack developer, capable of working proficiently at both the backend and frontend levels (ex: HTML, ES6, Virtual DOM like ReactJS, and DOM like bootstrap + jQuery). is aware of good User Experience (UX) practices and trends, capable of effectively proposing how to improve User Experience and understands when to trust clients/stakeholders on their chosen path of UX is familiar with modern software architectures (microservices, event-driven architectures) and deployment methodologies and tools (CI/CD, Docker, Kubernetes) believes that software quality is not the work alone of the Quality Assurance/Control team has practiced unit testing and Test-Driven Development (TDD and optionally Behavior-Driven Development (BDD) with experience in software development methodologies like Agile/Scrum. has a strong knowledge of database systems, both SQL and NoSQL, and entity relationship modelling. has excellent problem-solving and detail orientation skills possesses strong communication and interpersonal skills has proven ability to manage and prioritize multiple, concurrent projects is familiar with cloud platforms (AWS, Azure, Google Cloud) is a plus Additional Requirements: has a proven track record of managing all aspects of a successful software product throughout its lifecycle with solid understanding of the technology landscape including current and emerging technologies and best practices can inspire and motivate teams to deliver innovative and exciting solutions with an appropriate sense of urgency has demonstrated success in leading and managing a team of software engineers with a commitment to their growth and professional development has an exceptional project management and organization skills with strong customer focus and ability to manage client expectations proficient in system-level design and experience with web services and service-oriented architecture is familiar with version control systems such as Git has an experience in testing frameworks and practices, including unit, integration, and automated testing has an experience in securing software applications with excellent written and verbal communication skills, including the ability to explain complex technical concepts to a non-technical audience. is flexible to adapt to rapidly changing conditions and priorities has the ability to multi-task, prioritize tasks, and quickly adjust in a rapidly changing environment has the ability to furnish a comprehensive portfolio or provide examples of projects where they have successfully led the software engineering effort Our ideal candidate possesses the following qualities and traits:
proactive, adaptable, and flexible highly professional has the willingness to go the extra mile to achieve desired outcomes with strong collaboration and communication skills to work effectively with cross-functional teams with strong problem-solving skills committed to continuous improvements and willing to experiment with new approaches and techniques to work processes