24 Apr - 1 Sep, 2020 Proposal submission closed

Welcome to PyCon India 2020 CFP

The major change this year is the online format of the Conference.

There are 2 categories of Proposals - Talks and Workshops. You can select the category from the 'Proposal Type' Dropdown in the Proposal Submission Page. Here is a brief overview of both Categories.


Technical talks are the most important event at PyCon India, the core of the conference essentially. Two of the four days are dedicated to talks. Talks are short lectures (25 min slot) supported by a presentation. Speakers come from the Python community.

This year we have introduced a preview video section where you need to add a short preview video mentioning the overview of the Talk. To know read the CFP announcement blog post

Talks are selected through a CFP (Call For Proposals) process. Interested members of the community propose their talks. An editorial panel designated by the organisers makes the selections. The 2019 edition of the conference saw some 303 proposals, of which 36 were selected.

CFP applications from the previous years can be seen here.

Important Points

  • There are three parallel tracks
  • Talk duration is 30 mins (25 mins for the talk, 5 mins - Q&A)
  • CFP for Talks is closed.
  • Schedule shall be released on 15th September 2020
  • Talks will be presented on 2nd and 3rd October 2020


Workshops are an important part of the PyCon India. Hands on learning is as important as talks for a fulfilling conference experience. Like talks, workshops are also conducted by the members of the Python community.

Anyone can propose for conducting a workshop. Any topic of interest to the Python community is okay - the workshop should help attendees learn a new skill, technology or library. To get a sense of the topics from last year, take a look here.

In the CFP proposal, please mention an outline of the workshop and the prerequisites. And the slides if possible. Also mention if you have conducted the same workshop before.

The workshop should be interspersed with proper hands-on exercises. After the workshop people should be ramped up on the workshop topic, and should be able to take it forward themselves.

To know about Best practices please check the Workshop Proposal Announcement blog post.

Important Points

  • Workshop duration is 2.5 hours (A small break in between as planned by the speaker)
  • CFP for Workshops closes on 31st August 2020 23:59 UTC+05:30
  • Schedule shall be released on 15th September 2020
  • Workshops will be conducted on 4th October 2020

What to Propose

Anything of interest to Python programmers is welcome. However, there are a few topics that we feel might be great -

  • Lessons from using Python in your project. Did you find something against conventional wisdom? Something confirming conventional wisdom ? Do you have advise for people solving similar problems? Example - I tried Python for video processing, or in my medical imaging project, and here are the lessons.
  • Something you're doing to make the language/ecosystem better. Writing a library to solve an interesting problem ? Or have some new ideas on optimisation.
  • Something you learned from a different language that may be useful to Python community. How about a type system? Or patterns from functional programming. Or logic programming maybe?
  • Thoughts on tech culture and living. Ideas on improving diversity and inclusiveness. On programmers’ physical and mental health. On getting better at productivity. On workplace issues. Anything that can make an impact, especially if you have used Python for any of the above or have seen someone using Python.

And if you don't get any ideas along these lines, try plain and simple teaching. Pick up an niche topic (maybe a recent technology, or a scientific paper), and help us learn. A well delivered lecture even at a beginner level is often well received.

Guidelines for creating Preview Video

With PyCon India 2020 being online this year, we are introducing preview videos to our proposal submission workflow. Preview videos are you talking about your proposal, topics you intend to cover in the talk, and how you intend to cover them. Participants are strongly suggested to upload links of their preview videos while submitting their proposals. It will be immensely helpful for reviewers to go through preview videos and take that into account before making final decisions on your talk proposal. Please keep in mind to strictly follow all guidelines for creating your video preview as mentioned below:-

Duration & orientation

A 1 to 3 minute video to be recorded, preferably in portrait mode.

Upload to YouTube

The video has to be uploaded on Youtube. If you don’t want other people to find it, mark it as unlisted. Don’t mark it as private or disallow embedding, or we won’t be able to see it. ​

Only you talking about your talk

The video should contain nothing except you talking about your talk.​ Try to make a video that holds our attention and helps us understand more deeply about what's your talk is all about.

No effects & No Music

Please do not add any background music to your video. ​No screenshots or postproduction wizardry please; we don’t want this to turn into a video making contest. If you’re going to spend time making something cool, put that into your slides & proposal instead.

No Script

Please do not recite a script written beforehand. Just talk spontaneously as you would to a friend. People delivering memorized speeches (or worse still, reading text off the screen) usually come off as dull and uninspiring. Think of this as fun activity and let your heart do the talking. Be vanilla!

Check Audio

Try to keep your voice clear and check that its being recorded properly. Make sure there isn't any background noise. Try to record this in an empty room if possible without much going on in the background.

The Review Process

  • Authors should propose their talks using the CFP application
  • CFP volunteers review the proposals for completeness
  • Once the proposals are ready, they are be reviewed by a panel of experts
  • If the proposal does not look complete, or the reviewers need clarifications, the author is notified via comments
  • The panel of experts finally vote on the proposals
  • A pre-final shortlist is eventually prepared based on the votes
  • The shortlisted proposals go through a round of rehearsals (more details in section below)
  • A final list is created and published.


Shortlisted speakers will be expected to participate in rehearsal sessions. Rehearsals will be done via teleconferencing, where the speaker shall give a mock run of their talks in a time-bound manner. The audience will consist of volunteers, reviewers and possibly other speakers. The speakers will be given feedback if necessary.

The point of this exercise is to make sure speakers are ready with their talks ahead of time. And also, to make sure they can finish the talk in the stipulated time. It is useful for the speakers too as they'd get feedback on the content delivery and presentation.

Participation in the rehearsal sessions is likely to be a required step - chances of an unrehearsed talk making it to the final stage are substantially lower.


We in the Python community believe in making our community more diverse. This means we are encouraging content from diverse walks of life. This also means we want to improve participation from under-represented groups.

Our goal is to maximise content from under-represented groups. You can help us by encouraging your friends, family and colleagues to submit talks. You can also help by mentoring.

Also note that we have a strict code-of-conduct. This is to make it clear, in intent and practice, that we are committed to making the conference a pleasant, welcoming and harassment free experience for everyone, especially for under-represented groups.

Best Practices for Speakers

1. Apply

Even if you have a vague idea, submit a proposal. We're available for help with ideas and feedback (contact information is in the section below). Don't worry about communication skills or English - we are there to help with that too. And our focus is more on the content.

2. Make it detailed

Add as much detail as possible to the proposal. Add the presentation slides if you already have one. Add a short minute video giving a summary of the proposal. More detail helps reviewers make better judgement.

3. Propose early

We will start the review process as the proposals come in, and not at the end. Proposals submitted early will get more attention and feedback

4. The code of conduct

Take a look at the code of conduct, and be mindful of it. The gist is, be nice and avoid using sexist language.

5. Add a preview video

Add a small intro video about what your talk is about to provide a preview to what's to be expected.

We've put together a set of detailed best practices - take a look. It also contains links to some well written proposals from previous years.


  1. Please do not share any confidential information in your proposal. The PyCon India team will not be liable for any intellectual property related to your content. Do get proper approval as required from your respective organisation for your content involved.
  2. All the artifacts from selected talks are to be made public under creative commons license post conference.
  3. The content you submit for your talk will be visible to the volunteers and reviewers of the PyCon India Review and CFP working groups.

Questions and Discussions

Ping us on Zulip or IRC (#pyconindia) Or contact the coordinators through email:

Anirudha - anirudhastark@gmail.com

Ritesh - udr.ritesh@gmail.com

The team: cfp@in.pycon.org

Proposal Sections

  1. Decentralised and Distributed Technology - Blockchain, Tangle or any DLT protocol or infrastructure related product.
  2. Others - Everything else that may be of interest to the audience.
  3. Desktop Applications - Qt, GTK+, Tkinter, Gnome, KDE, Accessibility
  4. Scientific Computing - Python usage in scientific computing and research. GIS, Mathematics, Simulations
  5. Game Design and 3D Modelling - Python in developing games, 3-D modelling and animation
  6. Culture and society - Diversity, health, productivity, workspace issues, privacy, community building, coding for causes
  7. Embedded Python and IOT - MicroPython, Python on Hardware, Robotics, Arduino and Raspberry Pi
  8. Networking and Security - Network Programming, Network Security and Encryption
  9. Web development - Web, Apis, Microservices
  10. Developer tools and automation - Testing, CI/CD, Containers, Orchestration, Logging and Monitoring
  11. Data Science, Machine Learning and AI
  12. Core Python - Language Features, Python Implementations, Extending Python and Standard Library, language internals.

Proposal Types

  1. Talks
  2. Workshop

Selected Proposals


3 8

2. Static Typing in Python

Sanchit Balchandani (~sanchit3) 25 Apr, 2020

4 2

4. Predicting the Traffic Jam: Congestion-Aware Routing

Niharika Shrivastava (~OrionStar25) 16 Jun, 2020

3 0

6. Write Prose, not just Programs

Puneeth Chaganti (~punchagan) 12 Aug, 2020

9 16

7. Revolutionize the Web with Python - Brython

Antriksh Verma (~antriksh) 15 Aug, 2020

2 0

9. How Decorators Function

Andrew Knight (~andrew89) 14 Aug, 2020

3 0

12. ApiVer – a versioning policy for libraries

Paweł Polewicz (~ppolewicz) 13 Aug, 2020

1 1

14. Under and Dunder - Python secret functions

Cheuk Ting Ho (~Cheukting) 10 Aug, 2020

4 0

16. Awesome Commandline Tools

Amjith Ramanujam (~amjith) 05 Aug, 2020

3 1

19. Stop Writing Tests!

Zac Hatfield-Dodds (~Zac-HD) 03 Aug, 2020

6 3

27. Programming for Accessibility

Rory Preddy (~rory) 19 Jul, 2020

4 3

29. Build plugins using Pluggy

Kracekumar Ramaraju (~kracekumar) 24 Jun, 2020

1 3

30. Python Emergency Remote Teaching

Fernando Masanori Ashikaga (~fernando_masanori) 19 Jun, 2020

1 0

32. Logging the right way!

asldevi (~asldevi) 19 Aug, 2020


2 0

4. Getting Started with Python

Evan Smith (~evan) 20 Aug, 2020

3 0

5. Python on Kubernetes: A primer

Nabarun Pal (~palnabarun) 19 Aug, 2020

List of Proposals

2 7

1. Memory Management in Python

Jatin Goel (~jatin15) 25 Apr, 2020

2 8

2. Writing your own container in Python!

Shubham Sharma (~shubham1172) 25 Apr, 2020

2 5

4. How to double your productivity as a developer

Karthikeyan Vk (~karthikeyan76) 29 Apr, 2020

3 5

6. Indian Sign Language Recognition(ISLAR)

Akshay Bahadur (~akshaybahadur21) 01 May, 2020

3 4

7. Breaking the Black-box

uday kiran reddy kondreddy (~udaykiranreddykondreddy) 01 May, 2020

0 4

8. What happens behind execution of an `import` statement?

Shivashis Padhi (~shivashis) 02 May, 2020

2 1

9. Docker-compose for Pythonistas

onlinejudge95 04 May, 2020

0 4

10. Measuring the software project's health with Quality Models

Venu Vardhan Reddy Tekula (~vchrombie) 09 May, 2020

2 6

11. Machines with Power of Imagination

Utkarsh Mishra (~utkarsh13) 10 May, 2020

3 6

12. Cloud DevOps with Python

Wriju - Personal (~wrijugh) 10 May, 2020

4 1

17. Introduction to NLP with BERT

Milind Thombre (~thombrem) 30 May, 2020

2 12

20. Hands on Python

@coderoflagos 01 Jun, 2020

5 4

24. Security in Flask

Dhinesh (~dini-rockz93) 07 Jun, 2020

2 4

25. Beyond Unit Testing for Data Intensive Apps

אייל טרבלסי (~eyaltrabelsi) 08 Jun, 2020

6 4

26. Practical Performance Optimisation for Pandas

אייל טרבלסי (~eyaltrabelsi) 08 Jun, 2020

5 3

30. Effective Development Patterns for Micro-services

Prashanth Raghu (~prashanthraghu2) 09 Jun, 2020

2 3

32. The website story

arjoonn sharma (~theSage21) 10 Jun, 2020

2 1

35. Data Visualization with python

ravindra raut (~ravindra48) 15 Jun, 2020

3 2

36. Tricks to Optimise Numerical Code

Kousik Krishnan (~kousik) 15 Jun, 2020

2 11

37. Let's Make Tetris with Pygame!

Aditya Abhiram (~Aa20475) 17 Jun, 2020

2 2

38. Flask Modular Flow: Going Beyond The Factory

Abdur-Rahmaan Janhangeer (~Abdur-rahmaanJ) 19 Jun, 2020

1 2

40. Build an automated trading BOT for Indian Stock Market

Yatin Chaubal (~yatin09) 19 Jun, 2020

4 3

43. Static Typing in Python

Shubhi Khanna (~shubhi09) 22 Jun, 2020

0 18

46. Automatically Refactoring Python Code

Ganesh Samarthyam (~ganesh71) 25 Jun, 2020

0 1

49. Transfer Learning with Tensorflow 2.0

Joinal Ahmed Borbhuiya (~joinalahmed) 26 Jun, 2020

3 2

53. Concurrency in Python : from Beginner to Pro

Prakhar Agarwal (~prakhar-agarwal) 27 Jun, 2020

4 0

54. Asyncio and Web crawlers

Haren Lewis (~haren) 27 Jun, 2020

2 1

57. Interactive ATM Analytics using Dash

pgovindaraju 29 Jun, 2020

4 23

59. Testing in Production

Talia Nassi (~talia) 30 Jun, 2020

0 1

61. Distributed Training with PyTorch

Shagun Sodhani (~shagunsodhani) 05 Jul, 2020

2 2

62. Time and Space Complexity in Python

Yogendra Singh (~yogendra35) 06 Jul, 2020

5 -1

68. Hands on Pandas session

Aarthi_Kalyanasundaram 13 Jul, 2020

3 0

69. Creating new worlds in Minecraft

Anand S (~anand40) 13 Jul, 2020

4 1

71. The Curious Case of RegEx

Divya Mohan (~divya78) 17 Jul, 2020

2 3

75. Best Debugging Practices in Python

Mohammed Mohsin (~mohammed43) 21 Jul, 2020

1 0

77. Simple InProcess APM

Abhishek Dutta (~codejunction) 23 Jul, 2020

1 1

78. Concurrency and Distributed Processing

Abhishek Dutta (~codejunction) 23 Jul, 2020

4 2

80. Asynchronous programming in Python

Christopher Harrison (~GeekTrainer) 24 Jul, 2020

1 2

81. Understanding virtual environments

Christopher Harrison (~GeekTrainer) 24 Jul, 2020

7 8

82. Quantum Computing - An Untouched Realm?

shubhayan saha (~ShubhayanS) 25 Jul, 2020

1 1

83. Distributed Data pipelines in Python

Bhavani Ravi (~bhavaniravi) 25 Jul, 2020

1 1

99. Interactive Mapmaking with Python

Sangarshanan (~Sangarshanan) 31 Jul, 2020

7 0

107. Algebraic topology for understanding data

Adwaith Vijayakumar (~adwaith) 03 Aug, 2020

7 1

108. Walk Through Coroutines in Python

Anustup 03 Aug, 2020

7 2

109. Hierarchical Database Structures in RDBMS

Akash Mishra (~akash7) 03 Aug, 2020

2 0

110. What is `pyproject.toml`?

Steph Samson (~stephsamson) 04 Aug, 2020

2 1

115. Building Serverless APIs with Python and Azure Functions

Ashirwad Satapathi (~AshirwadSatapathi) 05 Aug, 2020

2 6

117. Studying Galaxies with Python!

Abhijeet Manhas (~abhijeetmanhas) 07 Aug, 2020

2 0

122. Natural Text to Speech for Indic languages

Muru Selvakumar (~muru_selvakumar) 07 Aug, 2020

3 0

123. Essential Soft Skills For Developers

Shedrack akintayo (~hacktivist123) 07 Aug, 2020

4 1

124. Graphene in Practice

Paul Bailey (~pizzapanther) 07 Aug, 2020

3 15

129. Solution Accelerators with Jinja

Raza Balbale (~raza) 10 Aug, 2020

7 0

130. Python worst Practices AKA Anti-Patterns

Pratibha jagnere (~pratibha69) 10 Aug, 2020

1 11

133. Going Serverless with Django on AWS Lambda

Siddharth Goyal (~sid22) 10 Aug, 2020

3 3

136. Jupyter for DevOps

prateekj1993 11 Aug, 2020

2 6

140. Self-driving cars using OpenCV

Abirami Ravishankar (~abirami-r) 12 Aug, 2020

2 0

149. Beginner Approach to Django Project Structure

Ruth Ikegah (~ruth76) 13 Aug, 2020

3 2

154. Object Internals In Python

Mridu Bhatnagar (~mridu) 13 Aug, 2020

0 -1

155. Building Systems for Internationalization

Amanda Sopkin (~asopkin) 13 Aug, 2020

3 0

156. Encouraging Open Source Software in Government

Amanda Sopkin (~asopkin) 13 Aug, 2020

4 3

158. Integrating teams by implementing a Design System

Mariana Bedran Lesche (~maribedran) 14 Aug, 2020

1 2

169. Automatically generate test-cases – Schema-based API testing

Alexander Hultnér (~Hultner) 14 Aug, 2020

0 0

170. Faster Python Apps with Opensource APM

Aravind Putrevu (~aravind34) 14 Aug, 2020

5 0

171. Building Search Experience for a Python Web Application

Aravind Putrevu (~aravind34) 14 Aug, 2020

0 0

172. Building Search Experience for a Python Web Application

Aravind Putrevu (~aravind34) 14 Aug, 2020

0 0

178. #MakingAcademicsCoolAgain (with Python)

Joel Vilanilam Zachariah (~joel70) 14 Aug, 2020

3 2

181. A lazy guy's guide to concurrency in Python

Akash Vacher (~akash4) 14 Aug, 2020

0 3

182. 5 steps From coder to developer

Riya (~riya43) 14 Aug, 2020

0 0

185. Beyond Unit Tests: End-to-End Web UI Testing

Andrew Knight (~andrew89) 14 Aug, 2020

0 0

186. East Meets West When Translating Django Apps

Andrew Knight (~andrew89) 14 Aug, 2020

2 1

188. Pytest: A Live Intro

Andrew Knight (~andrew89) 14 Aug, 2020

1 1

191. Python -> from scripting language towards programming language

Anandprakash Tandale (~anandprakash) 14 Aug, 2020

2 1

195. Important Metrics for Measuring Code Health

corgibytes 14 Aug, 2020

3 1

197. ML as a Service

Adarsa Sivaprasad (~adarsa92) 14 Aug, 2020

4 2

204. The S in Python stands for Speed

Shuvam Manna (~shuvam) 14 Aug, 2020

1 0

205. To Reinforce or not: SEQ2SQL vs SQLNet

Joel Vilanilam Zachariah (~joel70) 14 Aug, 2020

14 9

208. How I used Python in a CA Office

Amit Seth (~amit08) 14 Aug, 2020

2 0

210. The Twelve Factor Snake

Nabarun Pal (~palnabarun) 15 Aug, 2020

1 5

212. Sound of Data

Aakanksha Agrawal (~aakanksha18) 15 Aug, 2020

2 1

214. Securing Machine Learning Models

Raghotham S (~raghotham) 15 Aug, 2020

2 1

217. Process-oriented Equality in the Tech Workplace

Andrew Martin (~andrew69) 17 Aug, 2020

3 45

219. Pygeneses:- Simulating complex behaviour in artificial agents

Siddhartha Dhar Choudhury (~frankhart2018) 18 Aug, 2020

0 0

220. ML Explainability and Trust

Lakshya Sivaramakrishnan (~lakshya40) 18 Aug, 2020

2 2

222. Amazon Inspector findings API Build by Python API

Anuradha Jena (~anuradha43) 18 Aug, 2020

6 3

223. SOLID with Python

imankulov 18 Aug, 2020

1 0

228. Explainable AI

Sanyam Lakhanpal (~sanyam34) 19 Aug, 2020

2 0

230. Playing with your Python Code: The Python AST

Nikhil Maan (~nikhil586) 19 Aug, 2020

6 1

234. Self-Driving Cars 101

Gagandeep Reehal (~gagandeep23) 19 Aug, 2020

1 0

236. Build your own Brain Computer Interface in Python

Y S Ramya (~meriki) 19 Aug, 2020