Our ideal candidate is a seasoned professional with 5+ years of software development experience and a bachelor's degree in computer science or an equivalent combination of technical education and work experience.
The successful applicant will have strong expertise in designing and developing RESTful APIs, as well as proficiency in back-end programming languages such as Go, Java, Python, and C++.
They will also have experience with both SQL and NoSQL database technologies, including data model design and optimization principles, as well as the ability to build reliable and scalable user-facing applications.
Additionally, our desired candidate will possess excellent collaboration skills, with the capacity to work effectively with cross-functional teams and present ideas and communicate technical concepts clearly.
Requirements:
* 5+ years of software development experience
* Bachelor's degree in computer science or equivalent combination of technical education and work experience
* Proficient knowledge of back-end programming languages such as Go, Java, Python, and C++
* Strong expertise in designing and developing RESTful APIs
* Experience with both SQL and NoSQL database technologies and strong understanding of database concepts and internals, including data model design and optimization principles
* Experience at building reliable and scalable user-facing applications
* Excellent collaboration skills, with the capacity to work effectively with cross-functional teams, present ideas, and communicate technical concepts clearly
Responsibilities:
1. Translate product requirements into robust technical solutions, recommend alternative approaches and lead engineering efforts to meet ambitious targets
2. Design and implement reliable systems and applications in the context of a fully distributed micro-services architecture
3. Build and maintain integrations with third-party vendors and partners
4. Design and implement highly available RESTful APIs supporting user-facing web and mobile applications
5. Focus on creating reusable code and libraries that can be shared across teams, fostering collaboration and ensuring scalability for future projects
6. Enforce observability best practices, leveraging tools like logging, metrics, and alerting systems
7. Create and maintain detailed technical documentation for all solutions, including architecture designs, APIs, workflows, and system configurations
8. Continuously monitor Rain systems and applications for opportunities to maximize performance and scalability
9. Effective cross-team communication and collaboration to align priorities, clarify requirements, identify dependencies, and ensure seamless coordination throughout the software development lifecycle