Role involves helping Mechanical Engineers identify situations that are conducive for automation, writing scripts to build data pipelines which oftentimes integrate third-party protocols provided by other vendors, building usable interfaces which are intuitive, well documented and scalable, and supporting a large-scale in-house web application which aims to change the way data moves in this industry.
The developer will work with engineers in developing the architecture and finer facets of the applications therein.
Following standard software development processes like Requirements Gathering/Design (UML)/ Test driven development (TDD)/Maintenance
Automate existing manual descriptions/work instructions (Ways of Workings: WoWs)
Designing interfaces which will be used at a global level, throughout the company.
Developing RESTful APIs for a large-scale application which is designed with horizontal scalability and multi-regional deployment at heart.
Maintaining existing processes and codes, servers and other SW tools.
Translate mechanical engineering requirements into software requirements.
Job Responsibilities
Coding Languages
Should be able to code in Python. (Expert)
Should be fluent in a framework such as Flask or Django.
Should know how to use a database Object-Relational Model such as SQLAlchemy or Django s ORM.
Should be an expert in understanding Python application structure and how to create a Python program that is readable, testable and maintainable.
Should be fluent in creating Python packages, wheels and running an own PyPI server.
Should be able to create command-line interfaces for these tools using Click or argparse.
Should be able to code in JavaScript (Intermediate) (DOM or ES6)
Should be able to code in Node.js (Intermediate) Write front end using React.js, bootstrap or a similar UI framework.
Version Control Has exposure using and managing Subversion (SVN), git or some other similar version control system.
Should have exposure to a CI/CD tool such as Gitlab CI or Jenkins. Preferably has a public GitHub, or GitLab profile to showcase his past projects and work.
OS
Should be well aware of the fundamentals of Linux, should be comfortable setting up applications as Linux services using systemd, and should know how to create and manage users on Linux servers.
Should be comfortable working on virtual machines, using VMWare vSphere hypervisors, and should be able to create and administer VMs.
Should be comfortable in an MS Windows environment.
Should understand containerization, networking, and other advanced concepts. Web Development Networking
Should understand how web servers and client s work. Advanced understanding of the HTTPS protocol and the design of REST APIs.
Should know how to use SSL certificates.
Should be able to troubleshoot problems with system proxies, network mappings, IP settings and related issues. Databases
Has an advanced understanding of using and administrating SQL Databases such as MySQL or PostgreSQL.
Should be well versed in SQL, able to write verbose queries in SQL to extract just the business logic required. Testing
Should be able to write test-driven code (TDD), that has clear and concise documentation.
Should be able to write tests using Selenium and pytest. Technology
Should have some exposure to indexers such as Elasticsearch.
Should be able to build and deploy docker containers.
Should be able to administer and configure NGINX or Apache http2 or Traefik servers.
Job Qualifications
2-5 years working in software development .
Can showcase Open-Source contributions as well.
A Bachelor s in Engineering.
Other Skills
Can work independently AND be able to communicate with the team and customers.
Should have a mind-set that believes All is possible .
Should be able to discover solutions to problems on their own, discovering the right tools and the best practises for the same.
Should be very interested in self learning and exploring new areas.
Very good English.
Should be able to write lucid documentation in a short amount of time.
Job Classification
Industry: AviationFunctional Area: IT Software - Application Programming, Maintenance, Role Category: Programming & DesignRole: Programming & DesignEmployement Type: Full time
Education
Under Graduation: Any GraduatePost Graduation: Post Graduation Not RequiredDoctorate: Doctorate Not Required