> Markdown version of [/jobs/ext/2581948-software-engineer](https://www.wearedevelopers.com/jobs/ext/2581948-software-engineer). Every page supports `.md` or `Accept: text/markdown`. Links point to the HTML versions so they work for humans too. Agent guide: [/agents.md](https://www.wearedevelopers.com/agents.md). --- # Software Engineer - **Company:** KRUSH Tech Inc - **Location:** Austin, TX, United States - **Experience:** Experienced - **Contract:** Permanent contract - **Skills:** Computer-Aided Design, JIRA, Booting (BIOS), Software Bug Management, UClibc (C Standard Library), Profiling, Software Quality, Code Review, Communications Protocols, Computer Engineering, System Configuration, Continuous Integration, Software Debugging, Linux on Embedded Systems, Embedded Software, Ethernet, Field-Programmable Gate Array (FPGA), Hardware Platform Interface, Joint Test Action (IEEE Standards), Performance Tuning, Signal Integrity, Software Engineering, Systems Architecture, System Testing, Systems Integration, Wireshark, Doxygen, Lasttests, Yocto, Information Technology, Hardware Infrastructure, Polarion, Docker, Hardware Debugging - **Published:** August 11, 2026 - **Apply:** https://www.indeed.com/viewjob?jk=29008779e56c618c ## About the Role * 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. ## 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. ## Related Videos - [More efficient software for more efficient microchips](https://www.wearedevelopers.com/videos/1164-more-efficient-software-for-more-efficient-microchips) - [Docker Compose: Rediscovered](https://www.wearedevelopers.com/videos/1978-docker-compose-rediscovered) - [Improving quality with Agentic AI with Rovo Dev and Xray](https://www.wearedevelopers.com/videos/2005-improving-quality-with-agentic-ai-with-rovo-dev-and-xray) - [For the Cars and the Curious: Android Drift](https://www.wearedevelopers.com/videos/499-for-the-cars-and-the-curious-android-drift) - [Docker build without Docker](https://www.wearedevelopers.com/videos/100114-docker-build-without-docker) - [Collaboration Quantified: Lessons from Open Source Developer Networks](https://www.wearedevelopers.com/videos/1422-collaboration-quantified-lessons-from-open-source-developer-networks) ## Related Articles - [What is Software Engineering?](https://www.wearedevelopers.com/magazine/289-what-is-software-engineering) - [Software Engineer Career: Things You Should Know](https://www.wearedevelopers.com/magazine/143-software-engineer-career-things-you-should-know) - [Is Software Engineering Hard?](https://www.wearedevelopers.com/magazine/448-is-software-engineering-hard) - [Is Software Engineering Over-Saturated?](https://www.wearedevelopers.com/magazine/418-is-software-engineering-over-saturated) - [The Best Software Developer Blogs to Read](https://www.wearedevelopers.com/magazine/156-the-best-software-developer-blogs-to-read) - [Résumé-Driven Development: How IT trends affect the job market for software developers](https://www.wearedevelopers.com/magazine/59-resume-driven-development-how-it-trends-affect-the-job-market-for-software-developers)