Back in London I started working in the fashion industry.
As I hinted at earlier, I got this job directly as a result of my JSON
library. They used it in their mobile apps and were keen on hiring me,
but they didn't have any open positions. The mobile team lead, an
amazingly resourceful woman, convinced the Chief Architect that he
should hire me to his team instead, and use me to help her mobile team.
For the next two years I worked with different teams to help them
integrate with the mobile team's apps. After that I becames tech lead for
the product service team. They had a problem: every year during the
Christmas sale the website would become too busy and crash because of all
This was around September, I think. During Christmas Sale later that year
the site did not fall over due to high load, for the first time in six
years. This was a massive boost to morale for the team. To achieve it, we
mainly added lots and lots of caching.
What is caching, you ask?
ask audience; ask responder for their name & class
Let's say Bernie asks Alex what the time is. Alex doesn't have a
wristwatch (who has nowadays?) so has to take their phone out of their
pocket, turn it on and read out the time. Bernie is happy that it's
A minute later Cass asks Alex for the time. Because Alex knows what the
time was a minute ago, and it hasn't changed enough to matter to Cass,
Alex don't need to get their phone out of their pocket. The same time
they told Alex. Alex used their cached answer from before to do less
work answering Cass.
Some time later Dara asks the time. Alex's cached answer is now too old
to be accurate, so Alex goes through the whole process of taking their
phone out to check the time again. We say that Alex's cache had `timed
Immediately after Dara has gone skipping down the hallway Ennis asks Alex
what date it is. Alex has the patience of a saint and gets their phone out
again. Alex has a cache but the information in it was not relevant,
so we say they experienced a cache miss.
Finally Finley comes along to ask what year it is, and Alex says to
jump out the window. Even saints have their limits. It's a good thing
they were on the ground floor, really.
Timeouts & cache invalidation, by the way, are two fundamental problems
in computer science that go hand in hand. What do you cache? How much
storage do you use for your cache, and how long do you cache for?
There are always tradeoffs—it's never a clear-cut situation.
I really liked this team, and the company, but my wife and I wanted to
move to Northumberland. I asked the company if I could work from home up
here, but they said no—which made me sad. I decided to quit, so I could
move here anyway. I left around the middle of March last year and moved
up here three weeks later.