Principal Software Engineer
DEPARTMENT: Product Development
BUSINESS UNIT: Corporate
REPORTS TO: Director, Product Development
DIRECT REPORTS: No
YEARS OF EXPERIENCE: 7-40
POSITION OVERVIEW
The Principal Software Engineer role is an expert level position within the Development team, creating and updating programs to meet the needs of our customers. Using a variety of software languages, tools and techniques, the Principal Software Engineer delivers high quality products according to the specifications outlined by Product Management according to the standards set across the company.
RESPONSIBILITES:
Communication
- Create and document best practices guidelines and knowledge base articles.
- Structure communication for optimal readability and retention
- Communicate complex information to internal and external audiences.
- Create presentations, videos and other channels to communicate critical ideas and concepts
- Contribute to proposals and other customer communications
- Direct interaction with customers and vendors.
Technology
- Expert level knowledge of programming languages
- Expert level knowledge of database structures, queries and performance
- Expert on complex data structures, transformations, derivations, serialization…
- Expert on queuing theory, message handling, buffer management, threading…
- Experience with use of Open Source including licensing models, constraints and proper incorporation
- Advanced experience with User Interface/Experience design, testing, constraints, validation, technologies
- Expertise on API design and development with security, backwards compatibility, validation, error handling…
- Advanced experience with interface security, data encryption, ethical hacking and denial of service attack prevention
- Advanced expertise on Operating Systems, file systems, virtual machine management, maintenance, performance
- Advanced knowledge of network configuration including firewall usage, router management, load balancing
- Advanced knowledge of deployment technologies including Docker, Chef, Terraform
- Expert in software build technologies including source control, build and branching, automation
Development
- Able to quickly cross train and learn new technologies
- Architect, Design, implement and test enhancement feature requests to enhance product functionality as needed with minimal risk to existing product stability, reliability and performance
- Creates unit tests and proactively validates all developed software
- Drives to design decisions on new features
- Expert in troubleshooting defects independently and as a team lead
- 'Go to’ person for other departments with any technical issues that arise
- Writes and drives best practices for security guidelines internally and in developed software
- Expert in use of product ‘stories’ to create software meeting or exceeding customer needs
- Research and design of new architectures with leading edge technology
- Maintenance of existing components to improve performance and enhance functionality without regression
- Demonstrates extreme technical flexibility, and creativity in problem solving
Database
- Advanced knowledge of deployment, clustering, redundancy, backups, replication, HA and DR
- Advanced knowledge of performance analysis and tuning
- Expert in troubleshooting access, utilization, storage issues
- Advanced knowledge of ETL technologies, performance impacts, consistency checking
- Expert in security models with hierarchical access, layered deployments, access tracking and alerting
- Expert in key, buffering, caching management
- Experience with multiple database technologies including real-time, distributed, relational, Columnar, Graph, Object, hierarchical…
Testing
- Expert on security vulnerabilities and how to test for them
- Expert on Performance Testing concepts
- Drives a rigorous approach to quality assurance and testing
- Leads continuous test process improvement and creation of test/product metrics.
- Designs the Quality metrics for the company.
- Leads work on various new tools and technologies in test automation
Support
- Lead efforts with support engineers, professional services and sales engineers to investigate and handle customer and field escalated cases.
- Lead, coordinate, respond, track and follow-up on customer problem reports/technical support requests
- Leads technical investigation of product defects raised by customers or other groups
- Demonstrates highest standards of customer service and teamwork skills
- Drives improvements to monitoring, system reliability or other factors impacting customer platforms
- Designs technical plan of action for resolution of complex problems and execute them
- Proactively eliminates unnecessary or invalid support requests
- Expert at identifying root cause for any errors detected
Process
- Creates processes, guidelines, and best practices
- Coordinates the work of team members in the organization across various time zones.
- Create and document best practices guidelines and knowledge base articles.
- Must be able to switch between multiple tasks based on dynamic changing priorities.
- Create security and data segregation models
- Provide training and insights to employees on best practices, standards, and other criteria.
- Expert knowledge of overall development lifecycle, processes, and process improvement
- Creates abstract ideas across functional areas of the business
- Expert level understanding of Software Testing Fundamentals (Test Life cycle, Defect management, Types of testing etc.,)
Design and Architecture
- Drives design or process development in a broad scope.
- Creates new architecture and re-designs
- Coordinates with internal cross-functional members to understand system needs and/or necessary modifications.
- Participates in development in any of a range of product areas.
- Assesses, identifies and evaluates fundamental issues, providing strategy and direction for major functional areas.
- Creates complex code, design analysis, testing or experimentation on segments of projects.
- Performs work where problems are most complex and solutions are not predetermined.
- Drives the requirements elicitation process, assuring consistency and completeness
- Coordinate with Architects to create and maintain system architecture, roadmap, requirements and interfaces
- Think ahead and anticipate problems, issues and solutions
Management
- Acts as liaison between senior management and development teams
- Facilitates inter-department communication and enables cross functional collaboration.
- Sets direction for the teams, defines team goals and aligns team goals with corporate goals.
- Sets priorities for teams and resolves any conflict of priorities.
- Ability to think strategically and influence a broad group.
- Ability to coordinate efforts between multiple individuals and groups
- Able to refocus teams with directed plan of action under stressful conditions
QUALIFICATIONS AND EXPERIENCE:
General Qualifications:
- Able to communicate well with others
- Participate in meetings, sharing ideas, experiences and retaining shared information
- Ask questions without hesitation. Pursue resolution diligently until an answer is provided
- Write clearly, concisely and at a level appropriate for the intended audience
- Commit to Ontime Delivery of committed work product
- Deliver a level of quality commensurate with requirements
- Identify obstacles and seek out appropriate help in removing them
- Show high motivation and a strong drive for results
- Evolve knowledge of products, markets, and customer needs
- Review and provide constructive suggestions to others' work product
- Consistently demonstrate creativity necessary to solve problems
- Estimate time and resources required to accomplish goals
- Manifest a highly organized and detail-oriented work ethic
- Accept constructive criticism effectively
- Set SMART goals
Technical Qualifications:
This section will detail the specific skills and experience required for the position. This may include and not be limited to software development languages (Java, Ruby on Rails, React/Redux…), tool experience (Drools, Jasper reports, Spring…), database technologies (relational, graph, SQL…) or other skillsets needed for the specific requisition and team requirements. These will change for each job opening.
- Qualification/ Experience A
- Qualification/ Experience B
Years of Experience: 7-40
PHYSICAL REQUIREMENTS:
General office environment and responsibilities requiring:
- Extensive use of computers involving viewing a monitor and keyboarding most of the workday
- Placing, receiving and participating in conference calls
- Occasionally moving and lifting objects up to 20 pounds
- May require 10% travel or more if needed