3, 2, 1, lift-off! What did I learn from Space Technology Laboratory (STL)? - Part 2

This is the second post of the series on what did I learn from joining the space technology laboratory

3, 2, 1, lift-off! What did I learn from Space Technology Laboratory (STL)? - Part 2
Photo by ThisisEngineering RAEng / Unsplash

 Hi there, my name is Mark. I am a computer science student and avionics engineer at Space Technology Laboratory (STL), Tamkang University. For the past year, I have spent most of my time at the lab advancing the avionics systems. And here are the top four lessons I learned throughout these experiences. But before getting into the detail of the story, I would like to give my highest acknowledgment and appreciation to the friends and partners along this challenging but fantastic journey.

 In the second part of the post, I would like to share what I learned from the technical perspective, where the avionics team and I engineered and thrived on finding the solution for our sounding rocket mission. If you haven't heard about our laboratory, here are some videos briefly introducing our team and our laboratory.

Complexity is the ultimate emery of troubleshooting.

 Complexity often brings a lot of challenges for the debugger to locate the root cause of the issue since it has multiple layers of function that need to pass through. Also, it can be difficult for developers to have a bird-eye view of the overall system assembly. Therefore, mitigating the complexity that is redundant to the system architecture is even more important than designing specific components, as complexity often leads to a much difficult problem to resolve.  

Simplicity and clarity bring effective solutions and foster innovation.

 It is crucial to mitigate complexity within a system. Since the complexity of a system assembly often brings a higher risk of failure, we need to investigate the complexity of the overall system architecture and try our best to reduce "over-redundancy." A simple and straightforward design idea often regards as an elegant solution in engineering and mathematics. However, accomplishing such a level of complexity is challenging and usually requires us to have a first-principle mindset to solve this problem.

Effective communications between sectors are critical to a mission's success.

 Apart from solving challenging problems while mitigating the system's overall complexity, it is also vital for engineers to have solid and practical communication skills. However, communication skills are often forgotten by engineering institutions or students. On the surface, it seems like a project manager's job; however, if an engineer can have more effective communication skills, it could save tons of time communicating our idea on debugging and many other development tasks.

Consistency of design and protocol are the keys to mission development

 If you have developed a sizeable open-source project before, you will quickly find that it is essential to have a consistent API design or development guideline protocol. For example, here are some examples of when I designed API for the avionics systems we use for the NSPO sounding rocket missions.

  • get_NameOfFunction(void) -> Return value from the function
  • read_NameOfFunction(void) -> Read the value from the function and print it on the serial monitor
  • monitor_NameOfFunction(void) -> Monitor the status of the vehicle and call the corresponding function when a condition is satisfied

 I followed this protocol for every avionics software I developed within the laboratory. And it has dramatically improved the software's readability compared to the previous iteration of the launch mission.    

Knowledge management is as important as project management.

 Most of the time, within a software engineering project or any other kind of engineering program, it is common for software engineers to track their progress with project management software like Notion or Click-up. However, there is an essential concept in the world of software engineering, or any engineering field, in general, which is knowledge management. Knowledge management, in other words, is a technique that enables individuals or institutions to capture and build their collection of concepts and lesson-learned from their engineering or business ventures.

Finally, here are all the lessons I learned during my research membership in the Space Technology Laboratory at Tamkang University. I am grateful for all of the members of the avionics team and the dedicated faculty members to support our mission shot mission to the sky and beyond. Look up at the stars, not down your feet, and wonder what makes the universe exist!