Responsible for implementing the core java and database modules of new software features into robust, efficient and scalable components. The Software Engineer is responsible for designing, developing and testing software in accordance with the user requirements.
Responsibilities of Role: -
- Collaboratively design, write and test new software in a cross-functional team environment.
- Deliver high quality software.
- Improve existing systems by analyzing and identifying areas for modification and enhancement
- Maintain and support existing software, including incident response activities, correcting software defects and feature enhancements.
- Assist production triage, operations and client operation teams as required on production issues
- Always on lookout for latest technology trends and introducing them in Aconex as appropriate
- Demonstrate a relentless hunger for professional self-improvement and find creative ways to encourage others to do the same
- Driver for the quality of Aconex software by promoting good software development/programming practices throughout the Engineering team
- Champion ongoing agile process and practice improvement
- Work closely and collaboratively with Product teams during different stages of projects inception, analysis, development, support
- Promote and coach software development best practices such as Pair Programming, Clean Code and Test Driven Development.
- Analyse, design develop, troubleshoot and debug software programs for commercial or end user applications. Writes code, completes programming, and performs testing and debugging of applications.
- As a member of the software engineering division, it will develop software according to provided design specifications. Analyse system specifications and existing business processes and information systems. Build enhancements and resolve bugs. Build and execute unit tests and unit test plans.
- Work involves some problem solving with assistance and guidance in understanding and applying company policies and processes. Gaining competence in own area and acquiring a higher-level understanding of role, processes and procedures.
- Deep knowledge of Java/J2EE
- In-depth understanding of Java web application architecture
- Strong experience in using Design Patterns
- Sound knowledge in Spring, Hibernate, Lucene, SQL
- Experience in using TDD/BDD to get your code right first time.
- Experienced in using version control (GIT), database technologies and transactions management.
- Experience in using front-end technologies, such as CSS, jQuery, REST, JSON.
- Experience with Continuous Integration Tools, such as Jenkins, Hudson, etc.
- Ability to communicate your ideas effectively both written and verbal
- A strong advocate of Open-source technologies, such as log4j, XML, apache commons, etc.
- Strong presentation skills. Ability to deliver technical presentations to a range of audiences from technical to non-technical people.