My first software based internship has been a great learning curve and has exposed me to a variety of different technical and soft skills. Over the summer I have worked on developing a GUI and a Sniffer application.
The GUI is a PC Utility tool for commissioning an Active Response site installation while a site is being installed. Features include configuring hub parameters, installing test data and firmware upload. The GUI is also connected to database that is served by a MySQL server and data is inserted in various tables depending on which pushbutton is clicked.
The Sniffer is a 2.4GHz local sniffer that is used to sniff data when sensor bars communicate with the two different hubs. The purpose of the application is to monitor data traffic by capturing packets of data, decrypting them and printing them verbosely to the terminal. The Sniffer is constantly in receive mode and is agnostic to the frame length and type. It consists of a call back function for queuing each received frame in a FIFO so that no payload is dropped and a main loop for processing these frames.
In terms of exposure, I was introduced to the fields of networking and cryptography. I learnt to use PyQT5, MySQL, a structured approach to C and picked up effective debugging skills. Besides the technical skills I learnt to organise my thoughts and work better. The challenge of working remotely helped me improve my time management and communication skills.