If you have time, reading good books is one of the best ways to get a deeper understanding of software engineering. This, in turn, can also help on the interviews, especially on the system design round.
I recommend the following books:
- Effective Java – best book on Java, and I would recommend reading it even if you mostly use some other language.
- Designing Data-Intensive Applications – a very good overview of the big distributed systems, and one of the best technical books I've ever read.
- Clean Code – classic book on writing a good code.
- Building Microservices – good book on microservices (without any unnecessary hype around them) that also provides a good overview of topics of security, testing, deployment and others.
- Design Patterns by Gang of Four – classic book on design patterns. If you don't read all of it, make sure to at least know the following patterns: Singleton, Builder, Observer, Decorator, Facade.
- Cracking the Coding Interview – I've read just several interesting chapters from there, but it's still a solid book about interview preparation in particular.
- Modern Operating Systems – some chapters in this book provide a nice overview of hardware, memory management and other systems related concepts.
- Coders at Work – book of motivating interviews with great programmers.