Overview & Responsibilities
PRIMARY RESPONSIBILITY: Designs and develops software for large-scale enterprise services. Responsibilities include: translating functional requirements into conceptual and detailed designs; providing estimates for development effort; implementing proof of concept, prototypes and production-grade software; creating unit and acceptance tests; coordinating sign-off from QA/Test; automating deployment; and assisting Operations and Support staff in trouble-shooting software issues, as well as, implementing bug fixes. Depending on the assignment and level of responsibility, expertise, or working knowledge in multiple programming languages, technologies, and software platforms. Adheres to established coding and process best practices. Makes regular contribution to engineering standards and best practices. Develops own technical leadership skill by providing mentorship to others. Initiates ideas and acts upon ideas that result in indirect benefits. Ability to develop, adopt, and share quality improvement strategy. Initiates opportunity for collaborating outside of his/her team. Maintains a collaborative working relationship with others by seeking, using and giving feedback.
JOB COMPLEXITY: Designs robust, scalable, secure, and globalized feature. Demonstrates sound rationale in making design trade-offs for various feature areas. Identifies risks and mitigation for various feature areas. Effectively manages dependencies for various feature areas. Drives continuous adoption and integration of relevant new technologies into design. Efficiently implements feature area with minimal technical debt. Feature areas are easy to deploy and maintainable. Proactively drives refactoring and code-reuse. Feature areas are bug free. Includes unit tests for feature areas to achieve established code coverage targets. Feature areas are test-driven designed, enabling efficient regression testing. Makes regular contribution to test automation. Evolves feature area(s) with new ideas to realize greater benefits or to solve newly anticipated problems. Focuses on multiple feature areas or components. Consistently, contributes to key functionalities for our product and service offering.
Advanced knowledge in multiple technologies relevant to current activities in the business unit. Advanced working knowledge of most technologies relevant to our core business. Demonstrates a systematic structured problem solving approach. Ability to generalize a specific problem and derive solution for a class of problem. Ability to derive causal relationship from ambiguous data.
Bachelor’s degree in a technology related field required
5 years of experience in software development, engineering, testing, or a related field.
Solid Python experience
Good working knowledge of messaging technologies (e.g. RabbitMq, Kafka, Cassandra)
Experience with designing and implementing REST APIs .
Experience with containers
Solid software engineering fundamentals gained through training, course work or relevant experience.