Developer Chris working on his computer

A Week in the Life of a Software Engineer at Perlego

What’s it like to be a full-stack engineer at one of the UK’s fastest growing startups? The highs and lows of a week as a Software Engineer at Perlego… during a pandemic.

Chris Taylor
Perlego
Published in
13 min readNov 24, 2020

--

2020 has been a surreal year. We’ve suffered the loss of lives and personal freedoms due to Coronavirus. It has been characterised by a grand upheaval of lifestyles, cultural preconceptions, and habits. At a daily level, the most significant change is the enforced switch to working remotely, away from the hive of energy that is the office. I’ve had the unique experience of joining on the day that Perlego made this switch. This article provides a glimpse into life here and shows why it is a fantastic place to work.

Perlego is an Edtech startup, founded in 2016 by Gauthier van Malderen and Matt Davis. Perlego is a streaming platform for non-fiction books and textbooks. We have built an online library, which currently has over 500k books available on the platform.

To set the scene, this hypothetical week takes place in the second week of a 2-week sprint. I’m in the Web A team, focusing on the Perlego web application, and we are ahead of schedule but still have two more user stories to complete by the end of this sprint.

Monday

9.03 AM.

Morning team”, I type on my team’s Slack channel. I’ve just about woken up, survived a lukewarm shower and ready for the day ahead.

9.30 AM. All Hands

At 9.30 am, on the dot, I jump onto a packed Zoom call for our weekly All Hands meeting with the company. Gaut (short for Gauthier — our CEO) is making jokes and remarking on the different remote settings… looks like Mark (one of our Product Owners) is calling in from a Spanish hut whilst rock-climbing and Asil (our Talent Lead) has just finished his home-office shed in the backyard! After the banter from the weekend dies down, it’s down to business, each VP/Function Heads runs through high-level goals and plans for the coming week.

10.00 AM. Daily Standup

A short break later and I’m back in another meeting. This time it’s the Daily Standup, which is more of a Daily Sit-down or Daily Lie on the Sofa than it is a Daily Standup at the moment. Ellie, our team lead, runs through the priorities for the rest of the sprint. We have to complete a microservice endpoint and 4 React components this week. Light work.

We each outline the work done last Friday, the tasks for today and any blockers. After nominating each other, we’re done, voilà.

10.30 AM. Work time

I’m a multitasker. My head is already thinking through my work as the Daily Standup tails off. VSCode open, ITerm on the other monitor, I put on my noise-canceling headphones and play Spotify’s Lofi House playlist on shuffle. I’m ready.

I’m working on writing a React component to be used on one of the pages on the Perlego website. At the end of this Summer, Perlego went through a major rebranding effort. We’ve unveiled a new brand that fits our mission. In development terms, that equals lots of new or refactored UI features and components. By this point, our team has an almost metronomic rhythm to delivering quality, thoroughly tested React components so this work didn’t pose many difficulties for us.

1.30 PM. Lunch

Despite the central location in Holborn, we “Perlegoers” are spread evenly across London. I’m fortunate to live within a 20-minute walk of Battersea Park, so I make the walk over, grab some lunch and get back to my flat.

2.30 PM. Work

I continue where I left off in the morning. I commit my changes, run the unit tests and submit a pull request, hoping that one of my team members will approve it pronto.

4.30 PM. Mocha Monday

After many months into the pandemic, we’ve finally given our casual afternoon company catch-up a name. Mocha Monday. We get a good turnout for these sessions. It’s a good time to catch up with people that you may not have seen for the previous couple of weeks. Romain (one of our Tech Leads) suggests organising a company ski trip again … a few of us start getting excited before letting reality sink in that planning trips for the future, in a pandemic, is an impossible task. It’s like trying to guess the length of time a user story will take — it’s a losing battle!

5.00 PM. Work

To finish the day, I have an impromptu catch up call with Tiph, our team’s product owner and designer. The padding around the component is incorrect, and it looks even worse on mobile! One quick call and fix later, it is pushed to the dev branch and has passed Design Review.

6.00 PM. Switch Off

Tuesday

9.30 AM. Work

After a morning run, I hop online and start working. One of the adjustments at Perlego this year has been the introduction of core hours. Meetings, such as Daily Standup, have been shifted back by half an hour and other key meetings are scheduled to be between 10 am and 4 pm. Going for a run in the morning clears my mind and prepares me for a day of deep work.

10.00 AM. Daily Standup

During Stand Up, I set aside yesterday’s focus on the frontend of the application, shifting my attention to the backend. One of my responsibilities at Perlego is to create and maintain AWS Lambda functions where required. Given the nature of the work discussed in today’s standup, we involve one member of Perlego’s DevOps team to run through the infrastructure changes that we require.

10.30 AM. Work

Backend programming is a different kettle of fish to working on the frontend of an application. It requires more patience and concentration. I switch my Slack status to the brain emoji, fire up VSCode and Insomnia (my Rest API client of choice) and crack on with the task at hand.

2.00 PM. Lunch

3.00 PM. IKS

This afternoon, I have set aside some time to work on IKS. This acronym refers to Innovation & Knowledge Sharing, a scheme devised to allow the individuals in the product team to switch focus onto a different project for a morning or afternoon each sprint. These projects can be outside of the scope of my usual work and using different technologies, however, the projects need to display an aim of improving the product in one way or another.

This afternoon, I will be delving into the complex world of Web Performance. Before this session, my existing knowledge has been limited to looking at the output from Lighthouse reports. To research a topic, I create a new private Notion document and set out the points that I want to understand in this session. The points that I set out in this IKS session are “SEO & Web Performance”, “Testing Performance using Cypress” and “Ways to Measure Core Web Vitals”. I review Perlego’s current approach to these and research improved methods.

6.30 PM. Finish Work

After a few hours of research this afternoon, I have a much better understanding of the concepts explained in Lighthouse and have started to write out my findings in our company Notion workspace. IKS sessions provide the time and freedom to learn and the continuity to building on that knowledge

“It’s a privilege to work at Perlego. We are in the process of building an incredible product, one that many budding entrepreneurs will be scratching their heads wondering : ‘why didn’t I think of that?’ ”

Chris and the other new joiners on a group Zoom call
First day at Perlego for Chris — and also the first day of lockdown in March 😣
Wednesday

9.00 AM. Start Working

Hump day. It’s foggy outside. Days like this make you miss the time spent working with colleagues in an office, even if the morning commute sucks. Only 4 of the team can muster a “morning” on the Slack channel.

I often enjoy days like today. It is usually a slow burn, but I force myself into being productive and feel accomplished at the end of the day.

10.00 AM. Daily Standup

We take part in our typical Daily Standup (DS) routine. I run through my learnings in IKS on Tuesday and mention a blocker related to the microservice that I encountered the previous morning. I agree to pair program with one of the other engineers in the Web A team in the afternoon.

Kash, the QA Engineer in our team, raises issues with two failing end-to-end tests and we agree to a quick call to outline the issues first thing.

10.30 AM. Catch up with QA Engineer

At the start of my tenure at Perlego, we dedicated a sprint to learning to use Cypress, an End-to-End (E2E) testing framework, as part of the focus on software quality in 2020. 6 months on and we have a range E2E test suites encompassing all of the web application pages.

One of my responsibilities has been to review, debug and fix issues raised in the Cypress dashboard. Kash, having mentioned it in the DS, starts a Slack call to hash it out. Having spent a sprint learning the fundamentals of Cypress, I am able to work with Kash to resolve the issue.

11.30 AM. Back to React

Tiph has left feedback on two frontend tasks completed yesterday, so I switch contexts to making the changes. Our summer rebranding included an emphasis on the accessibility of the website. When developing components, we run tests on the pages in question using the WAVE and Axe tools.

12.45 PM. Lunch

1.45 PM. Pair Programming

Following on from the blocker mentioned in DS, Mo and I (a fellow dev in my squad) have arranged a Pair Programming session to discuss what is broken and the potential solutions.

One tool that has come into its own in the pandemic is VSCode Live Share. As time has gone on throughout this year, the engineers within the team have become more accustomed to Live Share. I set up the Session and send over the link for Mo to join. I start the API and set up a Live Share Server on port 3000 — this enables Mo to test the API using my local server.

After a couple of hours, we have found the issue and committed fixes to the endpoint. As an engineer, Pair Programming is one of the most enjoyable ways to work. Not only does it provide more of a casual setting for writing code, I often find that I can get twice as much done as we can discuss ideas and implement them in real-time. Pair programming can work better virtually than in person, given that both users can read and write code simultaneously in real-time.

4.30 PM. Planning Poker

We finish the day with one of the most important meetings of each sprint. In Planning Poker, we estimate the complexity of stories coming up in future sprints. For each user story, we estimate the number of story points and argue the case for the specific number.

6.00 PM. End of Day

Thursday

9.15 AM. Start Working

A slightly later start today, but I’m more fired up than yesterday since there is a great deal of work to complete prior to Friday’s Sprint Review.

To start the day, I assign myself a couple of small bugs that are completed before the Daily Standup.

10.00 AM Daily Standup

Ellie rounds us all up and outlines the priority items to be completed before the end of the sprint. Having completed the endpoints and components between the engineers earlier in the week, most of the rest of the work comes down to fixing issues that have been outlined in the Design Review stage.

10.30 AM Work

Thursday before the Sprint Review are detail-orientated days. They are days to focus on the small flaws with the work completed in the current sprint, review edge cases and ensure that all the tests have been written correctly.

2.00 PM Lunch

3.00 PM Work

Kash throws a spanner in the works by finding a UI error, which occurs when viewing a new component on an iPhone 10 in landscape mode. It is very much an edge case but needs to be fixed prior to the release next week.

After rushing to replicate this issue, I find a solution, make the fix, and thoroughly test the component to death.

5.30 PM Prepare for Sprint Review

Near the end of the day, Tiph requests some feedback for the Sprint Review presentation. The Sprint Review is the most important scrum ceremony at Perlego. Everyone is incredibly busy, so we need to make the most of the opportunity to get feedback on our work from all corners of the business.

Each of the engineers within the team chips in with their thoughts on key learnings and pain points from the previous sprint, watered down enough that it is understandable for those who are not technically inclined.

6.15 PM Switch Off

We’re nearly done for the Sprint. We’re in a good position this Sprint — we’re completed all user stories and there are a few remaining bugs set aside for this sprint in the Jira Board.

Friday

9.00 AM Prepare for the Day

I get online at 9 am. We have a pretty strict, regular release schedule which keeps all the engineers on their toes to ensure that bugs are not shipped on release in the next week. Before the Sprint Review, I have time to fix a couple of the bugs assigned for this sprint.

10.00 AM Daily Standup

In standup, we discuss the remaining work that needs to be completed by lunchtime. The mood of the discussion is pretty good as we are ahead of schedule to complete the work designated for this sprint.

We find out the order of our team’s sprint review amongst the other teams. It will be at 2.30 pm today — Tiph sets the order of who speaks during the presentation and gives us the brief.

10.30 AM Work

Every once in a while, I will be involved in writing the details for a couple of the slides in the presentation. However, this week the team lead has handled this, so I work on fixing bugs in the morning.

12.30 PM Lunch

1.30 PM Work

We’ve been allocated sections to speak about in the Sprint Review. Speaking in the Sprint Review, in front of 20 or so people, is not mandatory, however, it’s not something that has really bothered me. After being allocated a slot, I will write a few notes down to provide guidance for the presentation.

2.30 PM. Sprint Review

I jump onto the Zoom call, just to hear the remaining 5 minutes of the previous team’s review. It is often interesting to listen to all the teams in full in the background and discover the new features that they are adding to the various applications.

The actual Sprint Review runs smoothly. During the pandemic, the virtual approach to the presentations has worked a treat. Each slide is straight to the point — we attempt to keep the fluff to a minimum. The final slide for every team is titled “Show and Tell”, in which we demo our work to the interested parties. We grapple with Zoom to switch the shared screen to the browser window and run through the functionality of the new features.

After the demo, we receive feedback and questions from various stakeholders across Perlego. There are three main goals to be achieved in these meetings — to discuss solutions, provide visibility of the scope of work, and to hold the team to account.

3.30 PM. Sprint Retrospective

The team agrees to have a short break after the Sprint Review before the final meeting of the week — Sprint Retrospective.

We hop onto another Zoom call with each member of the Web A team and start to add our thoughts to our Retro template on Notion. The template is a grid with 3 columns and 3 rows. The columns represent “Mad”, “Sad” and “Glad”, which capture the general vibe of the comment, whereas the rows represent “Start of Sprint”, “Middle of Sprint” and “End of Sprint”.

After a semi-silent 20 minutes, capturing our thoughts from the Sprint, we run through the comments in each column. The person who wrote the comment reads out the comment and discusses why they felt that way. We make a list of actions to be completed in the next Sprint if required.

Today’s retro has been very positive. We received a few testing questions in the Sprint Review, but nothing that needs to be amended amongst the team for the coming fortnight.

4.30 PM. Loose Ends

I have a few loose ends to complete before the end of the day. There are a couple of Pull Requests, waiting for a review on Github. I skim through the code, approve and merge into the development branch.

5.00 PM. Perlego Social

When I joined the company, much was made about the company culture. Having experienced a few days in the office, it is immediately noticeable that Perlego is a very sociable group to work with. Unfortunately, some of this is lost during the lockdowns (Want to know how we are keeping our social culture during lockdown? Read Mark’s article).

Every now and again, on a Friday afternoon, the social committee will organise a virtual social event. In the past year, there have been multiple pub quizzes, a Welsh language lesson, a casual guide to (abhorrent) food in New Zealand, and a few failed attempts at performing a coordinated Mexican wave in the Zoom call.

All that in one week? This hypothetical week at Perlego doesn’t happen every week, but it encapsulates the atmosphere that I’ve experienced in my 8 months of working as a Software Engineer at Perlego. There are days for deep, focused work and there are days where our communication skills get tested.

It’s a privilege to work at Perlego. We are in the process of building an incredible product, one that many budding entrepreneurs will be scratching their heads wondering “why didn’t I think of that?”, and one that has scope to alter the way that students and professionals read and learn for the foreseeable future.

👀 See the Perlego Careers page for the current list of vacancies — we are hiring!

Thinking of becoming a Software Engineer? Start by reading these:

👩‍💻 Foundations of Software Engineering

🌟 Software Testing and Continuous Quality Improvement

💡 Scrum For Dummies

--

--