Brands, services, platforms and people
Try It by Career Calling

Software and Applications Engineers

Design, build and maintain software applications and cloud-based services, and facilitate collaboration and integration across different specialist ICT teams.

Professionals
Simulation

The night the website slowed down

You are a software engineer on a small team at an online grocery company, and it is the busiest night of the week. It is 5:30pm on a Thursday. Orders are flooding in for the weekend, and customers are starting to complain on social media that the site is slow. You are the engineer on call.

Choose what you would do. Then see what happens. There are often good reasons for each choice.

Pia, the customer support lead

We're getting dozens of messages from people who can't check out. They say the page just spins. Our phone lines are lighting up. Do we know what's going on yet? What can I tell them?

Tell her it is a problem with the customers' own internet connections
This could go wrong

Pia repeats it, and customers are told it is their fault. When it is clearly the site's problem, the company looks dishonest on top of slow.

Tell her you are looking into a slowdown, you do not have a cause yet and you will update her in fifteen minutes
Could work, with a catch

Pia can tell customers something true, but she was hoping for a message she could post. It is honest, though a line she could use right away would have helped more.

Give her a short, honest message to post, say you are working on it and agree a time for the next update
A strong call

Pia posts the message, and the angry comments soften. You get fifteen minutes of focus to work on the real problem. Communication buys you time.

Your monitoring dashboard

The database is running at its limit. A change released this afternoon looks like the only thing that is different from yesterday. You can undo it in a minute, but it also fixed a problem for a big customer.

Undo the afternoon change, tell the team and look into the cause afterward
A strong call

The site recovers within minutes. The big customer's problem returns, which you flag to the team with a plan. Restoring service first, then investigating, is the usual order in a crisis.

Leave the change in and try to tune the database instead
Could work, with a catch

You gain a bit of speed, but the site stays slow for another hour. You were trying to protect the fix, and the customers still suffer.

Add more servers and wait to see whether it improves
This could go wrong

It helps a little, and the bill grows. The underlying cause is still there, so the next busy night will bring the same problem.

Tomasz, a newer engineer

I think the change I wrote this afternoon caused it. I'm so sorry. I didn't test it with this many orders. Should I just fix it quietly in the morning so we can move on?

Tell him that is fine, and that it is better to say nothing so the team does not worry
This could go wrong

He feels relieved, but the lesson is lost and the team learns nothing. The same mistake appears three months later, and nobody knows it has happened before.

Thank him for telling you, share what happened with the team without blame and ask him to help write the fix
Could work, with a catch

The team learns and Tomasz stays involved, but he feels exposed when the story is told. A conversation with him first would have helped.

Thank him, ask what he would change next time, then plan a check for heavy load
A strong call

Tomasz leads a short talk the next day about testing at scale, and the team adds a check to the release. People stay honest when mistakes become lessons, not punishments.

How it went

The site is back, the team has a new check, and a newer engineer felt safe enough to speak up. Software engineers spend as much time reading, testing and talking as they do writing code, and the best ones care about the people on the other end. Is that the kind of problem-solving you would enjoy?

This is a simplified, fictional situation to help you explore. It is not professional instruction or a test of your ability.

Case study: The Friday release that waited until Monday

A fictional case set in a product team at a fictional online grocery delivery company, with developers, a designer and a product manager.

The situation

Anjali was a software engineer at Fernwood Fresh, an online grocery company. On a Friday afternoon, her team finished a change to how delivery times were shown. The product manager wanted it live before the weekend, which is the company's busiest time. Anjali had run the tests and they all passed, but she had a nagging feeling about how the change would behave with orders that were edited after being placed.

What they did

Anjali told the team she wanted to test that one extra case before releasing, and that it might push the release to Monday. The product manager was annoyed. Anjali spent an hour setting up the case and found that edited orders would show the wrong time. She wrote a fix, tested it, and agreed with the team to release on Monday morning when everyone could watch it.

How it turned out

The release went out on Monday without problems. The product manager admitted the weekend would have been hard if the bug had gone live. Anjali's team agreed to a simple rule: nothing risky goes out on a Friday afternoon, unless there is a very good reason.

What would you do?

  • How would you feel about holding up a release when everyone wanted it finished?
  • What might a gut feeling about code actually be telling you?
  • Why might a good engineer delete code as often as they write it?

Walk into a workplace