Software Engineer
Prefer a full account with a password? Sign Up to Apply
Job Description
We are seeking a Software Engineer with strong C++ and Python expertise to develop and support business-critical consumer data-processing systems. The role involves high-performance batch processing, data aggregation, calibration-support workflows, and reliable delivery of processed data to downstream platforms.
You will own features from technical design through production rollout, working across C++, Python, Oracle, and Linux-based orchestration.
Roles and Responsibilities
Design & Development
• Design, develop, and maintain high-performance C++ applications and reusable Python components for enterprise data-processing pipelines.
• Implement workflows for data extraction, transformation, aggregation, validation, and delivery.
• Apply modern C++ practices, including RAII, smart pointers, STL containers, and clear resource ownership, to build maintainable and reliable software.
• Develop and maintain Oracle-integrated processing components using SQL and existing Pro*C interfaces.
• Build and enhance Bash/KornShell scripts for application execution, workflow orchestration, and operational automation.
• Own technical designs, implementation, testing, documentation, and production rollout; contribute to architecture and design reviews.
Performance & Data Processing
• Optimize algorithms, data structures, memory usage, database access, and file I/O for large-volume processing.
• Develop and troubleshoot parallel processing workflows, addressing synchronization, resource contention, and safe concurrency.
• Work with partitioned datasets and structured data formats, including CSV and Parquet, across Oracle and cloud-connected processing environments.
• Maintain dependable interfaces between processing executables, Python modules, database packages, schedulers, and downstream systems.
• Improve pipeline scalability and recoverability through dependency management, controlled retries, locking, and safe rerun mechanisms.
Quality & Reliability
• Develop automated unit, integration, and regression tests for processing logic, database interactions, and failure scenarios.
• Diagnose crashes, memory issues, processing bottlenecks, and data discrepancies using logs, core dumps, debuggers, and profiling tools.
• Instrument applications with actionable logging, processing metrics, and resource-utilization monitoring.
• Participate in production support, incident investigation, root-cause analysis, and preventive improvements.
• Contribute to GNU Make-based builds, Docker packaging, GitHub Actions CI/CD, and code-quality checks.
• Follow secure coding practices, protect credentials, and manage third-party dependencies responsibly.
Collaboration & Leadership
• Conduct code and design reviews; mentor engineers in C++, Python, debugging, and performance engineering.
• Collaborate with Operations, Statistical Operations, Data Science, QA, database, and platform teams to translate business requirements into reliable solutions.
• Document processing logic, interfaces, dependencies, and operational recovery procedures.
• Evaluate development tools, including AI-assisted coding tools, while retaining responsibility for correctness, security, and maintainability.
Requirements
Function: General Business
Experience Level: Mid-Senior Level