ProjectsSystems I built end to end.
A distributed platform built to keep working when services fail, and a Python backend for the Rocq Prover (formerly Coq).
frontend
gateway
evaluation
admin
RabbitMQ
Redis
Mongo
Postgres
Featured · Nov 2023 – Oct 2024A cloud-native grading platform
Microservices on Spring Cloud, events over RabbitMQ (with Kafka and WebClient versions built too), a database per service, Terraform on AWS. Built to keep working when services fail.Java · Spring BootSpring CloudKeycloakRabbitMQKafkaPostgreSQLMongoDBRedisDockerTerraform · AWSReact · TypeScript
01 Gallina term
02 MiniML
03 Python AST
04 Renaming
05 Pretty-printed Python
06 Compile & test
Final-year project · compilers · formal methodsJan – Jun 2024
Python extraction for the Rocq Prover
A new backend for the Rocq Prover (formerly Coq), the proof assistant, that turns its verified programs into Python.Rocq already extracts verified programs to OCaml, Haskell and Scheme; this adds Python.Rocq Prover (formerly Coq)GallinaOCamlopamPython
Python extraction for the Rocq Prover
The Rocq Prover (formerly Coq) already extracts verified programs to OCaml, Haskell and Scheme; this adds Python. The hard part was a correspondence between Gallina’s grammar and Python’s, so pattern matching, inductive types and currying keep their meaning, in theory and not just on examples.
OCamlopamPython ASTpretty printer