Mahmud Ridwan

Mahmud Ridwan

Dhaka, Bangladesh
Hire Mahmud
Scroll To View More
Mahmud Ridwan

Mahmud Ridwan

Dhaka, Bangladesh
Member since December 31, 2013
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 interesting programming problems.
Mahmud is now available for hire
Portfolio
Experience
  • JavaScript, 5 years
  • Go, 2 years
  • Node.js, 1 year
  • C++, 5 years
  • Concurrent Programming, 3 years
  • Linux, 5 years
  • MongoDB, 1 year
  • Machine Learning, 3 years
Dhaka, Bangladesh
Availability
Part-time
Preferred Environment
Linux
The most amazing...
...web app I have implemented is a programming contest platform built on NodeJS with a ptrace-based chrooted sandbox built using Go for running arbitrary programs.
Employment
  • Technical Editor
    Toptal
    2015 - PRESENT
    • Helped others author rich technical content for the Toptal Engineering Blog and Toptal Resources.
    • Developed Battlescripts - a bot-vs-bot Battleships webgame.
    • Developed Hopper - a prototype deployment automation tool.
    • Developed Arteegee - a simple implementation of the popular game Connect Four over WebRTC.
    Technologies: Node.js, Go, WebRTC
  • Software Engineer
    Mukto Software Ltd
    2012 - 2015
    • Built a web-based ERP using Python and Django.
    • Created a web-based interface for Kettle (an ETL app) using PHP and Yii.
    • Built a programming and bot contest hosting platform using Node.js.
    • Created a data analysis and reporting web app using Node.js.
    • Developed a web-based interface for Teiid (a virtual database app) using PHP and Yii.
    Technologies: JavaScript, Node.js, Python
  • Full Stack Developer
    Mainsocial (via Toptal)
    2014 - 2014
    • Created a number of services in a micro-architecture fashion.
    • Created an authentication service with single-sign on capabilities.
    • Created a central service for storing sports statistics, with revision history and reversion support.
    • Created a fantasy sports game involving baseball.
    • Created a real-time fantasy sports game involving ice hockey.
    Technologies: Node.js, MongoDB, Express, CoffeeScript, Underscore.js, AngularJS, Firebase
  • Researcher
    Computer Vision and Cybernetics Group
    2012 - 2014
    • 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: MATLAB, Python
  • Web Developer
    Mochie Enterprise
    2010 - 2011
    • Built an URL obfuscation web app.
    • Created a poetry kit-like web app for product title generation.
    • Developed a product details webpage scraper featuring automated translation from non-english websites.
    • Implemented Paypal and eBay integration for product sales monitoring.
    • Handled auction management and planning software.
    Technologies: Python, JavaScript, AppEngine
Experience
  • Saber (Development)

    Saber is a code compile-run daemon with ptrace-based sandboxing capabilities. This is being used both in CodeMarshal and Toph. It allows one to queue codes written in various programming languages to be compiled and run. It can run those programs under strict system resource limitations. Saber was written in Go (primarily) and Python.

  • CodeMarshal (Development)
    https://codemarshal.com

    CodeMarshal is a programming contest hosting platform. It was built on NodeJS and Python. The platform was able to successfully host the preliminary mock, preliminary, and semi-live contests of the ACM ICPC 2013 Dhaka Regional.

  • Brdgd (Development)
    https://github.com/hjr265/brdgd

    Brdgd (pronounced "bridged") is an extremely simple 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 (Development)
    https://github.com/hjr265/dots

    Dots is a simple networking utility web application built with Node.js. It supports DNS, rDNS, WHOIS, and geo queries on domains and IP addresses.

  • Winry (Development)
    http://bit.ly/Ux5vDb

    Winry is an app for real-time face recognition, text extraction, and voice feedback using Microsoft Kinect for aiding visually impaired people. Winry is built using Python and a few open source tools (like OpenCV).

  • Toph (Development)
    https://toph.ws

    Toph is a sport programming platform. It is built on a pure Go-based back-end.

  • 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.
Skills
  • Languages
    Go, CoffeeScript, JavaScript, Bash, Python, PHP, C++, SQL, C
  • Frameworks
    Laravel, Express, Django
  • Libraries/APIs
    Node.js, React.js
  • Platforms
    Firebase, AppEngine, Heroku, Linux
  • Storage
    Redis, MySQL, MongoDB, Memcached, PostgreSQL, NoSQL
  • Tools
    Git, Mercurial
  • Paradigms
    Test-driven Development (TDD), Concurrent Programming, MapReduce, MVC
  • Misc
    Machine Learning
Education
  • Bachelor's degree in Computer Science
    North South University - Dhaka, Bangladesh
    2008 - 2012
I really like this profile
Share it with others