Software Engineer
Summary
Designs, builds, and maintains complex enterprise software applications — developing new features/modules, integrating systems, running integration and performance tests, and providing production support. Core stack: Java/JEE with Spring Boot microservices and event-driven distributed systems on the backend, plus web UIs in JavaScript/TypeScript (AngularJS, ReactJS, Oracle JET), deployed cloud-nat
Responsibilities:
- Analyse user needs & system analysis, research, design, and develop software solutions or programs based on project objectives i.e. new feature & module development, change requests and enhancements.
- Consult with Application Architects and project team members for technical ideas and solutions.
- Develop, maintain, and enhance software application systems with complex functional requirements, high performance and high availability requirements.
- Perform and support software & system integration test and performance test
- Perform application troubleshooting and production support.
- Maintain and update software documentation
Requirements:
- Master or Bachelor's Degree in Computer Science, IT or Engineering
- 5 to 10 years of hands-on experience with building micro-services and event driven architecture and distributed systems using appropriate design patterns.
- Extensive experience in analysing requirements, designing, development and delivering complex enterprise applications in Java/JEE, Spring Framework and Spring Boot, web programming on UNIX / LINUX and Windows environment.
- Extensive experience in web-based applications development and database application interfacing (JDBC, SQL). Experience in database design, development and performance tuning.
- Hands-on experience with RESTful API integration and asynchronous programming (Promises, async/await).
- Strong understanding of Graphical User Interface (GUI) design principles and best practices, as well as experience implementing user friendly and intuitive GUIs that are optimized for managing large amountsof data.
- Expert programmer using web UI technologies like Oracle JET, JavaScript, TypeScript, CSS, HTML5, AngularJS, ReactJS, AJAX that meet functional specifications. Experience in ExtJS Javascript Framework is advantageous.
- Deep working knowledge of all aspects of Cloud native distributed system development. OCI, AWS preferred.
- Strong understanding of access control principles and best practices, as well as experience implementing access control mechanisms in software applications. Familiarity with authentication protocols such as SSO, Active Directory (ADFS).
- Familiar with log centric tooling. Produce time series data and reusable dashboards for both during and post event.
- Experience with configuration management tools such as Ansible, Chef and Puppet
- Experience with Build solutions for CI/CD automation and testing using tools like Jenkins, TeamCity, Docker, and Kubernetes.
- Experience with frontend security best practices (e.g., XSS, CSRF prevention, secure data handling).
- Experience in performance optimization techniques (e.g., lazy loading, efficient rendering, virtualization).
- Experience in Agile development methodology and continuous integration.
Skills
- Active Directory
- Agile
- AJAX
- Angular
- Ansible
- API
- Authentication
- Automation
- AWS
- CI/CD
- Cloud
- Cloud Native
- CSS
- Design Patterns
- Distributed Systems
- Docker
- Event Driven Architecture
- HTML
- Java
- JavaScript
- Jdbc
- Jenkins
- Kubernetes
- Linux
- Oracle
- Puppet
- React
- REST
- Spring
- SQL
- SSO
- Teamcity
- Time Series
- TypeScript
- Unix
- Virtualization