About
I am a Senior Software Engineer with over a decade of experience. I have a Master of Computer Science degree from the University of Ottawa. I am proficient in using JavaScript, TypeScript, Java, and PHP, and I am familiar with Golang and Python.
I also have expertise in deployment, scaling, maintaining, and monitoring of modern applications in cloud environments (AWS, Docker, Kubernetes, CI/CD, Orchestration, Observability, Capacity planning, etc).
Projects
Enigmatic AI
A privacy-conscious AI chat app for iOS and macOS running offline using embedded LLMs (Phi 2 and Llama 3), developed with llama.cpp and Apple MLX libraries.
Enigma, ChatGPT Sidebar
An AI sidebar assistant for browsers, powered by GPT-4.
sql-puzzle
A type-safe and composable query builder for Sequelize, written in TypeScript.
ts-app-starter
A utility CLI to scaffold TypeScript projects configured with ESLint and Jest out of the box.
Search based test generation using Genetic algorithms
Automated search based test generation using Genetic algorithms and EvoSuite.
Triage of Github issues
A classifier to triage issues inside Github issue tracker using Python and BERT.
Elementary cellular automaton
An implementation of Elementary cellular automatons with 4 and 8 states.
Symboleo DSL
Symboleo is an ontology-based DSL recently introduced by the researchers of the CSAM lab at the University of Ottawa for formal specification of legal contracts. The Symboleo ontology defines legal concepts in an abstract structure to reduce linguistic ambiguity, and leverages state machines to define the rules governing these concepts. Moreover, Symboleo contributes to creating accurate and consistent contract specifications while supporting design-time verification and runtime monitoring.
I was responsible for designing and implementing the grammar of Symboleo. I used the EBNF notation to define the grammar and implemented a parser and compiler using the Xtext framework. The development toolchain includes an IDE with compile-time validation of contracts, code completion, and highlighting.
Symboleo2SC
Symboleo2SC is an automated code generator that converts Symboleo specifications to smart contracts. It was built using SymboleoJS, which is an implementation of the Symboleo ontology and state-machine semantics in a reusable JavaScript library.
Currently, Symboleo2SC is capable of automatically generating Hyperledger Fabric smart contracts. The generated smart contracts are instantly deployable for monitoring and compliance checking of legal contracts.
A Blockchain based marketplace
A blockchain based marketplace developed with Hyperledger Fabric.
Publications
- Automated generation of smart contract code from legal contract specifications with Symboleo2SC, Software and Systems Modeling, Springer, 2024.
- Symboleo2SC: From Legal Contract Specifications to Smart Contracts, ACM/IEEE 25th International Conference on Model Driven Engineering Languages and Systems, (MODELS’22), ACM, 2022.
- Model-Checking Legal Contracts with SymboleoPC, In ACM/IEEE 25th International Conference on Model Driven Engineering Languages and Systems, (MODELS’22), ACM, 2022.
- Specification and Analysis of Legal Contracts with Symboleo, Software and Systems Modeling, Springer, 2022.
- Labeling questions inside issue trackers, December 2020.
- Experimenting with the EvoSuite Test Generation Tool, December 2020.
- From legal contracts to smart contracts: An Xtext editor for Symboleo with a code generator for Hyperledger Fabric, presented at the IBM CASCONxEVOKE 2021 Conference, November 23, 2021.