The role
Job description
Full job descriptionLocation: Remote, India
Software Engineer
Position Summary
The successful candidate will build robust, high-performance software systems for defence and security applications, with a particular expected focus on designing, developing, testing, deploying and supporting software solutions.
The successful candidate will work with business analysts, architects, engineering teams, and operational stakeholders to understand data sources, processing requirements, and target systems, and develop reliable software solutions to extract, analyze, validate, transform, classify, enrich, and distribute data.
The role requires a strong or entry level software engineering background. Solutions may interact with files, databases, APIs, message queues, engineering applications, and other enterprise systems.
Key Areas of Responsibility
- Design, develop, integrate, test, and deploy production-quality software including automated data-processing pipelines for data extraction, processing, transformation, validation, and distribution;
- Analyze structured, semi-structured, and unstructured datasets, and define appropriate processing and mapping rules;
- Integrate systems using REST APIs, databases, files, message queues, and other integration mechanisms;
- Apply appropriate enterprise integration patterns, including synchronous/asynchronous communication, messaging, publish/subscribe, routing, filtering, transformation, and event-driven processing;
- Develop data mappings, validation rules, quality controls, and reconciliation mechanisms;
- Ensure data integrity, consistency, completeness, and traceability;
- Apply secure software development practices, including encryption, authentication/authorization, and secure handling of sensitive information;
- Participate in architecture/design reviews and Agile development activities;
- Support deployment, troubleshooting, and continuous improvement of production solutions;
- Produce technical documentation including interface specifications, data mappings, and software design/code documentation;
- Identify and analyze software defects and implement fixes into product releases; and
- Build and maintain currency in software development best practices and methodologies.
Minimum Requirements
- Bachelor’s degree in computer science, software engineering, computer engineering, or equivalent education with relevant experience;
- 2 years’ programming experience in Python;
- Strong oral and written communication skills;
- Programming experience using communications / interfacing protocols such as:
i. REST APIs[;
ii. Asynchronous messaging utilizing publish/subscribe protocols or message queues
iii. Structured formats such as JSON/XML;
- Programming experience utilizing/interfacing with SQL and NoSQL databases;
- Experience with containerization such as with Docker, Kubernetes, or OpenShift;
Nice to have:
- Programming experience in C#;
- Strong understanding of data integrity, consistency, validation, and related error-handling;
- Practical knowledge of integration patterns and distributed-system reliability concepts;
- Experience with Azure Cloud Services;
- Experience with AVEVA PI System and/or AVEVA AIM;
- Experience with data engineering workflow toolsets such as AirFlow;
- Experience working with security concepts such as encryption at rest, encryption in transit, MFA, etc;
- Experience working in scrum/agile and CI/CD software development environments;
- coding, unit testing, and debugging skills;
Pay: ₹375,000.00 - ₹1,610,000.00 per year
Benefits:
- Paid time off
- Provident Fund
- Work from home
Work Location: Remote