Skip to content
View syedomair's full-sized avatar

Block or report syedomair

Block user

Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

You must be logged in to block users.

Maximum 250 characters. Please don't include any personal information such as legal names or email addresses. Markdown supported. This note will be visible to only you.
Report abuse

Contact GitHub support about this userโ€™s behavior. Learn more about reporting abuse.

Report abuse
syedomair/README.md
Guy working hard!

Syed Omair

Golang / Full Stack Developer with DevOps Automation


Seasoned Full Stack Developer | 20+ Years of Experience Specializing in high-performance backend systems using Golang and frontend systems using ReactJS + Redux on AWS cloud-native architectures.

๐Ÿš€ Key Expertise:

  • Golang Backend Development: Proven track record in building scalable microservices with clean architectures, dependency injection, and high concurrency.
  • ReactJS + Redux Frontend Development: Expertise in crafting responsive, modular, and maintainable frontend applications.
  • Concurrency & Performance Optimization: Skilled in leveraging goroutines, channels, and pprof profiling to build high-performance systems.
  • Unit & Integration Testing: Strong advocate for test-driven development (TDD), ensuring robust code quality through detailed unit and integration tests.
  • Cloud & DevOps: Proficient in deploying and managing applications on, Kubernetes, AWS (ECR, ECS) using Docker, Docker Compose, and CI/CD pipelines.

๐Ÿ› ๏ธ Technical Skills:

  • Languages: Golang, JavaScript (ES6+)
  • Databases: PostgreSQL, MySQL
  • Frameworks/Libraries: ReactJS, Redux
  • Cloud & DevOps: AWS (ECR, ECS), Kubernetes, Docker, Docker Compose, CI/CD (GitHub Actions, BitBucket Pipelines)
  • Instrumentation: pprof profiling, Prometheus, Zap, Grafana
  • Testing: Unit testing, Integration testing
  • Version Control: Git, GitHub workflows, BitBucket

Design Patterns & Architectural Expertise

  • Concurrency Pattern:
    • Utilized in service/user_service/user/user_service to execute multiple database queries and gRPC calls concurrently using Go's errgroup.
    • Enhances the performance of the GetAllUserStatistics method by leveraging parallel processing.
  • Dependency Injection Pattern:
    • Utilized in lib/container/container.go to manage logging, database connections, and environment variables.
    • Promotes modularity and flexibility by injecting dependencies into a central container.
  • Singleton Pattern:
    • Implemented in lib/container/container.go through synchronized lazy initialization (sync.Mutex + instance check) in PostgresAdapter and MySQLAdapter.
    • Ensures only one database connection instance is created per adapter while maintaining thread safety.
  • Adapter Pattern:
    • Used in lib/container/container.go to create a unified database interface (Db) with concrete implementations (PostgresAdapter and MySQLAdapter).
    • Enables seamless switching between database providers without modifying client code.
  • Factory Pattern:
    • Utilized in lib/container/db.go through the NewDBConnectionAdapter function.
    • Acts as a factory method to create instances of different database adapters based on the specified database type, encapsulating object creation logic.
  • External Configuration Pattern:
    • Utilized in lib/container/container.go to manage and validate essential configuration through environment variables.
    • Ensures centralized and type-safe access to settings, promoting flexibility and ease of deployment.
  • Decorator Pattern:
    • Utilized in lib/response/response.go to dynamically add behaviors to response handlers.
    • Allows setting headers or handling different response types without altering the underlying handler implementation.
  • Middleware Pattern:
    • Utilized in lib/router/router.go to chain multiple handlers that add functionalities like logging, request ID management, and Prometheus metrics collection.
    • Enhances the HTTP request processing pipeline with modular and reusable components.
  • Object Pool Pattern:
    • Implemented in lib/container/connection.go to manage a pool of reusable gRPC client connections.
    • Optimizes resource usage and improves performance by reducing the overhead of repeatedly creating and destroying connections.

๐Ÿ“š Featured Post on dev.to:

๐ŸŒŸ What I Bring to the Table:

  • A deep understanding of scalable system design and cloud-native architectures.
  • A passion for writing clean, maintainable, and efficient code.
  • A commitment to continuous learning and sharing knowledge through technical articles and community engagement.

๐Ÿค Let's Connect! I'm always open to collaborations, discussions, and new opportunities. Let's build something amazing together!

Pinned Loading

  1. backend-microservices backend-microservices Public

    Golang Software Design Pattern Showcase

    Go 1

  2. backend-k8 backend-k8 Public

    Go

  3. istio-config-manager istio-config-manager Public

    Go

  4. micro-api micro-api Public

    A project with GRPC, REST, NATS, Docker, Kubernetes, Kong, JWT and S3 all working together on AWS.

    Go 5

  5. plan-api plan-api Public

    Demo project

    Go 2

  6. plan-admin plan-admin Public

    Admin front-end for the Plan API

    JavaScript 1