This role is generally responsible for the development, design and implementation of new or modified software products or ongoing business projects. The incumbent will collaborate with Architects and Managers to identify software requirements. The incumbent needs to address the entire software development lifecycle - to analyze the needs, and then design, test and develop software in order to meet those needs.
Key Responsibilities
- Researching, designing and implementing software programs.
- Testing and evaluating new programs.
- Identifying areas for modification in existing programs and subsequently developing these modifications.
- Writing and implementing efficient code that is production grade
- Developing quality assurance procedures.
- Maintaining and upgrading production systems.
- Working closely with other developers, UX designers, business and systems analysts.
Requirements
- Bachelor's degree in Computer science or equivalent.
- 5 years of relevant experiences
- Must be proficient in basic programming skills and proficient in one or more of the following languages [Java, Python, Go, C++]
- Strong analytical and reasoning skills with an ability to visualize processes and outcomes.
- A passion for solving problem and providing optimal solutions
- Designing algorithms and flowcharts to create new software programs and systems.
- Knowledge of algorithms and data structures.
- Experience with SQL/NoSQL databases.
- Solid understanding of objected-oriented design and software engineering principles.
- Hands on experience with messaging systems like Kafka.
- Hands on experience with service mesh like Istio.
- Hands on experience with cloud storage like S3, minio, ceph
- Hands on experience with cloud native technologies.
- Knowledge of distributed computing.
- Working knowledge of one or more of Kubernetes, OpenStack, AWS, GCP, Azure
- Experience working in a startup environment.