Full-stack Software Engineer (Search)
2017 - 2018Udemy- Worked with Django and Elasticsearch on a search app's back-end and indexing infrastructure.
- Operated with React on a search applications front-end.
- Developed new features for and made improvements to the search app and APIs.
- Maintained a search back-end and APIs, an Elasticsearch cluster, and indexing infrastructure.
Technologies: React, Python, Elasticsearch, Django REST Framework, Django, Back-end DevelopmentBack-end Engineer
2016 - 2017Kuiz- Took part in architectural and design-related decisions.
- Worked on the design and implementation of the platform's back-end.
- Built from scratch Kuiz's search back-end and search API which supports a common functionality expected from a search engine like filtering, autocorrect, autocomplete and suggestions. I used Elasticsearch, Node.js, and Express.js.
- Implemented the architecture of a remote procedure call so that it could call procedures in other languages and servers from the platform's main server written in Node.js. I used GRPC.
- Developed the implementation of the data ontology in the backend and the database (MongoDB).
- Worked on Kuiz's main query API in the back-end implemented with GraphQL.
Technologies: gRPC, React, GraphQL, MongoDB, Express.js, Node.js, ElasticsearchSoftware Engineer
2015 - 2016Yonca Technology- Designed and implemented a plagiarism detection engine and web service, collectively called Ayna, which detects plagiarism in free text from across millions of documents in mere seconds.
- Implemented and designed plagiarism detection algorithms in Sazan (Ayna's core engine), leveraging Elasticsearch for source retrieval and building a RESTful API for Sazan with JAX-RS.
- Built Ayna-REST, a RESTful web service that lets users analyze their documents for plagiarism and stores the results, with Node.js, Express, MongoDB, and Redis.
- Implemented a persistent task queue for long-running jobs in Ayna-REST with Redis and Kue.
- Improved line boundary detection algorithm of a research paper metadata extraction service by combining the positional information in PDF and layout information obtained from graphical layout analysis using Tesseract.
- Developed a medical text de-identifier called Deident in Python, which removes sensitive information about doctors and patients from electronic health records, replacing them with unique identifiers.
Technologies: Angular, MySQL, Python, Redis, Express.js, Node.js, JAX-RS, Java, Elasticsearch