In its simplest manifestation, a finite-difference scheme discretizes a system of partial differential equations directly onto a regular, Cartesian mesh. Since such finite-difference schemes can readily scale to simulations with millions of elements, they have become popular for addressing complex physical simulations. Here we discuss two applications of finite-difference techniques. The first is the use of the Finite-Difference Time-Domain (FDTD) algorithm for simulating Maxwell's Equations in nanophotonic devices such as photonic crystals; the second is a customized multi-physics simulator for non-volatile electronic phase-change memory. The latter solves the diffusion equation by finite-difference techniques in order to simulate heat diffusion as well as to compute the steady--state potentials satisfying Laplace's equation. The tight relationship between the choices of spatial and temporal steps ("Courant stability"), and the resulting impact on the two different finite-difference schemes, will be discussed.