Mahmud Ridwan, Developer in Dhaka, Dhaka Division, Bangladesh

Mahmud Ridwan

Go Developer

Location
Dhaka, Dhaka Division, Bangladesh
Toptal Member Since
January 16, 2014

Mahmud is a software developer with a knack for efficiency, scalability, and stable solutions. With years of experience working with a wide range of technologies, he is still interested in exploring, encountering, and solving new and exciting programming problems.

Mahmud is available for hire
Hire Mahmud

Portfolio

Deliveroo (via Toptal)
Go, Integration, PostgreSQL, Terraform, Redis, Amazon S3 (AWS S3)...
Toptal
WebRTC, Go, Node.js, Software, Linux, Redis, Writing & Editing
Mukto Software
Python, Go, PostgreSQL, Node.js, REST APIs

Location

Dhaka, Dhaka Division, Bangladesh

Availability

Part-time

Preferred Environment

Linux, Go, MongoDB, Redis, RabbitMQ, Node.js, Python

The most amazing...

...app I've built is a programming contest platform with Linux Namespaces and a Cgroups-based sandbox for user code execution, both of which are built with Go.

Work Experience

2021 - 2022

Integration Developer

Deliveroo (via Toptal)
  • Designed and implemented state machine-based data pipelines.
  • Implemented and maintained custom integrations with Go.
  • Reviewed and refined integration developer documentation.
  • Facilitated team stand-ups and refinement sessions.
Technologies: Go, Integration, PostgreSQL, Terraform, Redis, Amazon S3 (AWS S3), AWS Step Functions, AWS Lambda, Amazon Web Services (AWS), APIs, Back-end
2015 - 2021

Lead Editor for Engineering Blog

Toptal
  • Helped others author rich technical content for the Toptal Engineering Blog and Toptal Resources.
  • Developed Battlescripts - a bot-vs-bot Battleships web game.
  • Developed Hopper - a prototype deployment automation tool.
  • Developed Arteegee - a simple implementation of the popular game Connect Four over WebRTC.
Technologies: WebRTC, Go, Node.js, Software, Linux, Redis, Writing & Editing
2012 - 2015

Software Engineer

Mukto Software
  • Developed a Django application for the medical wing of a large organization's resource management solution.
  • Built a programming contest platform in Node.js. Implemented a ptrace-based Sandbox service.
  • Built a PHP/Yii-based web user interface for a Java application.
  • Built several Go microservices for an external project.
Technologies: Python, Go, PostgreSQL, Node.js, REST APIs
2014 - 2014

Full-stack Developer

Mainsocial (via Toptal)
  • Created several services in a micro-architecture fashion.
  • Built an authentication service with single-sign-on capabilities.
  • Constructed a central service for storing sports statistics, with revision history and reversion support.
  • Developed a fantasy sports web game involving baseball.
  • Created a real-time fantasy sports game involving ice hockey.
Technologies: Firebase, AngularJS, Underscore.js, CoffeeScript, Express.js, MongoDB, Node.js, Serverless
2012 - 2014

Researcher

Computer Vision and Cybernetics Group
  • Prototyped machine learning algorithms using MATLAB.
  • Implemented and benchmarked a number of offline signature verification algorithms.
  • Implemented efficient object detection, recognition, and path finding algorithms.
  • Implemented a tool for doing binary sentiment analysis on tweets.
  • Implemented a semi-supervised algorithm for document classification.
Technologies: Python, MATLAB
2010 - 2013

Web Developer

Freelance Clients
  • Built an obfuscated URL Google App Engine and Python web app.
  • Created a poetry kit-like Google App Engine and Python web app for product title generation.
  • Developed a product details webpage scraper in C# featuring automated translation from non-English websites.
  • Implemented PayPal and eBay integration for product sales monitoring in a Google App Engine and Python application.
  • Built auction management and planning software in Google App Engine and Python.
Technologies: Google App Engine, JavaScript, Python, C#, jQuery, CSS, PSD to HTML, APIs, HTML, HTML5

Experience

Toph—A Competitive Programming Platform

https://toph.co
I built Toph with Go, MongoDB, Redis, RabbitMQ, and S3-like object storage. The platform was built with scalability and resilience in mind. The code submitted by users is processed in a custom-built sandbox and in Go that uses Linux namespaces and cgroups to isolate the process and limit resources.

By May 2021, Toph already had 30,000 users, processed 700,000 submissions, and hosted 400+ programming contests, most of which were organized by 50+ academic institutions collaborating with Toph.

Redsync — A Redis-based Distributed Lock

https://github.com/go-redsync/redsync
Redsync provides a Redis-based distributed mutual exclusion lock implementation for Go, as described in the following post: https://redis.io/topics/distlock.

The locking algorithm is safer than using a single instance of Redis.

Brdgd — P2P File Transfer using WebRTC

https://github.com/hjr265/brdgd
Brdgd, pronounced "bridged," is a straightforward P2P file transfer web app. It depends on PeerJS to manage the P2P connections. The web app, in rare cases, uses a turn server to relay the connection in cases where the peers cannot reach each other due to certain obvious reasons.

Dots — DNS Lookup Tools

https://github.com/hjr265/dots
Dots is a networking utility web application built with Node.js. It supports DNS (A, AAAA, CNAME, MX, among others), rDNS, WHOIS, and geolocation lookups on domains and IP addresses. It uses my WHOIS package for Node.js.

CodeMarshal

https://codemarshal.com
CodeMarshal is a programming contest hosting platform. It was built on Node.js and Python. The platform successfully hosted the preliminary mock, preliminary, and semi-live contests of the ACM ICPC 2013 Dhaka Regional.

Scanlib

https://github.com/FurqanSoftware/scanlib
Scanlib is a meta parser than can be used to validate text files. Scanlib is also able to emit C++, Go, and Python code that can read contents of similarly structured text files into variables.

This is useful in validating input files while designing programming challenges for competitive programming contests.

Arturia | Sandbox for Linux Processes

Arturia is a sandbox software and process orchestrator for Linux. It uses Linux namespaces, cgroups, and seccomp BPF to isolate resources from untrusted processes.

I wrote about Linux namespaces on the Toptal Engineering Blog: https://www.toptal.com/linux/separation-anxiety-isolating-your-system-with-linux-namespaces.
Image of Predicting Likes: Inside A Simple Recommendation Engine's Algorithms publication
Publication

Predicting Likes: Inside A Simple Recommendation Engine's Algorithms

https://www.toptal.com/algorithms/predicting-likes-inside-a-simple-recommendation-engine
Image of Going Real-Time with Redis Pub/Sub publication
Publication

Going Real-Time with Redis Pub/Sub

https://www.toptal.com/go/going-real-time-with-redis-pubsub
Image of Separation Anxiety: A Tutorial for Isolating Your System with Linux Namespaces publication
Publication

Separation Anxiety: A Tutorial for Isolating Your System with Linux Namespaces

https://www.toptal.com/linux/separation-anxiety-isolating-your-system-with-linux-namespaces
Image of Top 8 Most Common Mistakes That Backbone.js Developers Make publication
Publication

Top 8 Most Common Mistakes That Backbone.js Developers Make

https://www.toptal.com/backbone-js/top-8-common-backbone-js-developer-mistakes
Image of Taming WebRTC with PeerJS: Making a Simple P2P Web Game publication
Publication

Taming WebRTC with PeerJS: Making a Simple P2P Web Game

https://www.toptal.com/webrtc/taming-webrtc-with-peerjs
Image of Simplified NGINX Load Balancing with Loadcat publication
Publication

Simplified NGINX Load Balancing with Loadcat

https://www.toptal.com/devops/simplified-nginx-load-balancing-with-loadcat
Image of Deploy Web Applications Automatically Using GitHub Webhooks publication
Publication

Deploy Web Applications Automatically Using GitHub Webhooks

https://www.toptal.com/devops/deploy-web-applications-automatically-using-github-webhooks
Image of Introducing Battlescripts: Bots, Ships, Mayhem! publication
Publication

Introducing Battlescripts: Bots, Ships, Mayhem!

https://www.toptal.com/nodejs/introducing-battlescripts-bots-ships-mayhem
Image of The Top 10 Most Common Mistakes That Node.js Developers Make publication
Publication

The Top 10 Most Common Mistakes That Node.js Developers Make

https://www.toptal.com/nodejs/top-10-common-nodejs-developer-mistakes

Skills

Languages

JavaScript, CoffeeScript, Go, Python, PHP, Bash, SQL, C, C++, TypeScript, Java, Assembly, C#, CSS, HTML, HTML5

Frameworks

Express.js, Laravel, Django, AngularJS, Bootstrap

Libraries/APIs

Node.js, React, Underscore.js, WebRTC, jQuery, REST APIs

Paradigms

REST, Test-driven Development (TDD), Concurrent Programming, MapReduce, Model View Controller (MVC)

Platforms

Firebase, Google App Engine, WordPress, Linux, Heroku, Docker, AWS Lambda, Amazon Web Services (AWS), Iron.io

Storage

MongoDB, Redis, PostgreSQL, MySQL, Memcached, NoSQL, Amazon S3 (AWS S3)

Other

Front-end Development, Distributed Systems, Writing & Editing, APIs, Machine Learning, Namespaces, Prometheus, Software, PeerJS, DNS, Integration, Compilers, Code Generators, Parsers, Networking, PSD to HTML, RPC, Message Queues, Back-end, Front-end, Serverless

Tools

Git, RabbitMQ, Grafana, MATLAB, Mercurial, NGINX, Cgroups, Terraform, AWS Step Functions

Education

2008 - 2012

Bachelor's Degree in Computer Science

North South University - Dhaka, Bangladesh