Programming Level 4 - Software Architecture & Innovation
High-level software architecture and technical leadership
Table of content
Learning Objective
Lead robot-level software architecture development with advanced system design patterns and performance optimization, set up continuous integration for robot code, pioneer innovative software solutions through research and development of cutting-edge algorithms, implement comprehensive testing frameworks, and mentor future programmers while building sustainable development practices. This level represents a proven, multi-season record of excellence in software design, and is expected to take several seasons to accumulate the prerequisites and requirements it involves.
Prerequisites
- Programming Level 3 - Advanced Systems Integration
- Project Management Level 2 - Team Coordination
- Electrical Level 3 - Advanced Control Systems
Primary Resources
- Littleton Robotics (6328): AdvantageKit
- Huskie Robotics (3061) swerve library and documentation
- WPILib: Unit Testing
- FIRST Excellence in Engineering Award Workbook
Tasks
-
Software Architecture
- Design a scalable software architecture for the season's robot code
- Lead the software development team
- Set up continuous integration for robot code (automated build/test on every push)
- Coordinate software with all technical disciplines
-
Advanced Algorithms
- Implement advanced path planning or trajectory-generation algorithms
- Develop a custom control algorithm for a specific mechanism
- Optimize algorithms for competition performance
- Research and implement a cutting-edge technique from another team's public code
-
System Performance
- Profile and optimize code performance (loop overrun diagnosis, CPU usage)
- Implement real-time system monitoring using telemetry/dashboards
- Design fault-tolerant software (graceful handling of a disconnected sensor, etc.)
- Validate software reliability across a full season
-
Leadership & Innovation
- Mentor programming team members through their own Level 1-3 progression
- Research advanced software techniques from other teams' public code (#openalliance)
- Document architectural decisions for future teams
- Build sustainable development practices
Level 4 Completion Requirements
- Lead the software architecture for a season's robot, reviewed and signed off by a mentor
- Implement at least one innovative algorithm or technique validated through testing
- Demonstrate sustained mentorship of at least one junior programmer through their own progression
- Create lasting technical documentation for future teams