Software Engineer (Fresh Graduates Encouraged to Apply)
Entry-level software engineer (0-2 years) at National Instruments, part of Emerson, in Penang, developing software, firmware, and Windows/Linux device drivers for hardware platforms. Core stack is C/C++ with Python scripting, plus debugging tools like WinDbg; work spans design, testing, code reviews, and cross-functional collaboration in a hybrid setting.
- Compensation
- Not disclosed
- Location
- Batu Maung, Penang
- Work setup
- Hybrid
- Seniority
- Not specified
- Employment
- Not specified
- Experience
- 0+ years
- Category
- Software engineering
- Posted
Skills
Must have
- Bachelor's or Master's degree in Computer Science, Computer Engineering, Electrical Engineering, or related technical discipline
- Strong foundation in computer systems, software development, and programming using C/C++
- 0-2 years of software engineering experience; fresh graduates encouraged
- Understanding of software design principles, architecture, and development methodologies
- Knowledge of object-oriented programming concepts and software development best practices
- Familiarity with hardware-oriented or system-level programming
- Understanding of computer architecture, operating systems, and embedded/system software concepts
- Ability to contribute to software projects from design through implementation and testing
Nice to have
- Experience with Windows driver development
- Experience with Linux kernel-space and user-space driver development
- Familiarity with debugging/diagnostic tools such as WinDbg in Windows and Linux
- Experience developing and maintaining automated or unit tests
- Knowledge of scripting languages, such as Python
- Exposure to Agile software development practices
- Strong analytical and problem-solving skills
- Self-motivated, able to work independently and within a team
- Demonstrated ownership and accountability in delivering projects
- Ability to collaborate with global and cross-functional teams
- Strong verbal and written communication skills in English
- Comfortable working in a hybrid work environment
Full description
Position Summary:
As a Software Engineer, you will contribute to the design, development, testing, and maintenance of software solutions that enable innovative technology products and systems. Working within a collaborative engineering environment, you will develop software, firmware, and driver-level solutions while partnering with cross-functional teams to deliver reliable, secure, and high-quality products. This role provides an excellent opportunity for early-career professionals to build technical expertise, solve complex engineering challenges, and contribute to technologies that make a meaningful impact across global industries.
In This Role, Your Responsibilities Will Be:
- Develop software, firmware, and device drivers that unlock the full potential of systems and hardware platforms.
- Design, implement, validate, and maintain software features for both new and existing products.
- Drive innovation and continuous improvement by applying software engineering best practices to deliver high-quality solutions.
- Collaborate with cross-functional teams, including hardware, software, systems engineering, manufacturing, and other business units, to deliver integrated product solutions.
- Support the ongoing maintenance and enhancement of software products, ensuring they meet quality, reliability, performance, and cybersecurity requirements.
- Participate in code reviews, testing activities, and technical discussions to continuously improve product quality and development processes.
For This Role, You Will Need:
- Bachelor's or Master's degree in Computer Science, Computer Engineering, Electrical Engineering, or a related technical discipline.
- Strong foundation in computer systems, software development, and programming using C/C++.
- 0-2 years of software engineering experience. Recent graduates and early-career professionals are encouraged to apply.
- Understanding of software design principles, architecture, and development methodologies.
- Knowledge of object-oriented programming concepts and software development best practices.
- Familiarity with hardware-oriented or system-level programming.
- Understanding of computer architecture, operating systems, and embedded or system software concepts.
- Ability to contribute to software projects from design through implementation and testing.
Preferred Qualifications That Set You Apart:
- Experience with Windows driver development.
- Experience with Linux kernel-space and user-space driver development.