If you've ever been far away from someone you want to communicate with, you'll know how annoying daylight saving times & timezones make it to coordinate time across the world.
You don't want your users to have to have to reason about that, so you'll have to make your application do the work for them & display them the time at their location.
Dealing with time isn't necessarily difficult, you just have to be consistent.
Since I started working remotely, now almost 3 years ago, I've learned a thing or two about my productivity. These lessons are not necessarily tied to working remotely per se, they'll also apply in a traditional working environment. The remote aspect just forced us to rethink how we deal with time & communication.
Building scalable software means that you are prepared to accommodate growth. There are basically 2 things you need to consider as your data grows:
- Will requests be handled at a faster rate than they come in?
- Will my hardware be able to store all the data?
Obviously, you will need more infrastructure as you grow. You'll need more machines. You'll probably also need/want to introduce additional applications to help lighten the load, like cache servers, load balancers, ...