Saad Ur Rahman, Back-end Developer in Waterloo, Canada
Saad Ur Rahman

Back-end Developer in Waterloo, Canada

Member since September 13, 2022
Saad focuses on distributed and data systems, particularly those that scale and provide consistency, reliability, and high availability. He enjoys developing and architecting systems that will provide these guarantees and operate in disparate environments at scale. He is extremely security conscious and believes security should be foundational during the design phase. Saad is keen on building, developing, debugging, monitoring, and maintaining microservices deployed in the cloud.
Saad is now available for hire

Portfolio

Experience

Location

Waterloo, Canada

Availability

Part-time

Preferred Environment

Linux, Amazon Web Services (AWS), Java, Go, JetBrains, Git, GitHub

The most amazing...

...project I've contributed to is the Apache Heron: It is an excellent way to learn and sharpen one's skillset on open source and a thrill working with the team.

Employment

  • Software Engineer | Committer

    2021 - PRESENT
    Apache Software Foundation
    • Created and documented features for Apache Heron, extending the ability to customize the Kubernetes execution environment. More information can be found in the project "Apache Heron" below.
    • Split the executor and manager processes for each topology to reduce resource consumption.
    • Added pod template support to completely customize a topology's execution environment.
    • Allowed support for shared and per-pod persistent volumes via the CLI.
    • Added the ability to restart topologies by implementing a Kubernetes container termination handler. The replica controller would then restart the containers.
    • Created a comprehensive test suite for the Kubernetes scheduler.
    • Isolated and fixed bugs, causing intermittent failures with Travis CI.
    • Developed a functionality that is highlighted in the user documentation that I wrote. It can be found at https://heron.apache.org/docs/schedulers-k8s-execution-environment.
    Technologies: Java, JUnit, Mockito, Bazel, GitHub, TravisCI, Jenkins, Kubernetes, Docker, Testing, Concurrency, Sockets, Continuous Integration (CI), Design Patterns, Linux, gRPC, Debugging, GitOps, Git, Architecture, Software Design
  • Software Engineer

    2015 - PRESENT
    Freelance
    • Developed distributed systems using Go and Java with a number of different data storage technologies.
    • Worked with large and complex code bases and began contributing to the production-grade code.
    • Engaged in feature discussions with fellow engineers and researched technical details for the feature sets. I subsequently wrote design documentation for the new features and produced a plan to develop them incrementally.
    • Designed and developed performant RESTful APIs following the OpenAPI specification. The APIs provide telemetry data, with some leveraging a caching layer with eager writes and lazy reads from a database.
    • Deployed and managed microservices using Kubernetes with Docker as the container engine, where I keep configurations idempotent. I periodically used Puppet to manage and update configurations. I used Puppet when only configurations needed updating.
    • Selected and configured monitoring and health metrics with Grafana and Prometheus as the data source.
    • Tracked, monitored, and patched bugs in distributed systems using distributed tracing and logs. I worked with logging and log monitoring through the Logstash, Elasticsearch, and Kibana (ELK) stack.
    • Ran and analyzed performance benchmarks to find bottlenecks and improve performance in the back-end services.
    • Participated in schema design for NoSQL databases, most notably Apache Cassandra. My focus regarding Cassandra was on its tables, with a keen eye on performance.
    • Engaged in schema design for SQL databases (PostgreSQL). I focused on schema data normalization, key and index selections, and query development (transactions and performance).
    Technologies: Amazon Web Services (AWS), Go, Java, Git, SQL, NoSQL, Kubernetes, Docker, Prometheus, Distributed Tracing, Debugging, Grafana, PostgreSQL, Apache Cassandra, Spring Boot, Spring, Redis, Apache Kafka, gRPC, REST, Testing, Concurrency, Sockets, Databases, Continuous Integration (CI), Continuous Delivery (CD), Design Patterns, System Design, Linux, GitOps, GitFlow, AWS, Continuous Development (CD), ELK (Elastic Stack), Architecture, Software Design, Leadership, Microservices, HTML, CSS, JavaScript, PHP, Back-end, GraphQL, Python, Back-end Development, REST APIs, APIs, GitHub, GitHub Actions, MySQL, RESTful APIs, Puppet
  • Software Engineer

    2005 - 2015
    Oil & Gas Industry Clients
    • Developed and maintained software written in C++ that would scrape oil well data endpoints. The system would then serve raw and processed data and any generated reports.
    • Engaged in feature discussions with engineers and researched technical details for the feature sets. I subsequently wrote design documentation for the new features and produced a plan to develop the features incrementally.
    • Tracked bugs and developed fixes. Each bug would be followed by an update to the test suite and a short written report on the cause and remedy.
    • Ran performance benchmarks to find bottlenecks and improve performance in the back-end services.
    Technologies: C++, Networking, Boost, Design Patterns, System Design, Debugging, Testing, Concurrency, Sockets, Databases, Linux, Architecture, Software Design, Leadership, Back-end, Back-end Development

Experience

  • Apache Heron
    https://heron.apache.org/docs/schedulers-k8s-execution-environment

    I extended the ability to fully customize the Kubernetes execution environment for Apache Heron. I achieved this by expanding and redesigning elements of the existing Kubernetes scheduler to allow more of the analytics container's environments to be modified. This was a challenge because I had to exercise meticulous care to ensure configurations Heron requires to function would remain unmodified. I developed the entire test suite for the Kubernetes scheduler module.

  • Multiple Choice Questionnaire Platform
    https://github.com/surahman/MCQ-Platform

    This is a multiple-choice question API platform written in Go and backed by Apache Cassandra.

    This project aims to demonstrate my skillset designing, architecting, developing, and delivering a service designed for containerization. There are mock and integration tests employed. Please see the coverage reports in the project repository.

  • RPC Library
    https://gitlab.com/surahman/rpclib

    An RPC library written in C++ that leverages BSD sockets. This was an exercise in systems and efficient protocol design. The complete design document is available for review and addresses all design aspects, from the protocol to data structures and architecture.

  • File Router
    https://gitlab.com/surahman/file-router

    A project comprised of a central hub, acting as a broker for clients and servers willing to engage in a file exchange. This project utilizes the Java threading and TCP/IP sockets library while leveraging advanced TCP/IP protocol features.

  • Brick Breaker
    https://gitlab.com/surahman/brick-breaker

    Based on the classic game by Nintendo, Brick Breaker aims to showcase the use of MVC and the Java Swing framework to develop a 2D game. Elements of the game are drawn using primitive shapes and images for UI elements.

  • Painter
    https://gitlab.com/surahman/painter

    Painter is a vector drawing application written in Java that utilizes the Java Swing framework to draw the user interface and canvas. It uses the MVC design paradigm to split responsibilities between the various components of the application. The observer pattern is employed to redraw and update the canvas when needed, thereby delivering better performance.

  • Rad Photo
    https://gitlab.com/surahman/radfoto

    Rad Photo is an Android application written in Java designed to scrape a remote server’s directories for images and then display them. It allows users to then assign the images a zero to five-star rating.

  • Twitter Analytics
    https://gitlab.com/surahman/twitter-analytics

    This project scrapes the Twitter live public data stream to power an analytics dashboard. It leverages Spark Streaming to collect data on user locations, mentions, and hashtags. It then calculates the top five items in each dimension and displays the trend change in percentages.

  • Edgar Log Analytics
    https://gitlab.com/surahman/edgar-logs

    This application utilizes the Apache Spark distributed framework and is written in Scala. It was designed as a batch processing job to be executed shortly after the Apache Server daily access log files for the day are fully collected. Its purpose is to process the daily access logs from the SEC’s EDGAR system to develop insights on filing accesses.

Skills

  • Languages

    C++, Java, Go, C, SQL, PHP, Scala, HTML, CSS, JavaScript, GraphQL, Python
  • Frameworks

    JUnit, Mockito, Boost, gRPC, Spark, Spring Boot, Spring
  • Libraries/APIs

    REST APIs, Spark Streaming, Sockets
  • Tools

    Git, GitHub, Grafana, Bazel, Jenkins, ELK (Elastic Stack), Puppet
  • Paradigms

    REST, Testing, Continuous Integration (CI), Continuous Delivery (CD), Design Patterns, Continuous Development (CD), Microservices
  • Platforms

    Amazon Web Services (AWS), Kubernetes, Docker, Apache Kafka, Android, Linux
  • Other

    Distributed Systems, APIs, Architecture, Back-end, Back-end Development, GitFlow, GitOps, Debugging, Distributed Tracing, RPC, Concurrency, Apache Cassandra, System Design, Software Design, Leadership, RESTful APIs, Prometheus, Networking, Artificial Intelligence (AI), TravisCI, GitHub Actions
  • Storage

    NoSQL, PostgreSQL, MySQL, Databases, Redis, Cassandra

Education

  • Bachelor's Degree with Honors in Computer Science
    2015 - 2020
    University of Waterloo - Waterloo, ON, Canada

Certifications

  • AWS Certified Machine Learning – Specialty
    SEPTEMBER 2020 - PRESENT
    Amazon Web Services
  • AWS Certified Data Analytics – Specialty
    AUGUST 2020 - PRESENT
    Amazon Web Services
  • AWS Certified Developer – Associate
    JULY 2020 - PRESENT
    Amazon Web Services
  • AWS Certified Solutions Architect – Associate
    JUNE 2020 - PRESENT
    Amazon Web Services

To view more profiles

Join Toptal
Share it with others