Role Responsibilities
Impact and Value
- Re-engineer legacy applications and build state of the art platform.
- Consistently leads delivery of valuable features.
- Continually looking for process improvements.
- Proposes new ways of doing things.
- Suggests novel ways to fulfil requirements.
- Helps elaborate requirements where necessary.
Design
- Can identify and apply appropriate design patterns to problems.
- Comfortable developing large features.
- Understands Idempotence.
- Understands boy scout principle. Leaves code in a better state then when arrived.
- Good understanding of cohesion, SOLID and how to apply.
- Writes clean, maintainable code.
- Understands importance of domain model and can coherently model a problem domain within a given context.
- Anticipates medium term (3-6 month) vectors of change and designs and abstracts accordingly.
- Understands and appreciates simplicity and the value of removing code.
- Understands design patterns such as CQRS and eventual consistency.
- Understands how to design for performance at all levels.
Development Practice
- Automates everything by default.
- Can build a CD pipeline.
- Automates security scanning and performance testing as part of build.
- Monitor systems to ensure they meet both user needs and business goals.
- Oversee assigned programs (e.g. conduct code review), set and monitor team standards.
- Evaluate and select appropriate software or hardware and suggest integration methods.
- Focus on reliability, performance and availability.
Security
- Writes Secure code by default.
- Can use tools (nmap / metasploit, etc.) to perform deep security probes.
- Understands server hardening.
- Understating of security principles using SSL protocols and data encryption.
Behaviours and Collaboration
- Leads group discussions on design of particular areas.
- Comfortable presenting information.
- Gains buy in from team and drives design.
- Mentors and develops those around them.
- Understands domain well enough to work with PO to drive value.
- Shares knowledge with wider community.
Our Ideal Candidate
- Bachelors in Engineering / Masters in Engineering desirable.
- 5+ years of experience in developing world class products / applications.
- Hands-on skills in J2EE specifications like JAX-RS, JAX-WS.
- Spring Boot - Java-based framework to create Micro Service.
- UI Development - using frameworks like REACT.
- Cloud Solutions - working on Azure or AWS.
- Assembly Development - using frameworks like Apache Camel or Node.js.
- Continuous Deployment - using tools like Jenkins.
- Continuous Integration - using tools like Maven and Jenkins.
Programming
- In depth knowledge of IDE, language and toolset in language of choice.
- Excellent understanding of language and framework and a good working knowledge of the abstraction layer underneath.
- Understanding of threads, threading model and concurrent programming.
- Can profile and optimize code.
- Good knowledge of other programming languages and paradigms and when to apply them.
- Comfortable debugging/finding complex problems.
Infrastructure
- Good grasp of multiple operating systems.
- Good grasp of scripting techniques.
- Expertise in one database and good grasp of multiple data storage paradigms and when to apply other technologies.
- Understands and can automate paas technologies.
- Understands when to apply appropriate infrastructure technologies.
- Understanding of network communications, including TCP/IP, HTTP protocols.
Company Reg No.: 201131609D, Licence No.: 11C4684
