Software Engineer

KRUSH Tech Inc

$110K — $130K *
Technical Services
Less than 5 years of experience
Job Overview by Ladders

Qualifications

  • Bachelor's degree in Computer Engineering, Electrical Engineering, Computer Science, or related discipline.
  • 4+ years of experience in embedded software engineering.
  • Strong experience in embedded software architecture and system-level software development.
  • Advanced expertise in Embedded Linux, including kernel-space and user-space development.
  • Proven experience in developing high-performance, low-level drivers and system services.

Responsibilities

  • Design software architectures for Single Board Computer (SBC) platforms.
  • Develop low-level drivers, system services, and security mechanisms for embedded Linux.
  • Implement hardware-software integration solutions with various system components.
  • Develop and integrate communication protocol stacks, ensuring system communication is reliable.
  • Analyze and optimize system boot processes and resource utilization across SBC platforms.
  • Lead project technical activities, including task allocation and code reviews.
  • Investigate hardware-software interaction issues and execute testing scenarios.

Benefits

  • Health Care Plan
  • Retirement Plan
  • Paid Time Off
  • Family Leave
  • Free Food & Snacks
Full Job Description
As a Software Engineer, you will design, develop, integrate, and validate software for advanced Single Board Computer (SBC) platforms. You will work across the embedded software stack, from low-level drivers and system services to security mechanisms, software update frameworks, and user-space applications, ensuring high performance, reliability, and maintainability.

Working closely with hardware and software engineering teams, you will contribute to system architecture, hardware-software integration, platform selection, and product development from initial prototypes through production releases. This role is ideal for an experienced Embedded Linux engineer who enjoys solving complex system-level challenges, debugging hardware-software interactions, and taking technical ownership of critical software components.
Key Responsibilities
  • Design software architectures for Single Board Computer (SBC) platforms, defining component structures, module interactions, interfaces, and communication protocols.
  • Develop complex low-level drivers, system services, security mechanisms, and software update frameworks for embedded Linux platforms.
  • Implement advanced hardware-software integration solutions, including communication and interaction with FPGAs, external controllers, and other system components.
  • Develop and integrate complex communication protocol stacks, including Ethernet, USB, and CAN, ensuring reliable system communication and performance.
  • Analyze and optimize system boot processes, resource utilization, performance, and stability across SBC platforms.
  • Lead technical activities within projects, including task allocation, code reviews, technical decision-making, and code quality control.
  • Participate in the selection and evaluation of software and hardware platform architectures, including recommendations for hardware components and system configurations.
  • Investigate complex hardware-software interaction issues, including signal integrity problems, bus conflicts, noise, and other system-level failures.
  • Define and execute hardware platform test scenarios, perform detailed debugging and diagnostics, and support system validation activities.
  • Prepare, maintain, and support production software releases while ensuring appropriate documentation, testing, and release quality.
  • Share technical expertise with the team through mentoring, knowledge sharing, and technical guidance.

Requirements
  • Bachelor's degree in Computer Engineering, Electrical Engineering, Computer Science, or a related engineering discipline.
  • 4+ years of experience in embedded software engineering, with experience developing complex software for embedded systems.
  • Strong experience in embedded software architecture, module design, and system-level software development.
  • Advanced expertise in Embedded Linux, including both kernel-space and user-space development.
  • Proven experience developing high-performance, low-level drivers and system services.
  • Experience integrating complex communication protocols such as Ethernet, USB, and CAN.
  • Strong understanding of system boot processes, SBC resource management, and embedded system performance optimization.
  • Understanding of embedded systems security and secure software development practices.
  • Advanced debugging and diagnostic skills using JTAG, OpenOCD, GDB, and gdbserver.
  • Experience preparing and maintaining production software releases, including release testing and documentation.
  • Strong hands-on experience using oscilloscopes, logic analyzers, programmers, and hardware debuggers for low-level system diagnostics.
  • Experience analyzing hardware-software interaction issues, including communication bus conflicts, signal integrity, noise, and thermal or power-related issues.
  • Advanced proficiency with Yocto and/or Buildroot for embedded Linux development and system integration.
  • Experience with GCC and/or Clang, CI/CD systems, profiling and tracing tools, and Wireshark.
  • Familiarity with Doxygen and requirements and defect management tools such as Jira and Polarion.
  • Experience using Docker for embedded software build and development environments is a plus.
  • Strong analytical and problem-solving skills with the ability to work effectively across hardware and software engineering teams.

Benefits
  • Health Care Plan
  • Retirement Plan
  • Paid Time Off
  • Family Leave
  • Free Food & Snacks

Similar Jobs

More Jobs at KRUSH Tech Inc

More Technical Services Jobs

Find similar Software Engineer jobs: