Welcome to my GitHub. In this document you will find my most relevant projects (skill-wise) highlighted. Feel free to explore all my public repositories, but bear in mind that any projects not mentioned here are likely a work in progress and thus may be incomplete.
I'm a clean coder, thus I follow clean code principles, which include TDD (I write tests first) and S.O.L.I.D. principles. I also follow BDD (Behave for Python, JBehave for Java, and ScalaTest's FunSpec for Scala).
Follow samples of my work that represent some of my coding skills:
-
Back-end: Analytics Service REST API (Scala Play Framework/Slick/AKKA), Risk Model Builder REST API (Python Django REST Framework), Company Service REST API (Java/Spring Boot), Poor Man's Twitter (Python Django REST Framework), AWS EC2 Instance Provisioning API (Play Framework/AWS SDK), Payments REST API (Golang/Gin/GORM), Rover.com API (Python Django REST FRamework, Django REST Authentication), Gists API(Python Flask), Temperature Feed API (Django, Graphene/GraphQL, GitLab CI/CD), Repositories API (FastAPI, GidgetHub), Quizzes API (Django/DRF/DRF-YASG).
-
Front-end: Risk Model Builder UI (Javascript Vue.js), Recipe Finder UI (Ruby on Rails), Poor Man's Twitter (Javascript Vue.JS), Company Service UI (Javascript/React.js), Rover.com UI (React.JS).
-
Scala: Analytics Service (Play Framework/Slick/AKKA), TwitterGitHubGrid, Scala-Paintshop, PersonService (Play Framework/Slick) and Reader (Android), AWS EC2 Instance Provisioning API (Play Framework/AWS SDK).
-
Java: Company Service REST API (Java/Spring Boot), Slightly (Web Template Engine), Paintshop (Algorithm Design and Analysis), Summarizer (BDD).
-
Clojure: Scramble API/UI, Clojure-Paintshop.
-
Android: Reader (Scala).
-
Ruby on Rails: Recipe Finder. You may demo the app, which has been deployed to Heroku.
-
Python: Risk Model Builder API (Django REST Framework), Tetris (Text-Mode) and Supermarket Pricing (Object-Oriented Design), Poor Man's Twitter (Python Django REST Framework), Magic Squares Generator, Dropbox Web Client (Django Templates/Dropbox API), Student Quiz OOD/BDD (Python/Behave), Simple Transaction Ledge (Pandas/NumPy), Alien (Space Invaders) Tracker (Python/Poetry/RST).
-
Javascript: Risk Model Builder UI (Vue.js/Webpack), Poor Man's Twitter UI (Vue.Js/Webpack/Bootstrap).
-
Go: Blockchain (Zilliqa's Multi-signature consensus algorithm implementation), Payments REST API (Golang/Gin/GORM).
-
Practice Sessions: Katas. A great tecnique to sharpen TDD skills (doesn't hurt that they are fun to do too).
-
Object Oriented Design: Supermarket Pricing (Java).
-
Algorithm Design and Analysis: Java-Paintshop (Java).
-
BDD: Processor or Summarizer (Java).
-
Web TDD: Slightly (Java).
-
Universities Data Pipeline: An example of using Apache Airflow to create a data pipeline that persists data from input files into a database.
-
Data Ingestion: IoT Simulator that generates JSON data and publishes it to a Kafka topic.
-
Data Transformation: Spark Streaming job that consumes data from a Kafka topic and persists it to HBase.
-
Data Analysis: Database scripts that build an Impala table on top of a HBase table and perform a few queries.
Follow samples of my work that represent some of my data science skills:
-
Joke Generator/Evaluator using LLM's (GPT2): Evaluator Model, Generator Model.
-
Time-series Analysis: Time-series Analysis of IoT Events. You will find the rendered Jupyter notebook (Pandas, StatsModels, Matplotlib) here.
-
Basic Random Forest Machine Learning: Example REST API + Machine Learning (Scikit-Learn, Pandas, Matplotlib).
-
Spark/Scala, Text-Mining & Exploratory Data Analysis: SwiftRKey: A Keyboard Typing Prediction App (Databricks Notebook).
-
Text-mining, Exploratory Data Analysis, Data Product Development: SwiftRKey: A Keyboard Typing Prediction App Written in R. You may demo the app hosted on shinyapps.io.
-
Binary Classification (Machine Learning): Titanic Survivorship Analysis (Kaggle Challenge). You will also find my R notebook on GitHub.
-
Multi-class Classification (Machine Learning): Workout: Dumbbell Lift Classification. You will also find my R notebook on GitHub.
-
Interactive Plots (Leaflet, Plotly): Fake News: A Graphical Exploration. You will also find my R notebook on GitHub.
-
Data Product Development & Text-Mining: ShinySide: A Text-Mining Tool Developed with Shiny. You may demo the app hosted on shinyapps.io. A slidify presentation is also available.
-
Basic Data Cleaning: Wearable Computing Analysis. You will also find my R notebook on GitHub.
-
Basic Deduplication: Storm Data Analysis. You will also find my R notebook on GitHub.
-
Basic Exploratory Analysis: PM 2.5 Particle Pollution Analysis. You will also find my R notebooks on GitHub.
-
Basic Inferential Analysis: Tooth Growth Analysis & CLT Simulation. You will also find my R notebooks on GitHub.
-
Basic Regression Analysis: Motor Trend Analysis. You will also find my R notebooks on GitHub.
- Back-end Design Using AWS Serverless. That'a case study of using AWS Serverless services to implement a back-end. It uses Cognito, API Gateway, AWS Lambda, SQS, RDS, Aurora, AWS Batch, CloudWatch, SES, and IoTCore.
I have completed a number of courses from Coursera and edX on the subjects of machine learning, statistics and data analytics (using tools such as Spark, R and Python). You will find a list of my certified courses on my LinkedIn profile.
Follow some highlights of my certified training:
-
Coursera/Johns Hopkins' Data Science Specialization (10 courses, includes a capstone project).
-
Coursera's Functional Programming in Scala Specialization (includes a Spark/Scala course and a capstone project).
-
Coursera's Ruby on Rails Web Services and Integration with MongoDB.
-
Coursera's HTML, CSS, and Javascript for Web Developers [including Responsive Design and Bootstrap].