Overview
Location: Full remote.
Schedule: Full time.
Job Purpose
We are looking for talented software engineers to join our growth partner’s team. As a Software Engineer, you will play a key role in building new digital capabilities that empower our customers to make informed decisions when trading on our partner’s platform. You will develop, write, and modify code while working closely with software and production engineers to optimize operational efficiency and drive growth. You will contribute to the development of scalable, high-performance systems, design new features, and ensure the reliability of our partner’s products in a fast-paced environment.
Responsibilities
- Actively support efforts to simplify and enhance the customer experience on the platform.
- Design, develop, and maintain code for web-based applications.
- Collaborate with software and production engineers to design scalable services, plan feature rollouts, and ensure high reliability and performance of products.
- Conduct code reviews, develop high-quality documentation, and build robust test suites for the products.
- Design and build complex systems that can scale rapidly with minimal maintenance.
- Design and implement effective service/product interfaces.
- Develop complex data models using patterns like EAV, normal forms, append-only, event sourcing, or graphs.
- Lead and successfully complete software projects with minimal guidance from a manager/lead.
- Provide technical support across multiple applications within the technology portfolio.
- Respond to and troubleshoot complex problems quickly, efficiently, and effectively.
- Handle multiple competing priorities in an agile, fast-paced environment.
Experience & Qualifications
- 3+ years of experience programming in Python or Java (preferred experience with a second language such as C#, JavaScript).
- 3+ years of experience with continuous integration and build tools.
- Deep knowledge of day-to-day tools and processes, including deployments, Kubernetes, monitoring systems, and testing tools.
- Highly proficient in version control systems (e.g., Git), including trunk-based development, multiple release planning, cherry-picking, and rebasing.
- Proficient in databases (RDB), SQL, and contributing to table definitions.
- Self-sufficient debugger with the ability to identify and solve complex problems in code.
- Strong understanding of major data structures (arrays, dictionaries, strings).
- Experience with Domain Driven Design (DDD).
- Hands-on experience with containers and Kubernetes.
- Experience with Kafka or other event streaming technologies.
- Hands-on experience with microservices architecture and RESTful services.
- Experience in a fast-paced, agile development environment.
- Ability to work effectively in a collaborative, team-oriented environment.
- Strong problem-solving skills and the ability to troubleshoot and resolve complex technical issues
- Fluent in English. Conversational proficiency.