Mahmud Ridwan, Go Developer in Dhaka, Dhaka Division, Bangladesh
Mahmud Ridwan

Go Developer in Dhaka, Dhaka Division, Bangladesh

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 now available for hire


  • 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



Dhaka, Dhaka Division, Bangladesh



Preferred Environment

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

The most amazing... 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.


  • Integration Developer

    2021 - 2022
    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
  • Lead Editor for Engineering Blog

    2015 - 2021
    • 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
  • Software Engineer

    2012 - 2015
    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
  • Full-stack Developer

    2014 - 2014
    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
  • Researcher

    2012 - 2014
    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
  • Web Developer

    2010 - 2013
    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


  • Toph—A Competitive Programming Platform

    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

    Redsync provides a Redis-based distributed mutual exclusion lock implementation for Go, as described in the following post:

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

  • Brdgd — P2P File Transfer using WebRTC

    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

    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

    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

    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:

  • Going Real-Time with Redis Pub/Sub (Publication)
    Real-time applications have already started to dominate the landscape of the Internet. With modern frameworks and standardization of the necessary client-side features, building a real-time web application has become a breeze. However, such web applications still pose unique scalability challenges. In this article, Toptal engineer Mahmud Ridwan explores the architecture of a simple real-time web application that works using Redis Pub/Sub and doesn't compromise its horizontal scalability.
  • Simplified NGINX Load Balancing with Loadcat (Publication)
    NGINX, a sophisticated web server, offers high performance load balancing features, among many other capabilities. Like most other web server software for Unix-based systems, NGINX can be configured easily by writing simple text files. However, there is something interesting about tools that configure other tools, and it may be even easier to configure an NGINX load balancer if there was a tool for it. In this article, Toptal engineer Mahmud Ridwan demonstrates how easy it is to build a simple tool with a web-based GUI capable of configuring NGINX as a load balancer.
  • Taming WebRTC with PeerJS: Making a Simple P2P Web Game (Publication)
    WebRTC has opened doors to all kinds of new peer-to-peer web applications and games that can run in the browser without the need of additional plugins. However, being a relatively new technology, it still poses some unique challenges to developers. PeerJS aims to tackle some of those challenges by providing an elegant API and insulating developers from WebRTC’s implementation differences. In this article, Toptal engineer Mahmud Ridwan provides an introductory tutorial to building a simple, peer-to-peer web game using PeerJS.
  • Introducing Battlescripts: Bots, Ships, Mayhem! (Publication)
    Programming is about having fun and enjoying the process of creating something cool. That is why we decided to build a bot-vs-bot game platform around Battleship and make it open source. In this article, we take a look at the code and mechanics of the extensible engine behind this platform.
  • Deploy Web Applications Automatically Using GitHub Webhooks (Publication)
    Deploying instances of a web application to one or more servers manually can often be a monotonous process, and take up a significant amount of your time. With little effort, it is possible to automate the process of deploying your web application with almost zero human intervention. This article outlines a simple approach to automating web application deployments using GitHub webhooks, buildpacks, and Procfiles.
  • Top 8 Most Common Mistakes That Backbone.js Developers Make (Publication)
    Backbone.js equips the developer with an array of tools that are minimal but extremely flexible. This gives developers the option to design the applications the way they want, but also introduces a number of way things can go wrong. This article outlines a few common mistakes that Backbone.js developers can make, and how they may avoid them.
  • The Top 10 Most Common Mistakes That Node.js Developers Make (Publication)
    Node.js, the cross-platform runtime environment, has seen its fair share of praise and criticism for what it offers to developers. Often, reasons for such criticisms are rooted in how developers use/misuse the language. This article explores ten common mistakes that Node.js developers make and how to avoid them.
  • Predicting Likes: Inside A Simple Recommendation Engine's Algorithms (Publication)
    The Internet is becoming “smarter” every day. The video-sharing website that you frequently visit seems to know exactly what you will like, even before you have seen it. The online shopping cart holding your items almost magically figures out the one thing that you may have missed or intended to add before checking out. It’s as if these web services are reading your mind - or are they? Turns out, predicting a user’s likes involves more math than magic. In this article we will explore one of the many ways of building a recommendation engine that is both simple to implement and understand.
  • Separation Anxiety: A Tutorial for Isolating Your System with Linux Namespaces (Publication)
    Linux namespaces make it possible to run a whole range of applications on a single real machine and ensure no two of them can interfere with each other, without having to resort to using virtual machines. In a single-user computer, a single system environment may be fine. But on a server, where you may want to run multiple services, it is essential to security and stability that the services are as isolated from each other as possible.


  • 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),
  • 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


  • Bachelor's Degree in Computer Science
    2008 - 2012
    North South University - Dhaka, Bangladesh

To view more profiles

Join Toptal
Share it with others