The Elevator Pitch Do you want to gain hands-on experience in embedded software? Are you eager to learn and develop critical skills for your Evolv Technology is seeking a passionate and driven C++ Software Engineering Intern to join our Expedite engineering team. This internship offers hands-on experience building high-performance software for real-world safety and security applications. You’ll work alongside experienced engineers, contribute meaningful code, and gain deep exposure to modern C++ development, system-level debugging, and performance optimization. If you love solving complex problems, learning by doing, and seeing your work contribute to real product impact—this is the internship for you. Success in the Role: What will you accomplish? Weeks 1–2: Environment Setup Get set up with your development environment and tooling. Learn about the Expedite platform and relevant components of Evolv’s software stack. Assist in the design, development, and testing of C++ software modules. Write clean, efficient, and well-documented code with guidance from senior engineers. Participate in code reviews and learn Evolv’s engineering practices. Support debugging efforts by reproducing issues, analyzing logs, and validating fixes. Collaborate with QA, product management, and design partners to understand requirements. Between Weeks 3–8: You will Own a scoped engineering deliverable, such as: Enhancing a feature in the Expedite pipeline Improving system performance through profiling and optimization Implementing automated testing or developer tools Contributing to internal libraries or shared modules Troubleshoot software defects and implement fixes with increasing independence. Support ongoing development sprints and standups. Write unit tests and documentation to support maintainability and quality. Gain hands-on experience with system-level development on Linux. By the Week 10: You will Deliver a completed project demonstrating measurable impact to the Expedite platform. Present your work to the software engineering team, highlighting: Technical approach Challenges encountered Lessons learned Future recommendations Build confidence as an emerging software engineer ready for real-world development work. The Work: What type of work will you be doing? Core Software Development Contribute to the design, development, and enhancement of C++ applications within the Expedite product line. Implement features using modern C++ conventions and software design patterns. Write clean, maintainable, well-tested code following Evolv’s engineering standards. Work with system-level concepts such as concurrency, memory management, and performance tuning. Debugging & Troubleshooting Investigate software issues by analyzing logs, debugging with tools like GDB or Visual Studio, and reproducing bug scenarios. Collaborate with senior engineers to identify root causes and implement robust solutions. Support continuous integration and automated pipelines by validating builds and test results. Cross-Functional Collaboration Partner with QA to validate functionality and ensure high-quality releases. Collaborate with product managers to understand customer needs and translate requirements into technical solutions. Work alongside design and UX teams when contributing to user-facing functionality or workflow improvements. Tools, Automation & Internal Improvements Develop or enhance internal tools, test harnesses, or scripts (C++, Python, or shell) to improve developer productivity. Support automated testing frameworks and contribute to improved test coverage. Assist in refining build configurations (CMake, Make) for improved compilation, packaging, or deployment processes. Engineering Best Practices Participate in code reviews, providing constructive feedback and learning from others. Contribute to documentation, including design notes, feature specs, and troubleshooting guides. Apply principles of object-oriented design, modularity, and performance optimization throughout your work.