Project Overview
We are working on a high-performance data processing system that handles real-time information using complex mathematical and physics-based algorithms. While the system functions as intended, it faces performance challenges, especially when processing multiple data points simultaneously. The goal is to optimize the system to ensure that all processing tasks are completed within 2 seconds, regardless of data load.

Responsibilities
Analyze and optimize an existing Python codebase that involves complex calculations.
Identify and address performance bottlenecks to ensure efficient data processing.
Apply advanced data structures and algorithms to improve processing speed.
Collaborate with an R&D team to integrate and validate performance enhancements.
Conduct thorough testing to ensure the system performs optimally under various data loads.
Provide detailed documentation and support for the optimized solution.

Required Qualifications
Bachelor’s or Master’s degree in Computer Science, Engineering, or a related field.
5+ years of experience in Python development with a focus on performance optimization.
Strong knowledge of Data Structures and Algorithms, particularly in high-speed data processing contexts.
Experience with profiling, debugging, and tuning Python applications for enhanced performance.
Analytical problem-solving skills and the ability to work efficiently in a fast-paced environment.

Preferred Qualifications
Experience with Complex Mathematical and Physics-Based Algorithms: The ideal candidate will have a background in developing and optimizing systems that involve intricate mathematical models and physics-based computations. Understanding the nuances of these algorithms is crucial for fine-tuning the system’s performance.
Familiarity with Low-Level Optimizations: Proficiency in low-level optimization techniques is highly desirable. This includes:
 Cython: Experience with Cython for converting Python code into C to enhance execution speed, particularly in computationally intensive tasks.
 NumPy: Deep knowledge of NumPy for performing high-level mathematical operations efficiently. Familiarity with optimizing NumPy code for better performance in large-scale data processing.
 GPU Acceleration: Experience leveraging GPU acceleration to offload computationally heavy tasks from the CPU to the GPU, thus significantly speeding up processing times. Familiarity with libraries such as CUDA, PyCUDA, or TensorFlow is a plus.
Understanding of Real-Time Systems and Performance-Critical Applications: The candidate should have a proven track record of working on real-time data processing systems where timing is critical. This includes optimizing systems to maintain high performance under strict time constraints, ensuring that all processes complete within a specified timeframe, regardless of data complexity or volume.

Desired Candidate Profile
Experience: 5+ years
Location: Bangalore
Qualification: Computer Science, Engineering or a related field
Job Type: Full Time, Permanent
Schedule: Day Shift, Monday to Friday
Workplace Type: On-site (Work from Office)
Notice Period: Immediate