Time flies! I am already into the 3rd week of the internship, which is also a perfect time for a retrospective. This is an honest share to what working remotely has been like for me and also a report to record what I’ve been doing these three weeks.
About Working Remotely
A walkthrough of my first few days
Woke up in the morning with a sense of guilt. It felt extremely weird not having to rush through the morning chores and get onto the train for work. At 10 I finally sat down on the couch in the living room, stared at the TV in front of me. Without much thought I turned it on and when it got turned off, it was already noon. “What the ****!”, my head was banging inside as more guilt poured into me.
“I really can’t go on like this”, my brain whispered to myself. Finally, I got up and cleaned out a room for “work”. Whenever I sit at this spot, it means I cannot do anything else but work.
Home used to be a place where only relaxation took place, it was super hard to concentrate on a task for more than one hour. I really had to physically clear out a space that’s exclusive for work and while at it I should do nothing else but work. Without a doubt it was guilt that pushed me forward during the first week.
11 hours of time difference
I have two mentors (terceiro and elbrus) and we live in three completely different time zones. The weekly sync meeting took place at 19:00 for me, which is 8:00 for terceiro and 13:00 for elbrus. Most of what I’m working on relates to terceiro, so that meant we have 11 hours of time difference.
To get through this, I made a decision to cut my time in half towards the end of week 2. I will work 6 hours in the day and 2 hours during midnight. This way, if I had to discuss or ask questions, I can have two chances each day. My mentors are also in full-time jobs, so I wouldn’t want to trouble them too much (but I still bump into issues every while and then).
Working out a system
I admit that I am not a person with good self control. In order to commit 40 hours to work each week, this is the current strategy I have started using at week 2.
- Log what I did every day
- Do not eat at “the working spot”
- Make sure I have “off” hours
Log what I did every day
I tried to write a todo list every day, but that didn’t work out well for me. Sometimes I do get stuck on stuff, and that gives me a lot of pressure for not getting things “done”. At the end of the day, my morale got low and then the next day I started with no energy.
By logging what I did every day, especially the obstacles I bumped into and how it got solved kept me energetic, because I know I am learning something every day. When you didn’t do anything that day, meaning that the log is completely empty, guilt will build up and make sure you do something before the day ends.
Do not eat at “the working spot”
Not doing anything else at “the working spot” was actually quite easy except for eating. I thought I could get more done when I ate at my desk, but that was totally wrong. Before working remotely, taking a break after lunch was my habit. It’s not hard to imagine that after I finished lunch at “the working spot”, I started fumbling around and that put me into a late start for the afternoon.
Make sure I have “off” hours
This was the most difficult of all! “Decide for yourself when to work and when not to work”, this was probably a slogan to get people sold on working remotely. When there is no hard lines on getting to work and getting off work often becomes, working a bit the whole day. You feel like you are working or thinking about the project 24 hours, but it doesn’t seem like you have done much for a 24 hour workload.
Finally, after three weeks of adjustments, I think I can see the silver lining of how this is going to work. Hope all goes well until the end of the internship!
Week 1: Vagrant
During the application process, quite a few applicants were stuck at setting up the development environment for debci. I would like to improve the experience. At first, I used docker because I was more familiar with it. After finding an empty
VagrantFile in the repository, I decided to try something new and went with vagrant. Learned some shell script and user permissions during the process and the biggest find was to use the
debian/contrib-stretch64 box rather than
debian/stretch64. The contrib version contains the guest addition stuff.
Week 2: Starting First Tasks
I worked on opening a self service section for users to requests tests themselves this week. Got stuck a little bit every step of the way, but not really stuck. Interesting finds that I would like to log.
- For static file generation, create a symlink in
publicdirectory to the file to be generated in
public/data/.htmland add it to
- Sinatra automatically loads
layout.erbif it exists, and you can change
set :views, <PATH>to change the default directory to store the erb files
- In order to use Ruby to print to stdout when using
foreman startyou have to add
$stdout.sync = truebefore the print runs
- Use the general test API in order to fulfill all the user stories
- Decide to use Ruby to generate dynamic HTML through erb templates, because it could be more customizable
lib/debci/html.rbfor static file generation to work
Week 3: Searching, Pagination & UX
This week, besides the Self Service section, I also tried fixing the search package part of the index page. Currently it just takes what the user inputs and redirect them to the page which may or may not exist.
Things I did or should log down for this week:
- Dependencies are managed here:
- Learned to query data with ActiveRecord and used kaminari for pagination
- Fixed API documentation link in the Debian WIKI Page: https://wiki.debian.org/ContinuousIntegration/DebianSetup
- Sketched out a draft UI for Self Service section
That’s all for now, these weekly updates will start to come “weekly” after this post.