Saad Ur Rahman
Verified Expert in Engineering
Back-end Developer
Waterloo, ON, Canada
Toptal 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.
Portfolio
Experience
- Java - 10 years
- Git - 10 years
- SQL - 7 years
- Distributed Systems - 7 years
- Go - 7 years
- NoSQL - 5 years
- Amazon Web Services (AWS) - 4 years
- Kubernetes - 3 years
Availability
Preferred Environment
Linux, Amazon Web Services (AWS), Java, Go, JetBrains, Git, GitHub, PostgreSQL, Cassandra
The most amazing...
...project I've worked on is the Apache Heron. It's an excellent way to learn and sharpen one's skillset on open source, and it was a thrill working with the team.
Work Experience
Senior Back-end Engineer
Fluid Market Inc.
- Designed and implemented robust, scalable back-end architecture to support the platform's growing needs.
- Wrote clean, efficient, and maintainable code for various components of the platform's back end.
- Analyzed and optimized the system's performance, scalability, and reliability.
- Implemented and maintained security protocols and data protection measures.
- Provided technical guidance and mentorship to junior developers, promoting best practices and innovative thinking.
- Worked closely with front-end developers, designers, and product managers to ensure seamless integration and alignment with business goals.
- Helped break down legacy monolith components using the strangler fig pattern into microservices.
Software Engineer | Committer
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.
Software Engineer
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).
Senior Software Engineer | Technical Lead
Gartner - IT Research & Consulting Delivery
- Provided technical leadership and guidance to the team. Suggested appropriate technologies and technical patterns for use and advised on their benefits and caveats.
- Mentored engineers and guided development efforts. Guided the use of AWS services and helped with debugging efforts.
- Worked on systems design development and documentation to be shared with stakeholders and presented to the ARB. Helped select the appropriate architectures and oversaw the design, leveraged requirements, and stakeholder feedback.
- Worked with the business and other development team stakeholders to understand and develop system requirements for integrations across verticals.
- Helped coordinate and support development and user efforts across disparate time zones.
- Developed and maintained well-tested, documented, secure, concise, and efficient code that other developers could maintain. Helped to promote practices to improve code quality and raise awareness of standards.
- Built loosely coupled and highly reusable integration middleware designed to be deployed as AWS Lambdas. The solutions are highly robust, secure, and easy to debug and monitor.
- Designed, deployed, tested, and validated infrastructure based on system requirements. The infrastructure was deployed across multiple environments and was serverless, robust, and highly observable.
- Involved in the monitoring and debugging of services across their complete lifecycle. This involved supporting engineers, stakeholders, and business users across multiple environments.
- Helped guide improvements to infrastructure deployment pipelines. These changes drastically improved user experience when deploying infrastructure by speeding up the pipelines and simplifying Lambda build scripts.
Software Engineer
Teachable
- Helped in the transition from RoR to microservices using Go.
- Worked on the Asset Management Service (AMS) that serves all course content from courses. This microservice was an MVP developed by breaking down the RoR monolith. It is the most heavily used microservice in the company.
- Helped develop a plan to break down the components of the RoR monolith into the AMS service. This involved handling the indexing of all assets and their storage and transcoding in the case of video content.
- Built the service's PostgreSQL database schema. Provided insights to optimize storage and access for demanding query workloads. This involved selecting indices and efficient data types and creating custom data types.
- Deployed and configured the ElastiCache Redis infrastructure and developed the module interfacing with the cache. This cache is central to much of the functionality that the service provides.
- Worked on the video transcoding module that transmits data to the parent company for transcoding and stores the transcoded videos in S3. This is an asynchronous operation that could potentially fail, and those scenarios need to be handled.
- Created a plan to migrate the data from the monolith to the AMS service's database. This involved an ETL job to transform the data to the new schema. There was also a CDC cron job to migrate over new data inflight during the migration.
- Developed and deployed the GitHub (GH) Actions CI pipeline with deployments for feature development, staging, and production environments. The GH Actions would perform schema migrations, linting, tests, code coverage checks, and connectivity tests.
- Facilitated weekly sessions for engineers transitioning over to Go from Ruby. I was equally involved in providing feedback for microservice architecture designs. I was consulted on the effective use of Go and third-party libraries.
- Took part in cross-team code reviews for projects within the company. Provided feedback on performance and the effective use of various technologies and libraries.
Software Engineer
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.
Experience
Apache Heron
https://heron.apache.org/docs/schedulers-k8s-execution-environmentFTeX (Crypto-Bro's Bank) – Demonstrator Fiat and Cryptocurrency Bank
https://github.com/surahman/FTeXIt leverages real-time currency quotes, and a Redis cache is deployed as a session store for exchange rate offers. Each rate offer is unique and only valid for the requestor for an allotted period.
PostgreSQL is essential for the service as all financial transactions require ACID semantics. For demonstration purposes, the database transactions have been created in both the 2nd tier (service) and the 3rd tier (database). The service executes multiple queries within a transaction blocked and controlled by the service while the database uses User Defined Procedures. This last method serves to improve performance.
Meticulous care has been exercised regarding floating point precision using particular data types. Fiat currency values are limited to an accuracy of two decimal places, while cryptocurrency values are limited to a precision of eight decimal places. All financial calculations leverage round half-to-even. A general journal is maintained, and every financial transaction is recorded.
Multiple Choice Questionnaire Platform
https://github.com/surahman/MCQ-PlatformThis 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/rpclibFile Router
https://gitlab.com/surahman/file-routerBrick Breaker
https://gitlab.com/surahman/brick-breakerPainter
https://gitlab.com/surahman/painterRad Photo
https://gitlab.com/surahman/radfotoTwitter Analytics
https://gitlab.com/surahman/twitter-analyticsEdgar Log Analytics
https://gitlab.com/surahman/edgar-logsEducation
Bachelor's Degree (Honors) in Computer Science
University of Waterloo - Waterloo, ON, Canada
Certifications
AWS Certified Machine Learning – Specialty
Amazon Web Services
AWS Certified Data Analytics – Specialty
Amazon Web Services
AWS Certified Developer – Associate
Amazon Web Services
AWS Certified Solutions Architect Associate
AWS
Skills
Libraries/APIs
REST APIs, Spark Streaming, Sockets
Tools
Git, GitHub, Amazon Simple Queue Service (SQS), IntelliJ IDEA, Amazon EKS, Amazon Elastic Container Service (ECS), Grafana, Bazel, Travis CI, Jenkins, ELK (Elastic Stack), Puppet, Amazon Simple Notification Service (SNS), Amazon CloudWatch, Jira, Lucidchart, Apache Maven, Google Kubernetes Engine (GKE)
Languages
C++, Java, Go, C, SQL, PHP, Scala, HTML, CSS, JavaScript, GraphQL, Python, Rust
Frameworks
JUnit, Mockito, Boost, gRPC, Spark, Spring Boot, Spring
Paradigms
REST, Testing, Continuous Integration (CI), Continuous Delivery (CD), Design Patterns, Continuous Development (CD), Microservices
Platforms
Amazon Web Services (AWS), AWS Lambda, Kubernetes, Docker, Apache Kafka, Android, Linux, Salesforce, Google Cloud Platform (GCP)
Storage
Amazon S3 (AWS S3), JSON, NoSQL, PostgreSQL, MySQL, Databases, Redis, Cassandra
Other
Distributed Systems, APIs, Architecture, Back-end, Back-end Development, HTTP, Cloud, GitFlow, GitOps, Debugging, Distributed Tracing, RPC, Concurrency, Apache Cassandra, System Design, Software Design, Leadership, SDKs, Prometheus, Networking, Artificial Intelligence (AI), GitHub Actions, Amazon API Gateway, Google BigQuery, Google Pub/Sub
How to Work with Toptal
Toptal matches you directly with global industry experts from our network in hours—not weeks or months.
Share your needs
Choose your talent
Start your risk-free talent trial
Top talent is in high demand.
Start hiring