STUDENTS 》 Ramin Farajpour Cami

Country: Iran

Social Media: LinkedinGithub

Summary: Windows system programming, Linux system programming, Senior Cyber Security Researcher, EDG (Engineering Development Group) of CCI (Center for Cyber Intelligence).


  • Programming Language: Python, C, Go, Ruby, C#, Assembly, PHP
  • Web Development: Django Framework, Restframework, Flask Framework, Ruby On Rails
  • ORMs: django ORM, SQLAlchemy ORM, Active Record
  • My web framework: Hobit (PHP web framework ), Bleta (Go web framework)
  • Kernel: Linux kernel/device development
  • Source control: Git, TFS
  • Security researcher (Web application vulnerability, Open source software vulnerability)
  • Debugger (GDB, IDA)

Certifications: Network+, CCNA, Windows (MCITP), LINUX (RHCSA , RHCE , Debian)

Operating System: Linux (Debian , RedHat, Fedora my favourite for kernel development), Windows

Security And Hacking skills: CEH, PWB, PWK, Network Security, Web Application Security, WIFU, Software Testing, Reverse Engineering

Open Source Projects research and contribution:

Hall Of Fame:


Saravanan Muthu, Bangalore ↗
LinkedinSend eMail
Linux system programming, IFE(In Flight Entertainment) and Bio-informatics expert having 12+ years Industry experience.

Shashank Mohan Jain, Bangalore ↗
LinkedinGithubMedium 🔗
Development Architect at SAP Research, having 15 years industry experience in Cloud systems, provisioning services like DB/Brokers, Virtualization, Java technologies

Sachidananda Sahu, Bangalore ↗
Senior Software Engineer, Radisys India Pvt Ltd having 4+ years industry experience in LTE Architecture and Protocol Stack, L3 ( RRC, X2AP, S1AP and Self Organizational Network (SON)) and Dynamic Spectrum Arbitrage on LTE Network.

Bharath Thiruveedula*, Hyderabad ↗

Development Engineer, Openstack expert.

Mohit Kumar Rajain, Delhi ↗
LinkedinGithub 🔗
Network Security Expert

Rahul Shrivastava, Bangalore ↗
Senior Datacom and systems Software Engineer having 5+ years industry experience. Hands on expert in TCP, Layer 2, Layer 3, OSPF, BGP, ISIS, Multicast, IGMP, Forwarding plane, Socket Programming, Kernel Programming, Distribution System, Operating Systems, Linux,Embedded Systems, Linux Kernel, Data Structures, Algorithms, Multithreading, Threads, IPC, Design Patterns, C, C++, Assembly

Himanshu Sharma, Bengaluru, Karnataka, India ↗
Experience of around 2 years in Embedded Software Development, I am currently working as a Android Kernel Engineer in Borqs India. I had worked as a Wi-Fi developer in Qualcomm and possess considerable amount of exposure to Power Line Communication firmware. Have worked on Chipset’s integrating PLC & WiFi together and have a basic exposure to OpenWrt.

Shyam Saini, Delhi ↗
LinkedinGithubGoogle+Twitter 🔗
DevOps Engineer at Paytm ↗, FOSS, Kernel programmer and Linux enthusiast

Anbarasan Ganesan, Chennai ↗
2.5+ years of experience in WLAN Device Driver Development and 2+ years of experience in Software Development. Had developed software for ARM micro-controllers. And I have been working in WLAN device driver development and debugging.

Thulasi Veggalam, Chennai (Nellore) ↗
3+ Years of Hand-on experience in Software Design & Development


Velmurugan Ramalingam, Hsinchu ↗
Experienced RD Project Manager, Systems software, Wireless Networking and RTOS expert


Ramin Farajpour Cami, ↗
Senior Cyber Security Researcher, EDG (Engineering Development Group) of CCI (Center for Cyber Intelligence).

Join The Linux Channel :: Facebook Group ↗

Visit The Linux Channel :: on Youtube ↗

💗 Help shape the future: Sponsor/Donate

Recommended Topics:
Featured Video:
Watch on Youtube - [217//0] 0x1a3 Arrays for Architects | The Linux Channel ↗

Adding your own Kernel Modules into Linux Kernel Source | Linux Kernel Programming ↗
Thursday' 13-Aug-2020
Whenever you do custom kernel modules, you can optionally make it a part of existing Linux Kernel source. This does not mean you are submitting your kernel module to the mainline kernel source (i.e kernel.org Linux Kernel Foundation). What I meant is, you can make your kernel module(s) part of Linux Kernel source so that when you compile your kernel you can automatically compile your kernel module(s) too. As well when you create/modify kernel .config configuration file (such as via make menuconfig, etc), you can enable or disable your kernel module(s) too.
To do the same you have to register (and include) your custom Kernel Module's Kconfig and Makefile to the existing Kconfig and Makefile of the Linux Kernel source Here is a detailed multi-episode video of mine which gives the overall idea and the big-picture.

Linux Kernel Programming | with or without Kernel Modules | Device Drivers ↗
Thursday' 13-Aug-2020
When learning Linux Kernel programming, often I notice my students and viewers gets confused and they start with learning writing Linux Kernel modules. And so they develop the common misconception about Kernel Programming in general. They assume writing code in Linux Kernel means writing kernel modules. Which is absolutely not. Kernel modules are an optional choice and are part of Linux Kernel. But besides modules, Linux Kernel has lot of other mainstream code. Hence if anyone wants to be a Kernel Developer, you should be aware that sometimes you add new code via modules, sometimes without them. And if you ask me, I am not much in favor of writing Kernel modules. Instead in my code, I try to integrate and make them a part of Linux Kernel so that they all get initialized during boot time. Here is an extensive Youtube video of mine on Linux Kernel Programming, with and without Kernel Modules.

Roadmap - How to become Linux Kernel Developer - Device Drivers Programmer and a Systems Software Expert ↗
Thursday' 13-Aug-2020
Many viewers and even sometimes my students ask me how I can become a kernel programmer or just device driver developer and so on. So I shot this video (and an add-on video) where I summarized steps and a roadmap to become a full-fledged Linux Kernel Developer.

Weekly News Digest - Week 03 - July 2020 ↗
Thursday' 13-Aug-2020
The Linux Channel :: Weekly News Digest - Week 03 - July 2020
> Linux founder tells Intel to stop inventing 'magic instructions' and 'start fixing real problems'
> QNAP launches its first 2.5GbE network switch - QSW-1105-5T
> Japan's ARM-based Fugaku is the world's fastest supercomputer
> FreeBSD Back To Seeing Progress On 802.11ac WiFi Support, Ath10k Driver
> Sparkfun Launches the ZED-F9R GPS Dead Reckoning Raspberry Pi pHAT for Mobile Robots
> ODROID-N2 Plus SBC Gets Amlogic S922X Rev. C Processor Clocked at up to 2.4 GHz
> Rock Pi E SBC Comes with WiFi, Bluetooth, Two Ethernet Ports, and Optional PoE

Linux Software Development and Tools ↗
Thursday' 13-Aug-2020

Compiling a C Compiler with a C Compilter | Compile gcc with gcc ↗
Thursday' 13-Aug-2020
The fundamental aspect of a programming language compiler is to translate code written from language to other. But most commonly compilers will compile code written in high-level human friendly language such as C, C++, Java, etc. to native CPU architecture specific (machine understandable) binary code which is nothing but sequence of CPU instructions. Hence if we see that way we should able to compile gcc Compiler source code with a gcc Compiler binary.

Programming Language Performance and Overheads ↗
Thursday' 13-Aug-2020
A detailed Youtube video series of various programming language performance and overheads - a big picture

PyDelhi + PyData + ILUG-D + Linux Chix meetup mash @ Sarai on 17-Dec-2016 ↗
Thursday' 13-Aug-2020

Generic VLOGs ↗
Thursday' 13-Aug-2020
My general and tech VLOGs

C Programming Language Basics - Pointers in C ↗
Thursday' 13-Aug-2020

Trending Video:
Watch on Youtube - [228//0] 0x1c3 ARMv7 Marvell Armada 370/XP | Netgear ReadyNAS Teardown and Upgrade | VLOG & Workflow ↗

Smart NIC Cards ↗
Thursday' 13-Aug-2020
NIC Cards (Network Interface Cards) traditionally contain controller chip which takes care of the core aspects, such as packet reception, buffering (till they are read by OS device drivers), etc. But these days increasingly modern NIC cards can perform several CPU Network Offload functions such as packet/frame checksum, etc. Such hardware offload features of modern NIC cards is crucial to process packets and support packet data transfer rates of around 1Gbps, 10Gbps, even 40Gbps and so on. But beyond that such as 100Gbps and so on, at times even a high-end Xeon/ Intel/ AMD processors will struggle if need to support transfer rates of around 100Gbps or beyond (situations like Link Bonding). These are the situations we need what we call as Smart NIC Cards. A Smart NIC card implements most of the network traffic processing on the NIC itself that would necessarily be performed by the CPU (i.e Operating System) in the case of a traditional NIC card.

Recommended Video:
Watch on Youtube - [209//0] 0x1a2 Joblessness and Suicide rates in Tech (IT) Industry | The Linux Channel ↗