Senior Software Engineer
We are seeking an experienced Senior Software Engineer to lead the design, development, testing, and maintenance of software solutions throughout the full software development lifecycle. This role will be responsible for translating customer and business requirements into scalable software designs, leading technical development efforts, and ensuring software quality, performance, reliability, and compliance with applicable industry standards.Key ResponsibilitiesLead the design, development, testing, deployment, and maintenance of software applications and systems.Review, analyze, and translate customer and business requirements into software architecture and design solutions.Coordinate the development, enhancement, optimization, and integration of software products and system functionality.Develop, document, and maintain software architectures, requirements, algorithms, interfaces, and designs.Troubleshoot, debug, and resolve complex software issues to ensure system reliability and performance.Lead user support activities, including technical troubleshooting and analysis of user feedback.Research and evaluate emerging technologies, tools, frameworks, and industry trends to drive continuous improvement.Establish, monitor, and improve software development processes, tools, and performance metrics.Lead software research and development initiatives and maintain supporting technical documentation.Provide technical guidance on software engineering practices, system integration, and regulatory considerations.Manage software project activities, including planning, execution, risk management, and vendor coordination.Monitor and evaluate internal team and supplier performance to ensure compliance with project objectives and quality standards.Required QualificationsBachelor's degree in Computer Science, Software Engineering, Computer Engineering, or a related technical field.7+ years of professional experience across the software development lifecycle, including design, development, integration, verification, troubleshooting, project coordination, and process improvement.Experience working in Agile development environments using tools such as GitLab, VS Code, or similar platforms.Experience developing real-time or embedded software using one or more of the following languages:CC++JavaPythonRustAdaExperience working with Real-Time Operating Systems (RTOS).Strong collaboration and communication skills with the ability to work effectively across technical and non-technical teams.Understanding of hardware/software integration and system safety considerations.Preferred QualificationsBachelor's degree in Engineering, Computer Science, Mathematics, Physics, Data Science, or a related STEM discipline.9+ years of related software engineering experience.Experience with requirements management, configuration management, specifications, standards, and change control processes.Strong understanding of software architecture, design methodologies, and system-level engineering principles.Experience working with operating systems, processors, networks, and software integration environments.Knowledge of software development best practices, including coding standards, testing methodologies, quality assurance, and deployment processes.Proficiency with software development and testing tools such as compilers, debuggers, requirements management tools, data analysis tools, and development frameworks.Experience developing software for complex, mission-critical, or highly regulated systems.Knowledge of requirements decomposition, traceability, verification, and validation throughout the product lifecycle.Experience managing external vendors, suppliers, or outsourced development partners.Strong project management skills with the ability to manage deliverables, schedules, resources, risks, and stakeholder expectations.Familiarity with software verification, validation, quality assurance, safety, and compliance processes.