Logo
Cubic Corporation

Senior Software Engineer

Cubic Corporation, Ashburn, Virginia, United States, 22011


Business Unit

Cubic DefenseCompany Details

When you join Cubic, you become part of a company that creates and delivers technology solutions in transportation to make people’s lives easier by simplifying their daily journeys, and defense capabilities to help promote mission success and safety for those who serve their nation. Led by our talented teams around the world, Cubic is committed to solving global issues through innovation and service to our customers and partners. We have a top-tier portfolio of businesses, including Cubic Transportation Systems (CTS) and Cubic Defense (CD). Explore more on Cubic.com.Job DetailsRoles and Responsibilities:Design, develop, and implement software components for our XD products embedded systems (Embedded Linux) using C/C++.Utilize deep knowledge and understanding of embedded systems, including hardware-software interactions, low-level programming, and real-time constraints.Contribute to defining and designing the system architecture, including software components, interfaces, and system integration.Write efficient, maintainable, and well-documented code, and perform debugging and troubleshooting for embedded systems.Work closely with cross-functional teams, including developers and quality assurance teams, to ensure seamless integration and functionality of embedded software.Optimize software performance, memory utilization, and power consumption for embedded systems.Develop test plans, conduct unit testing, integration testing, and validation of software to ensure reliability and compliance with specifications.Create technical documentation, including design specifications, and guidelines for other team members.Adhere to industry standards, best practices, and coding guidelines relevant to software development.Stay updated with the latest trends, technologies, and advancements in embedded systems, software development methodologies, and tools.Identify and resolve technical challenges, performance bottlenecks, and issues.Qualifications / SkillsComprehensive understanding of embedded systems, including hardware-software interactions, real-time constraints, and low-level programming concepts.Extensive experience in developing applications on Embedded Linux platforms, including kernel space and user space development.Understanding of Linux kernel architecture, device drivers, and kernel modules.Proficiency in C/C++ programming languages, including strong knowledge of memory management, data structures, and multi-threading.Knowledge of embedded system security principles and best practices for securing embedded Linux applications.Understanding of embedded hardware components, microcontrollers, microprocessors, and their interfaces with software.Proficient in debugging tools and techniques for embedded systems to identify and resolve software-related issues.Familiarity with development tools such as debuggers, emulators, compilers, and IDEs commonly used in embedded systems development.Understanding of network protocols (TCP/IP, UDP), network configuration, and interfacing embedded systems with network services.Ability to design, architect, and develop software solutions for embedded systems, considering constraints and system requirements.Proficiency in using version control systems like Git for managing and maintaining embedded software code.Competence in creating test plans, performing unit testing, integration testing, and validation of embedded software.Capability to generate comprehensive technical documentation including design documents, APIs, and user manuals.Education & RequirementsBachelor’s degree in Computer Science, Computer Engineering or related technical discipline plus 10 or more years of relevant experience or Master’s degree in a relevant field with 8+ years relevant work experience. Must be able to obtain security clearance.Worker Type

Employee

#J-18808-Ljbffr