# π¨π»βπ» About Me
π‘ Β I'm a Backend Engineer
π» Β I'm currently built Microservices in E-Commerce Tokopedia Clone (opens new window)
πΒ I graduated from University of Pamulang, Indonesia (B. Engineering in Informatics, Batch of 2020).
π± Β I'm on track for learning more about Distributed System.
βοΈ Β In my free time, I play game and pursue writing as my hobbies.
π¬ Β Feel free to reach out to me for general consulting, or discussions on the aforementioned topics!\
# π« How to reach me:
# π Tech Stack
# 1. Backend (Server-Side)
# Languages:
- Go (Golang) (opens new window): A statically typed, compiled language designed for scalability and performance, commonly used in microservices and backend development.
- Node.js (opens new window): A JavaScript runtime built on Chrome's V8 JavaScript engine, used for building scalable network applications.
- Python (opens new window): A high-level, interpreted language known for its readability and versatility in web development, data analysis, and automation.
- Ruby (opens new window): A dynamic, object-oriented programming language used primarily in web development, known for the Ruby on Rails framework.
- Java (opens new window): A class-based, object-oriented language used for building cross-platform applications, particularly in enterprise environments.
- PHP (opens new window): A popular server-side scripting language designed for web development, used in building dynamic websites and applications.
# Backend Frameworks:
- Gin (opens new window): A fast and lightweight web framework for Go, known for its performance and small memory footprint.
- Echo (opens new window): A high-performance web framework for Go, focused on simplicity, speed, and scalability.
- Beego (opens new window): A full-fledged web application framework for Go, offering a set of tools like an ORM, built-in routing, and templating.
- Revel (opens new window): A high-productivity web framework for the Go programming language, emphasizing rapid development with minimal configuration.
- GoFrame (opens new window): A modular, lightweight framework for Go that is suitable for large-scale applications.
- Express.js (opens new window): A minimal, fast, and flexible Node.js web application framework, often used for building APIs and web applications.
- Django (opens new window): A high-level Python web framework that promotes rapid development and clean, pragmatic design.
- Ruby on Rails (opens new window): A full-stack web application framework for Ruby, focused on convention over configuration.
- Spring (opens new window): A comprehensive framework for building Java-based enterprise applications, especially in microservices architecture.
- Flask (opens new window): A lightweight Python web framework that allows for flexible and simple development of web applications and APIs.
- Laravel (opens new window): A PHP web framework that provides a clean and elegant syntax for developing web applications, with features like ORM, routing, and security.
- Lumen (opens new window): A micro-framework by Laravel, optimized for building lightweight APIs and microservices.
- Symfony (opens new window): A PHP framework for building scalable web applications, offering reusable components and an emphasis on best practices.
- Yii (opens new window): A high-performance PHP framework for developing modern web applications with an easy-to-use structure and lots of built-in tools.
# Servers:
- Nginx (opens new window): A high-performance web server and reverse proxy server, commonly used for load balancing and handling static content.
- Tomcat (opens new window): An open-source implementation of Java Servlets and JavaServer Pages, often used as a web container for Java-based applications.
# 2. Database
# Relational Databases (SQL):
- MySQL (opens new window): A widely used open-source relational database management system known for its speed, reliability, and ease of use.
- MariaDB (opens new window): A fork of MySQL, created by the original developers of MySQL, offering improved performance and additional features.
- PostgreSQL (opens new window): A powerful, open-source relational database system that emphasizes extensibility and standards compliance.
- SQLite (opens new window): A self-contained, serverless SQL database engine, widely used in mobile apps and small projects due to its simplicity and lightweight nature.
# NoSQL Databases:
- MongoDB (opens new window): A document-oriented NoSQL database designed for scalability and flexibility, storing data in a JSON-like format.
- Cassandra (opens new window): A highly scalable NoSQL database designed for handling large amounts of data across distributed systems with no single point of failure.
- CouchDB (opens new window): An open-source NoSQL database that uses a document-based model and RESTful API for easy integration with web applications.
- Firebase Firestore (opens new window): A NoSQL cloud database for building mobile and web apps, with real-time synchronization.
- Typesense (opens new window): A fast, typo-tolerant search engine built for speed and ease of use, optimized for small to large-scale search applications.
- ElasticSearch (opens new window): A distributed, RESTful search and analytics engine, often used for log analysis and full-text search functionality.
- Amazon DynamoDB (opens new window): A fully managed NoSQL database service from AWS, designed for high availability and low-latency performance.
- Redis (opens new window): An open-source, in-memory data structure store, used as a database, cache, and message broker.
- RavenDB (opens new window): A document-oriented NoSQL database designed for .NET applications, known for its ease of use and high-performance capabilities.
- ArangoDB (opens new window): A multi-model NoSQL database that supports document, key-value, and graph data models.
- OrientDB (opens new window): A multi-model NoSQL database that combines document, object, and graph database features.
- Amazon DocumentDB (opens new window): A scalable, fully managed NoSQL database service compatible with MongoDB, designed for high availability and performance.
- Couchbase (opens new window): A distributed NoSQL database with key-value store capabilities, optimized for high availability and scalability.
- Aerospike (opens new window): A high-performance, distributed NoSQL database designed for real-time big data applications, offering strong consistency and low latency.
# 3. Messaging / Streaming
# Messaging & Streaming:
- x ] Apache Kafka (opens new window): A distributed event streaming platform used to build real-time data pipelines and streaming applications.
- RabbitMQ (opens new window): A message broker that enables communication between distributed systems, supporting multiple messaging protocols.
- ActiveMQ (opens new window): A message broker that provides high-performance messaging and supports a variety of messaging patterns.
- Amazon SQS (opens new window): A fully managed message queuing service from AWS, used to decouple and scale microservices and distributed systems.
- Google Cloud Pub/Sub (opens new window): A global messaging and event ingestion service that enables real-time communication between systems and applications.
- NATS (opens new window): A lightweight, high-performance messaging system designed for modern distributed systems and IoT.
- Apache Pulsar (opens new window): A distributed messaging and streaming platform designed for cloud-native applications with multi-tenancy and high throughput.
- ZeroMQ (opens new window): A high-performance asynchronous messaging library used to build scalable distributed applications.
# 4. Cloud Services & Hosting
# Cloud Providers:
- Amazon Web Services (AWS) (opens new window): A comprehensive cloud computing platform offering infrastructure services, including computing power, storage, and databases.
- Google Cloud Platform (GCP) (opens new window): A suite of cloud computing services offered by Google, including storage, machine learning, and data analytics tools.
- Microsoft Azure (opens new window): Microsoft's cloud computing platform, offering a wide range of services, including virtual machines, databases, and AI tools.
- Heroku (opens new window): A platform-as-a-service (PaaS) that simplifies the deployment and scaling of applications.
- DigitalOcean (opens new window): A cloud infrastructure provider that offers scalable compute, storage, and networking services for developers.
# Containerization & Orchestration:
- Docker (opens new window): A platform for developing, shipping, and running applications inside containers, enabling portability across environments.
- Kubernetes (opens new window): An open-source platform for automating the deployment, scaling, and management of containerized applications.
- OpenShift (opens new window): A Kubernetes-based container platform that provides a developer-friendly environment for deploying and managing applications.
# 5. DevOps & CI/CD (Continuous Integration / Continuous Deployment)
# CI/CD Tools:
- Jenkins (opens new window): An open-source automation server used for building, testing, and deploying applications in a CI/CD pipeline.
- GitLab CI (opens new window): A built-in CI/CD tool in GitLab, allowing seamless integration with the code repository.
# 6. Backend Testing Tools
# Go-Specific Testing Tools:
- Go Testing Package (opens new window): The built-in testing package in Go for writing and running unit tests.
- Testify (opens new window): A popular Go testing toolkit that provides helpful assertions, mocking, and testing utilities.
- GoMock (opens new window): A mocking framework for Go used for creating mock objects in unit tests.
- Ginkgo (opens new window): A BDD (Behavior Driven Development) testing framework for Go.
- Gomega (opens new window): An assertion library that complements Ginkgo for writing expressive tests in Go.
# General Backend Testing Tools:
- Postman (opens new window): A collaboration platform for API development that helps in testing APIs by sending requests and viewing responses.
- Supertest (opens new window): A testing library for HTTP assertions, particularly useful in testing APIs built with Node.js.
# Others:
- Unit Test (opens new window): A testing methodology where individual units or components of the software are tested in isolation.
- Integration Test (opens new window): A type of testing that verifies the interactions between different components of the application.
# 7. Tools
# Project Management & Collaboration:
- Jira (opens new window): A project management tool for tracking tasks, sprints, and workflows, especially in Agile environments.
- Obsidian (opens new window): A knowledge management tool that allows you to create and organize your notes, ideal for developers and project documentation.
# Version Control & Collaboration:
- Git (opens new window): A distributed version control system that allows multiple developers to collaborate on software projects.
- GitHub (opens new window): A web-based Git repository hosting service that provides version control and collaborative features.
- GitLab (opens new window): A DevOps platform that provides Git repository management, CI/CD, and more for automating software delivery.