Senior Software Engineer
US$94,500 – US$198,000 / yr base salary
Posted 2 Sep 2026
Advertised as “Senior Software Engineer - Architecture & Systems Design”
BranchFactor Summary
The original posting with the fluff stripped out
- Expected experience
- 5+ yrs
- Management level
- Individual contributor
- Employment
- On-Site
- Contract
- Full-time
| Base salary | US$94,500 – US$198,000 / yr |
|---|
Field of studyComputer Engineering, Computer Science, Electrical Engineering, Software Engineering (or related)
Study levelBachelor's or higher
Job Title: Senior Software Engineer - Architecture & Systems Design
Job Category: Engineering
Time Type: Full time
Minimum Clearance Required to Start: None
Employee Type: Regular
Percentage of Travel Required: None
Type of Travel: None
* * *
The Opportunity:
- Design, architect, and implement complex embedded RF systems as part of a multi-disciplinary team working on specialized tools, sensors, and communications devices for demanding applications
- Contribute to software architecture decisions for inter-processor and microservice systems where your technical choices directly impact system performance, real-time behavior, and the ability to process high-rate RF data in resource-constrained environments
- Work with engineers across the full embedded system stack—from signal processing algorithms to FPGA fabric, from application layer to hardware interfaces
- Own technical design from initial architecture through production deployment, making practical trade-offs between competing constraints like schedule, performance, portability, and maintainability
Responsibilities:
- Design distributed software architectures spanning multiple processing domains (x86, ARM, FPGA fabric), defining communication patterns and data flows for real-time RF signal processing systems
- Develop high-performance C++ frameworks for inter-processor communication in systems where latency and throughput are critical constraints
- Create technical documentation including message sequence charts, UML class diagrams, and software architecture specifications that enable distributed teams to build complex systems correctly and efficiently
- Design microservice architectures for x86 and ARM platforms, balancing modularity, performance, and resource constraints
- Profile and optimize software for memory-bound and compute-bound workloads using tools like vTune, identifying bottlenecks and implementing measurable performance improvements
- Work with signal processing engineers to design data pipelines that move RF samples from ADCs through filters, demodulators, and decoders
- Develop debugging approaches for resource-constrained embedded systems where standard tools provide limited visibility
- Build C++/Python test harnesses and unit tests that generate representative workloads, validate system behavior, and verify edge cases
- Integrate modern development tools and practices including CI/CD pipelines, containerization, and build automation
- Collaborate with FPGA engineers to define hardware/software interfaces that leverage programmable logic capabilities while maintaining software flexibility