Start Date
Immediate
Expiry Date
23 Nov, 26
Salary
0.0
Posted On
25 Aug, 26
Experience
0 year(s) or above
Remote Job
Yes
Telecommute
Yes
Sponsor Visa
No
Skills
Industry
Information Technology & Services
Contribute to the design and implementation of scalable software and system
architectures that meet functional, performance, reliability, and maintainability
requirements.
• Investigate, evaluate, and propose alternative concepts, architectures, designs,
algorithms, tools, and development processes.
• Assist in preparing system-level and software architecture and design
documentation.
• Develop, modify, debug, and maintain embedded software based on approved
requirements and designs.
• Develop and maintain software interfaces using protocols and buses such as CAN,
UART, SPI, I2C, Ethernet, TCP/IP, USB, GPIO, or similar interfaces.
• Develop and troubleshoot multithreaded, event driven, interrupt driven, and real
time software where applicable.
• Create and maintain supporting development assets, including scripts, build files,
makefiles, configuration files, deployment tools, and test utilities.
• Support cross compilation, embedded build environments, toolchains, and target
device deployment.
• Perform software, product, and system verification activities as required.
• Prepare technical documentation and supporting materials for design reviews, code
reviews, verification activities, and product releases.
• Prepare for and actively participate in software design reviews, architecture reviews,
and peer code reviews.
• Develop and execute unit, integration, regression, and system-level test procedures.
• Analyze test results, investigate defects, and implement corrective actions.
• Support system integration, troubleshooting, and testing across software and
hardware components.
• Assist with the preparation and execution of customer, regulatory, or internal
acceptance testing.
• Prepare software releases, release notes, installation instructions, configuration
records, and associated technical documentation.
• Assist in developing effort estimates for software design, development, integration,
verification, and release activities.
• Manage, administer, configure, and deploy local and remote development, test, and
production systems, including database servers where applicable.
• Follow established software development, configuration management,
cybersecurity, and quality assurance processes.
• Identify opportunities to improve software quality, development efficiency, test
coverage, and product performance.
• Take ownership of assigned deliverables and ensure they are completed accurately,
thoroughly, and to a high standard of quality.
Qualifications
Bachelor’s degree or diploma in Computer Engineering, Electrical Engineering,
Computer Science, Software Engineering, or a related technical discipline.
• Experience developing software for embedded systems, real-time systems, or
hardware-integrated products.
• Proficiency in C and/or C++.
• Experience with embedded operating systems, real-time operating systems, or
embedded Linux.
• Good understanding of processes, threads, synchronization, concurrency,
interrupts, timers, and inter process or inter task communication concepts.
• Understanding of software architecture, modular design, data structures,
algorithms, and software development lifecycle practices.
• Experience working with cross compilers, embedded toolchains, and target
hardware.
• Experience with source control and configuration management tools such as Git.
• Experience with build systems, makefiles, scripting languages, and automated
development or test tools.
• Ability to read and interpret technical requirements, system specifications,
hardware documentation, and interface definitions.
• Experience with software debugging, testing, defect investigation, and root-cause
analysis.
• Strong written and verbal communication skills.
• Ability to work independently and collaboratively within a multidisciplinary
engineering team.
Preferred Qualifications
• Experience with microcontrollers, microprocessors, device drivers, board support
packages, or firmware development.
• Experience with communication interfaces and protocols such as SPI, I2C, UART,
CAN, Ethernet, TCP/IP, USB, or similar technologies.
• Familiarity with hardware debugging tools such as oscilloscopes, logic analyzers,
debuggers, and protocol analyzers.
• Experience with continuous integration, automated testing, static analysis, and
code-quality tools.
• Experience with Python, Bash, or other scripting languages.
• Familiarity with databases, server administration, virtualization, containers, or
remote deployment environments.
• Familiarity with containers, remote deployment, and Linux systems where these
technologies are used as part of the embedded development or test environment.
• Experience working within regulated, safety-critical, or high-reliability development
environments.