Salary: $48,000 - $84,000 per year
Location: Remote
Employment option: Full time
Job Summary
We are looking for a Senior Software Engineer with strong algorithmic and data processing expertise to join a global team working on a complex trade surveillance system in the financial sector. The project focuses on batch and real-time analysis of trading data, leveraging advanced algorithmic models to detect fraud, manipulation, and other compliance breaches.
Skills
Must Have
- Hard skills: Beginner in: Python, C#; Competent in: Databases; Proficient in: JAVA
- Soft skills: Competent in: Communication Skills
Nice-to-have
- Hard skills: Competent in: Kotlin, RDBMS, C/C++, Compliance Expertise, FinTech, Software Design, Statistical Modeling, Algorithms, Mathematics, Machine Learning, Debugging, Trading, Distributed Computing, SOLID, Microsoft Clarity, Monitoring, Regulatory Compliance, Data Pipelines, Distributed Systems, Trade Surveillance
- Soft skills: Competent in: Reliability
Additional Requirements
5+ years of professional experience in backend or algorithmic development. At least 3 years working with algorithms in financial/trading systems or related fields. Strong proficiency in Java, Kotlin, C#, or C++. Solid understanding of software design principles and architectural patterns. Experience with real-time systems, distributed computing, and large-scale data pipelines. Proficiency with relational and non-relational databases. Excellent problem-solving and debugging skills. Strong interpersonal and communication skills. Python experience is a plus. Familiarity with statistical modeling and machine learning is an advantage. Bachelor’s degree in Computer Science, Mathematics, or related field (Master’s or PhD is a plus).
Responsibilities
- Design and implement algorithms for real-time and batch monitoring of financial transactions.
- Collaborate with data scientists and compliance experts to optimize detection models.
- Contribute to system architecture design for high availability and low-latency performance.
- Optimize and maintain an existing codebase for clarity, performance, and scalability.
- Work with distributed systems and databases for high-volume data ingestion and processing.
- Analyze performance bottlenecks and improve system reliability.