BullionVault course · resources
resources
Resources
Primary sources, ordered by trust. Nothing here is from memory.
Ordered by trust. Primary sources first; blogs only where they are the canonical explanation of a thing.
The role itself
Bullion Vault - Java Developer - CS Spec.docx
- Type: Job spec (Client Server Ltd, the recruiting agency — "CS" = Client Server)
- Where:
~/Desktop/Bullion Vault - Java Developer - CS Spec.docx
- Trust: Primary — this is the actual brief
- Covers: Stack list, three requirement bullets, three responsibility bullets
- Note: Contains no technical exercise and no "commodities service". The exercise in this course is constructed from BullionVault's real published trading mechanics (below), not from the spec.
BullionVault Help — Order Board & Order Panel
- Type: Company documentation
- Where: https://www.bullionvault.com/help/use_order_panel_d.html
- Trust: Primary — how the product actually behaves
- Covers: Limit orders, price improvement ("you will deal at a better price than your limit price if someone is still quoting better"), partial matches resting on the board, killing only the unexecuted part
BullionVault Help — Tariff
- Type: Company documentation
- Where: https://www.bullionvault.com/help/tariff.html
- Trust: Primary
- Covers: Commission bands (0.50% under $75k, 0.10% to $825k, 0.05% above), rates calculated per metal, reset on account anniversary, custody rates and monthly minimums, and the critical sentence: "charged in whole pennies or cents"
BullionVault Help — Markets / interface FAQ
- Type: Company documentation
- Where: https://www.bullionvault.com/help/FAQs/FAQs_interface_1.html
- Trust: Primary
- Covers: Orders placed in kilograms; balances quoted in kilograms; trading in increments as small as 1 gram; spot counterparty quotes per troy ounce converted to per kilogram for execution and settlement
Java — money, numbers, rounding
java.math.BigDecimal API documentation (Java 25)
- Type: Language reference
- Where: https://docs.oracle.com/en/java/javase/25/docs/api/java.base/java/math/BigDecimal.html
- Trust: Primary — the spec, not an explanation of it
- Covers:
divide throwing ArithmeticException on non-terminating expansion, setScale, RoundingMode, why equals compares scale and compareTo does not
- Read for: Lesson 0001. Read the class-level javadoc, not just methods.
JSR 354 / javax.money — Money and Currency API
- Type: Standard
- Where: https://jcp.org/en/jsr/detail?id=354
- Trust: High
- Covers: Why a
Money type is a type and not a BigDecimal alias
- Read for: Vocabulary when defending your design in the interview.
Java — concurrency
Java Concurrency in Practice — Goetz et al.
- Type: Book
- Trust: Primary — still the reference despite its age
- Covers: Ch. 2 (read-modify-write, check-then-act), Ch. 4 (composing objects), Ch. 15 (atomics and CAS)
- Read for: Lesson 0003. Chapter 2 alone is the whole lost-update lesson.
java.util.concurrent.atomic package summary
- Type: Language reference
- Where: https://docs.oracle.com/en/java/javase/25/docs/api/java.base/java/util/concurrent/atomic/package-summary.html
- Trust: Primary
Spring & data
Spring Framework — Data Access / Transaction Management
- Type: Framework documentation
- Where: https://docs.spring.io/spring-framework/reference/data-access/transaction.html
- Trust: Primary
- Covers: Proxy-based
@Transactional, self-invocation not being intercepted, propagation, rollback-on-checked-exception rules
- Read for: Lesson 0005 — this is a near-guaranteed interview question.
Oracle Database Concepts — Data Concurrency and Consistency
- Type: Vendor documentation
- Where: https://docs.oracle.com/en/database/oracle/oracle-database/23/cncpt/data-concurrency-and-consistency.html
- Trust: Primary
- Covers: Read consistency,
SELECT ... FOR UPDATE, why Oracle has no dirty reads, SERIALIZABLE vs READ COMMITTED
- Read for: Lesson 0004. The spec explicitly asks for Oracle experience.
Communities
r/ExperiencedDevs
- Where: https://reddit.com/r/ExperiencedDevs
- Use for: Interview-loop war stories, "how did you answer X" threads
- Note: Search before posting; the interview-prep questions are heavily duplicated.
London Java Community (LJC)
- Where: https://www.meetup.com/londonjavacommunity/
- Use for: Real practitioners, in London, on the same stack. Highest-value wisdom source on this list — BullionVault is a West London Java shop and the LJC is where those people are.
Gaps to fill
- [ ] Anything first-hand on BullionVault's actual interview format (Glassdoor)
- [ ] Whether the coding test is on their codebase or a clean-room exercise