Job Description: -
We are looking for a smart, talented, energetic and entrepreneurial software engineer for the role of a Software Engineer. The engineer will be responsible for the development, deployment, maintenance and enhancement of internal corporate software and systems (including development of a software for financial reporting and analysis, internal websites & web-portals, internal web-based and mobile applications) for the company and associated companies within the larger group. The engineer will also be assisting the team in other projects of commercial nature targeting a wider market.
In this challenging role, the individual will be involved in planning and execution, rapid prototyping and full lifecycle implementation (start to end), of various financial and non-financial / corporate software (both frontend and backend aspects of the software). The individual will need to interact and interface with various internal stakeholders, to gather requirements and to collect feedback. The individual will be involved in the decision making on, and the implementation of, various design and UI/UX aspects, e.g. UI/UX of web-applications or mobile-applications, related to the software(s). The individual may work on consumer-facing and consumer-focused products as well, from time to time. The individual will be responsible for quality and timely delivery of the software(s) that the individual is assigned to deliver.
Job Requirements: -Technical Skills and Experience: -
- Strong programming skills in at least one programming language.
- Programming experience (4+ years) - with one or more of Java, C/C++, C#, PHP, JSP, Python, Perl, Scala, etc.
- Technology experience (4+ years) - Full-stack development - both frontend and backend systems / components.
- Can evaluate various technologies and platforms, and provide pros and cons of the same.
- Can quickly learn a new programming language or technology, if/as/when required. Open to learning new technologies & software, and can do so easily & effectively.
- Experience with Object Oriented Programming and familiarity with functional programming concepts.
- Has worked with Open Source Technologies extensively.
- Has developed or can develop internal corporate / enterprise-level software that will be used within the company design patterns. Innovative thinking.
- Solving problems by writing code. Data Structures, Algorithms & Coding. Design & Architecture of systems. End-to-end (full-stack) development experience (frontend and backend).o Experience with full lifecycle of a software product’s development, from start till end.
- Experience with server-side technologies e.g. Java/J2EE, Node.js, etc.
- Experience with RDBMS technologies (like MySQL, MS-SQL-Server, Oracle, etc.) and NoSQL technologies (like MongoDB, Couchbase, Redis, Memcached, etc.).
- Writes clean and testable code.Writes Unit Tests, and follows Test Driven Development (TDD) wherever possible.
- Has performed Code-Reviews.
- Has done Debugging, Performance Testing, Performance Optimization, Memory Management, Automation, Deployment, Monitoring, etc.
- Ability to think through and optimize functional & non-functional aspects of a software application.
- Has worked with multiple operating systems: Linux, Windows, MacOS, etc.
2+ years of experience working with Linux. Knows about shell scripting.
- Experience with development of Distributed Systems (web based systems, web applications, web portals, Web Services, APIs), deployment, and scaling.
- Practices Agile Methodology of Software development. Knows about Software development best
General Skills & Experience: -
- Computer Science & Engineering degree from an internationally recognized top tier engineering / technology institute or university.
- Keen Analytical Mind. Clear Logical Thinking. Strong Problem Solving & Mathematical Skills.
- Ability to grasp concepts & ideas quickly, & learn new skills fast. Quick learner.
- Ability to handle multiple projects. Multi-tasking skills. High speed of execution.
- Agile. Adaptive. Flexible. Quickly understands & adapts to new situations, as the situation changes, and changes quickly as per the demands of the situation.
- Efficient & effective in planning and completing various engineering tasks. Efficient & Effective in time management. Confident about handling complex/challenging situations independently.
- Good verbal and written communication skills. Can confidently communicate complex technical ideas and concepts to seniors and stakeholders, clearly, using easy to understand language.
- Ability to take a full project to successful completion, from start till the end. Ability to work on complex projects from scratch (i.e. from inception). Ability to plan for future, and create a roadmap for a project.
- Can work in a collaborative manner in a complex, ever-changing, dynamic environment (where requirements may be vague and changing), while interfacing with cross-functional teams & people. Is a strong individual contributor and a good team-player.
- Knowledge of Reporting and Analytics software (e.g. financial reporting software, etc.).
- Knowledge of Corporate Systems - Document Management Systems, HR Management Systems, Finance/Accounting Systems (Software), etc.
- Good sense and understanding of design (web design & mobile app design) & UX aspects.
- Entrepreneurial spirit. Mentorship experience. Has led projects before.
- Has worked in a fast paced organization (e.g. a start-up) before.
- Has worked with Internet-scale technologies and systems that ensure high availability of a system/platform.