### Software Development Papers

#### Classical Papers

**Leslie Lamport, 1978**Time, Clocks, and the Ordering of Events in a Distributed System**Ken Thomson, 1984**Reflections on Trusting Trust**James Hamilton, 2007**On Designing and Deploying Internet-Scale Services

#### API Design

**Joshua Bloch, 2006**How to design a good API and why it matters

#### Cryptography

**Whitfield Diffie and Martin E. Hellman, 1976**New Directions in Cryptography- EPC342-08 - Guidelines on cryptographic algorithms usage and key management
- rev. 13 in 2024
- contains recommendations on algorithms and key sizes

**Alex Biryukov, Daniel Dinu, and Dmitry Khovratovich**Argon2: the memory-hard function for password hashing and other applications- winner of the
*Password Hashing Competition*in 2015 - GitHub repository

- winner of the
**European Union Agency for Cybersecurity (ENISA)**Pseudonymisation techniques and best practices- EU advices on how personal data should be handled

**Jim Waldo, 2019**A Hitchhikerâ€™s Guide to the Blockchain Universe**Thomas Wu, 2002**SRP-6: Improvements and Refinements to the Secure Remote Password Prototol

#### Streaming Algorithms

**Robert Morris, 1977**Counting large numbers of events in small registers - approximate counting, the math in the paper is explained in**Ted Dunning, 2019**Computing Extremely Accurate Quantiles Using*t*-digest- algorithm for computing percentiles with very little space
- https://github.com/tdunning/t-digest

#### Distributed Systems

**Waldo, J., Wyant, G., Wollrath, A. & Kendall, S., 1994**A Note on Distributed Computing**Saltzer, J.H., Reed, D.P. & Clark, D.D., 1981**End-to-End Arguments in System Design

#### Memory Models and Synchronization

#### Quantum Computing

- Assessing the Quantum-Computing Landscape (
*Communications of the ACM, October 2022, Vol. 65 No. 10, Pages 57-65*) Overview article of the state of Quantum Computing in 2022.- currently most advanced quantum computers has less than 100 qubits. A general purpose computer would require approximately one million qubits to be useful. That is at least a decade away.
- the different cloud computing platforms are beginning to offer access to quantum computers - one of these is AWS Braket. Most of these are programmed using tools based on Python.