I applied online. The process took 4 weeks.
I interviewed for a Principal Software Engineer role and completed a take-home assignment to build an LSM-tree storage engine. The rejection cited two reasons: lack of replication and use of Spring Boot instead of strictly the standard Java library. Replication was mentioned under "bonus" in the assignment. If replication was mandatory, it should not have been categorized as optional. Penalizing a candidate for not implementing something explicitly labeled as a bonus requirement reflects unclear expectation-setting.
More importantly, during the initial HR call, I was explicitly advised to use no external dependencies apart from Spring Boot. Based on that guidance, I used Spring Boot only for the web API layer and rate limiting. The core storage engine (WAL → Memtable → SSTable → Bloom Filter → indexing) was implemented entirely using the standard Java library. If the actual expectation was "only core Java libraries — no Spring Boot," that contradicts the verbal instruction given before the assignment. It would have taken minimal review effort to verify that the core module did not rely on any framework abstractions.
For a Principal-level evaluation, I expected discussion around architecture, performance trade-offs, indexing design, and system correctness — not rejection based on ambiguous or conflicting instructions. I would strongly advise future candidates to seek written clarification on every requirement before investing significant time.
Implement a storage engine similar to Bitcask.
The following metrics were computed from 1 interview experience for the Moniepoint Principal Software Engineer role.
Moniepoint's interview process for their Principal Software Engineer roles is extremely selective, failing the vast majority of engineers.
Candidates reported having very negative feelings for Moniepoint's Principal Software Engineer interview process.