Readul H C.

Readul H C.

Backend developer

Request Rate
Bangladesh

Readul is a highly motivated and skilled Python developer. He has more than 3 years of experience in Software development. He specializes in building server-side solutions using Python/Django stack. He is familiar with Linux. Readul is a flexible and calm, reliable, communicative and supportive team player. His hobbies are helping to solve some challenging cases on the StackExchange Network and contributing to open source projects.

Skills

  • Python
  • Django
0246810

Experience

EatingHabits, Bangladesh

CTO

April 2019 to Present

Stack: 

  • Python,
  • Django, 
  • DjangoREST,
  • Vue.js, 
  • Quasar, 
  • Postgresql
  • Django ORM
  • Nginx, 
  • uWSGI, 
  • GitLab CI, 
  • Git, 
  • Ansible.


Responsibilities: 

  • Full-stack development, deployment, maintenance, administration of the Hybrid App (Web/Android/iOS);
  • Backend: The backend is Python/Django, with a REST API written by me using. Django REST Framework (DRF) exposed to the frontend for CRUD calls;
  • Database: Using Postgresql with Django ORM for storing/retrieving data programmatically;
  • Frontend: Writing Quasar framework and Vue.js based frontend using Vue.js libraries like i18n, Vuex, Vue-router, and so on;
  • Deployment/Maintenance/Administration: Configuring and maintaining Nginx (as a web server), uWSGI (as WSGI server), GitLab CI (for CI), Git (as VCS), Ansible(for automation);
  • Management: Taking various strategic decisions from a technical perspective, and making sure the team is moving forward in harmony towards a collective goal.

Dealiable, Bangladesh

Founder

June 2018 to April 2019

Stack: 

  • Python,
  • Django, 
  • DjangoREST,
  • Selenium,
  • BeautifulSoup, 
  • Requests,
  • Postgresql
  • Django ORM
  • Vue.js
  • Bootstrap


Responsibilities: 

  • Full-stack development, deployment, maintenance, administration;
  • Web scraping: Written numerous web scraping and parsing scripts in Python for collecting product data from Online shops of Bangladesh. Notable libraries used: Selenium, BeautifulSoup, Requests;
  • Backend: Written the backend in Python/Django. A REST API written using Django REST Framework (DRF) is exposed for the frontend;
  • Database: Used Postgresql as the database to store scraped/formatted data. Used Django ORM for storing/retrieving data programmatically;
  • Frontend: Used Vue.js as the frontend JS framework, and Bootstrap as the only CSS library. Everything else is written by me from scratch;
  • Deployment/Maintenance/Administration: All deployment/maintenance works in VPS running Ubuntu as the OS, Nginx as the web server, uWSGI as the WSGI server. All System administration tasks. Revision controlling of all codes and configurations through Git.

BookShelfBD, Bangladesh

Founder

December 2017 to June 2018

Stack:  

  • Python,
  • Django, 
  • Django templates,
  • Jinja2,
  • Django ORM,
  • Postgresql,
  • uWSGI,
  • Nginx,
  • GitLab CI,
  • Git,
  • Ansible,
  • GNU/Linux,
  • jQuery,
  • Bootstrap4,
  • Python unittest.


Responsibilities: 

  • Coding, deployment, maintenance, administration of peer-peer book sharing Platform of Bangladesh


Therap Services LLC, Bangladesh

TSystem Administrator II

July 2014 to December 2017

Stack: 

  • Python,
  • Django,
  • Django ORM,
  • Postgresql,
  • MySQL, 
  • OracleDB,
  • MongoDB,
  • Docker, 
  • Vagrant, 
  • LXC/LXD, 
  • Git, 
  • Ansible, 
  • GNU/Linux, 
  • jQuery, 
  • CSS,
  • HTML, 
  • YAML, 
  • JSON, 
  • XML, 
  • Regex, 
  • Bash
  • Bootstrap4,
  • Python unittest.


Position: TSystem Administrator II


Responsibilities: 

  • Developed GNU/Linux Distro: Single-handedly developed and maintained an Ubuntu-based GNU/Linux distribution for internal use. The distro included all the bells and whistles including package management with independent repositories, custom packaging of programs, custom programs, maintainer methodologies, and so on;
  • Development: Developed various toolsets and written many scripts for a variety of tasks including but not limited to inventory management, networking, device statistics, log parsing, text processing, resource tracking;
  • DevOps and System Administration: Maintained and enhanced previously developed, implemented toolsets in the DevOps and System Administration chain, as day-to-day tasks.


Position: Associate System Administrator


Responsibilities: 

  • GNU/Linux Administration: Worked on, and debugged many GNU/Linux stuffs that require a deeper understanding of the system, tools, and methodologies. Worked on both Debian (as desktop) and Fedora (as server) derivatives. Worked with various package management systems, diagnosed issues from the lower level. Managed various init systems including Systemd, SysV, Upstart;
  • Ansible: Designed, wrote, and maintained the configuration management, and automation tool - Ansible. Currently, 20 configuration combinations of the company’s infrastructure are fully automated through it;
  • Centralized Logging Infrastructure: Designed, implemented, and maintained the ELK (Elasticsearch, Logstash, Kibana) stack for Log management, it is now the centralized Log infrastructure for the company. Experienced with implementing, and ministering Splunk too;
  • Scripting: Written many scripts according to customer requirements in Bash (also POSIXsh), Python, Go for the production environment. Also written many scripts for automating various System administration and DevOps tasks;
  • Version Control: Experienced with Git; designed, configured, and maintaining Gitlab - the central Git remote repository infrastructure for the Operations people; all stuff that needs to be revision-controlled are put here;
  • Nagios: Configured, and maintained Nagios, the monitoring system. Written many plugins for Nagios using Bash, Python;
  • Cacti: Configured, and maintained Cacti for tracking relevant historic data (usually resource usages) from devices using SNMP. Written many custom scripts for getting and formatting the data properly;
  • DNS: Designed, implemented, and maintaining DNS server using BIND for internal use; had implemented a variety of configurations for ensuring optimum security and usability;
  • Text Processing: Written scripts, and one-liners for various tasks involving text processing; tools used: awk, sed, grep, bash, python, and another standard *nix text processing utilities;
  • LXD/LXC: Very familiar with Linux Namespace and Cgroups based machine-centric container technologies: LXC, LXD;
  • Vagrant: Extensively used Vagrant; created Vagrantfile and other necessary wrapper scripts for VM creation and management;
  • Docker: Tested the possibility of deploying the company App with Docker; used Docker in many smaller projects;
  • Virtualization: Installed, configured, and administered Xen based OVM (Oracle Virtual Machine); written Python scripts for VM management using the REST API; familiar with QEMU, KVM, Virtualbox as well;
  • Database: Worked with relational databases especially MySQL, PostgreSQL; written queries as per requirements;
  • Web Servers: Installed, configured and now administering Nginx as the web server, reverse proxy; working on performance optimization, secure transportation, and overall efficiency. Maintained Apache previously;
  • Performance Optimization: Worked on optimizing various performance-related parameters of Linux kernel, disks, networks, and related toolsets;
  • Day-to-day Operational Tasks: Performing the trivial Operational tasks regularly to keep the whole Operational ecosystem on the best performant state.


Position: Junior Unix Administrator


Responsibilities: 

  • Monitoring Infrastructure: Monitored the company’s Java-based web application, network, and related stuff, on a roster basis. Diagnosed problems, forwarded to tier-2 if needed; also done regular health checking of devices;
  • Scripting for Production: Written Python scripts for getting data from several production scripts by parsing mail, saved the data, sent mails as reports with detailed time and other relevant data;
  • Cobbler: Configured and maintained Cobbler for automating the installation of various Operating systems on bare metal and virtual machines;
  • Scripts for Monitoring: Written scripts for automating various infrastructure monitoring tasks;
  • Log Parser: Written in-house application, and access Log parser for Company’s Java-based application for parsing logs, in Bash, *nix standard utilities, and Python;
  • Browser Automation: Written automated script for a browser to get data from tools, using Python (web driver-based, used Selenium);
  • Monitoring Tools: Extensively familiar with the inner-workings and administration of Oracle Enterprise Manager (OEM), Nagios, Cacti.

Bangladesh Online Limited (Beximco IT), Bangladesh

Executive, Technical Support

April 2013 to June 2014

Stack: 

  • Debian,
  • Ubuntu, 
  • Squid, 
  • PFSense, 
  • Smokeping, 
  • Nagios, 
  • Cacti, 
  • MRTG.


Configured and maintained networking devices of the ISP, provided support to the clients.


Responsibilities: 

  • Team Supervision: Supervised a team working on network infrastructure;
  • Infrastructure Monitoring: Monitored, on a roster basis, the whole network of the ISP; diagnosed and fixed issues;
  • Networking Device Management: Configured, and administered various brands of networking devices including routers, switches which were used in-house and also by the clients;
  • GNU/Linux and Service Administration: Installed and managed Debian/Ubuntu, and various needed services including but not limited to a mail server (Postfix, Zimbra), a proxy server (Squid) for the clients;
  • Firewall Management: Installed, configured, maintained PFSense (FreeBSD based) as a firewall, for the clients; also familiar with different forms of firewalls and such applications;
  • Client Support: Provided support to the clients over email, phone, and on-premise;
  • Monitoring Tools: For regular monitoring, used Smokeping, Nagios, Cacti, MRTG, WhatsUpGold; familiar with all of these.

Education

Master of Science, The University of Dhaka

September 2011 to June 2013

Bachelor of Science, The University of Dhaka

September 2005 to June 2011

Bangladesh

Portfolio

EatingHabits
April 2019 - July 2019
EatingHabits
April 2019 - July 2019

EatingHabits is a hybrid (Android/iOS/Progressive web) app designed specifically for people with eating disorders to help them track their daily food and healthy habits.


As the CTO of the project, I was responsible for full-stack development (mainly Django backend), deployment, maintenance, administration. I developed the backend REST API (based on Django REST Framework) that talks to the VueJS frontend via CRUD AJAX call.


I designed the whole tech stack, written unit, and integration tests, and handled all CI/CD stuff. I also performed my role as a database (Postgresql) administrator for getting optimum performance through Django ORM. I’ve also configured and maintained Nginx, and uWSGI as the webserver uses the WSGI protocol to talk to the Django app.

Dealiable
June 2018 - April 2019
Dealiable
June 2018 - April 2019

Dealiable is a single page application (SPA) that aggregates all deals from online shops of Bangladesh via web scraping and makes them available in a categorized and easily searchable manner.


I was the Lead backend developer of the project. My responsibilities were twofold: one is to write web scrapers for different sites in Python, and the other was to make them available via Django REST Framework based REST API.


For web scraping part, I’ve extensively used BeautifulSoup, Selenium, and Requests Python libraries. And for web backend, the Django ecosystem was used with Django REST Framework being the main focus. I also handled all the DevOps and System Administration tasks. The frontend was written in VueJS that retrieved data from backend via AJAX calls. All the codes were properly unit and integration tested.

BookshelfBD
December 2017 - June 2018
BookshelfBD
December 2017 - June 2018

BookshelfBD is a reader-reader (peer-peer) book sharing platform where readers can share or sell their books. The primary target for this project was the University students, to let them share/sell their old books.


As the Lead developer of the project, I wrote the web stack using Django. I’ve extensively used base Django models, views, and templates. I’ve also used Jinja2 template engine for creating templates. All the testing was done by using Django flavored Python unittest.