As a software engineer, your roles and responsibilities will include the following:
- Work with various broad technologies: Java EE, Restful architectures, Relational databases.
- Develop and maintain service-oriented architectures.
- Work with other developers, business analysts, and product managers across the product teams to understand business and technical processes, gather requirements, and collaborate on the delivery of solutions.
- Analyze and improve FlexiSAF products and services to deliver an unsurpassed level of availability, scalability, and reliability whilst maintaining simplicity of design.
- Lead the software development team in analysis, design, implementation and/or upgrade of software applications.
- Identify the best practices for CI/CD and DevOps and lead the development team in integrating them with all projects.
- Determine and communicate the implications of system-level decisions on subsystems and components, and help determine how best to mitigate or take advantage of these implications.
- Determine and communicate the requirements and capabilities of components within the context of the larger systems, project, and team. Support management of the team’s technical infrastructure (e.g., repository, build system, testing system) under guidance from the team leads.
- Participate in efforts to share expertise within the company; mentor junior and aspiring engineers.
- Perform tasks efficiently and work together with the team to ensure project success
- 5-10 years experience in software development
- Understanding of high-availability, fault-tolerant, scalable, distributed systems and methodologies like agile, unit testing, pair programming, and continuous integration.
- Deep understanding of how to build performant, decoupled, testable, maintainable code.
- Extraordinary creative and innovative problem-solving skills, with a willingness to take responsibility for the software you write all the way to production.
- Working knowledge with datastores (e.g., Postgres, MySQL, search, analytics).
- Good understanding of typical web application, SOA and microservices patterns.
- Hands-on experience with public cloud offerings (e.g., AWS, GCP, etc.)
- Knowledge of open-source libraries, tools and frameworks (e.g. for logging, wiring, testing, building)
- Experience facing the challenges of building software as a service, including deploying and maintaining software at scale
- Ability and willingness to learn new programming languages, frameworks and paradigms