The Internview: Jordan’s Solo Project
Here at DisplayNote, we currently run an intern program within our engineering team. For us, it’s an opportunity to gain fresh talent and perspective, a new approach to how we do things. For young professionals, it’s a chance to be exposed to the industry, to get hands-on with technology and problem-solving.
First up is Jordan, our Computer Science student from Queen’s University. We asked him a few questions about his project and what he’s learned so far.
Hi Jordan! Firstly, tell us a little about the project – what were your objectives?
In short, the project involved developing a tool that teachers can use to track lesson comprehension and (or) satisfaction from their pupils in real-time.
To do this, I made two applications using Xamarin.Forms: a Windows desktop teacher client and an Android student app.
The basic flow was:
1. Type in a room name and click the “Start Session” button
2. Give the room name to your students
3. Once they join and press an engagement button, the table showing the total counts will be updated, and a stacked bar chart will show the percentage distribution of those counts.
4. You can select the Historic tab to view the total amount of each feedback type received. This also produced a stacked bar chart over the entire session so far.
1. Type in the room name provided by the teacher
2. Press one of the buttons labelled Great, Good, Bad, or Very Bad
3. Wait on a cooldown timer between button presses
4. Repeat steps two and three
Did you encounter any challenges?
To connect the clients and have the Android app communicate with the Windows app, I used PubnubAPI. However, I discovered (after about four days of head-scratching) that it had unreported delays on their end for joining and exiting a session. The client received the join/leave confirmations before they had actually been processed server-side.
This led to the unexpected behaviour of:
1. Join a session
2. Once the join confirmation is returned from Pubnub, exit the session
3. Once the exit confirmation is returned, re-join immediately
4. Now Pubnub treats your messages as being sent twice instead of once
To fix this, I had to implement an artificial five-second delay after confirmations were received before joining/exiting.
What elements did you particularly enjoy?
Using Xamarin.Forms was nice, as I was able to write code that could be shared between both applications. This was a great learning experience in finding and using external libraries and integrating API usage into my applications – both of which I enjoyed doing.
What have you learned from the experience?
Using Git in this project has been the first time I’ve used any version control tools. I’ve also learned how to properly manage the flow of development (main-branch <- dev-branch <- feature-branch) and review pull requests from the other intern, Darryl.
Getting feedback on my code has been great for finding and tackling my own bad habits while programming.
And finally, how have you found the internship so far? (particularly working mostly remotely!)
I’m really enjoying my internship thus far. I’ve been given enough to do that I feel engaged, but not too much that I feel overwhelmed. Any help I need, I get without issue.
Working remotely hasn’t been too dissimilar from doing University remotely for the past year, so it hasn’t been a barrier…I think I honestly prefer it!
Next up on the agenda is a small group project using Qt/C++ with Darryl. This is to ease us into properly working on a project with multiple people before we join one of the engineering teams, hopefully working on the live projects (this is what I’m really looking forward to!).
We’re always on the lookout for fresh talent. If you’d like to find out about intern opportunities within our engineering or business teams, drop us a message at email@example.com.
Want to stay in the loop?
Keep up-to-date with everything DisplayNote – including new releases, job openings, and customer giveaways.
Don’t worry, we’ll not spam you and we’ll never share your email with anyone