Latest Vacancies, Job Openings, Jobs in Kenya, Safaricom Jobs,
Backend Microservices Developer
JOB DESCRIPTION
Reporting to the Software Engineering Lead – Backend Development, the job holder will run with day-to-day standardized microservice development to ensure smooth and efficient service delivery that meets the expectations of the business.
Application development duties include but not limited to specification, design, development, validation, documentation, and evolution of the new and current service applications; performance management; ensuring integrity of the web services; maintenance and fault management.
RESPONSIBILITIES
- Writing and analyzing code for portions of a project/projects.
- Inspect and test code.
- Helping engineers fix and solve complex problems.
- Work with stakeholders, product owners and technical leads to keep projects on track.
- Provide guidance and mentorship to entry level and mid-level software engineers.
- Influence and guide on DevSecOps best practices within Safaricom Engineering framework and practices.
- Development of microservices. It would be good to have understanding of Java or C#. Java with SpringBoot Framework experience is preferred.
- Influence and guide the team in making critical architectural, design and programming decisions.
- Evangelize software engineering best practices across the team using Safaricom Engineering values.
- Design, test and rollout of running software services.
- Run and enforce code reviews among the team.
QUALIFICATIONS
- BSc. Computer Science/Software Engineering/IT.
- 5+ years’ experience in software development in a busy IT environment.
- Experience in Agile Development/software life-cycle development (SDLC).
- Strong programming and technical skills. Extensive programming experience using Java(SpringBoot Framework), C#
- Strong problem-solving skills leveraging on data structures and algorithms.
- Passion for people and building collaborative teams.
- Extensive experience with databases – relational data model, Stored Procedures, PL/SQL development, Messaging / Streaming, RDBMS, NoSql Databases and InMemory Databases.
- Solid understanding of web services/technologies – REST/JSON, WSDL, XML, XSD;
- Hands on experience with microservices – Ability to design, develop and implement scalable, elastic microservice based platforms based on java. Spring boot framework is preferred.
- Solid understanding of Cloud Services, Serverless architecture and knowledge of AWS, Azure and GCP.
- Experience developing solutions using agile, DevSecOps, and CI/CD automation tools such as jenkins, JMeter, Git, Stash, SonarQube, GitOps etc
- Experience using code versioning & collaboration tools such as Gitlab or Github.
- Experience in application security technologies (e.g. SSL)
CRM Software Engineer
Detailed Description
Reporting to the Technical Lead- CRM Planning Lead, the position holder will work in cross functional team composed of architects, software engineers, customer journey experts to develop Customer Relationship Management capabilities used by customer-facing users across contact center, retail, and enterprise business. The Application development duties include but not limited to analysis, design, development, testing, documentation of the new and existing functionalities; stress and security validations to ensure integrity of the CRM platform; maintenance and fault management.
Key Responsibilities
- Conduct business user requirements elicitation, analysis, and specification.
- Perform the necessary technical design and development functionality to ensure that business application systems can be effectively developed and implemented.
- Perform data modeling to analyze and specify data structures within an application system.
- Design and development of front-end tier(s), middle tier(s), and /or back-end database tier(s) for business applications
- Support new and existing application development by creating modifications and enhancements for CRM applications.
- Review and provide input on design approach, performance, and base functionality.
- Perform effective system capacity planning and dimensioning to meet dynamic business needs.
- Create test plans, test data sets, and perform automated testing to ensure all components of the developed systems meet specifications.
- Co-ordinate and Work with various stakeholders directly in delivery of new projects/ business asks.
- Work directly with the Operations/Service Reliability Engineers to resolve issues identified post project implementation.
- Generation of ideas to improve efficiency in software and application services offered to the business, and/or generate revenue for business.
Qualifications
- University Degree in computer science or technical related field
- 2 years’ experience in business analysis and software development in a busy IT environment.
- Extensive programming experience using either Java, C#, Python, JavaScript etc.
- At least 2 years development experience with RDMS preferably e.g. Oracle MySQL, Postgres.
- At least 2 years data management experience across data structures, relational databases preferable Oracle, Postgres or MySQL, Stored Procedures, PL/SQL development. Experience in NoSQL databases is an added advantage.
- Extensive experience in deploying API on containerized environments such Docker, Kubernetes, Red Hat OpenShift, Azure, AWS.
- Experience with event-based and message-driven distributed system like Apache Kafka, ActiveMQ, Rabbit MQ or Tibco EMS
- Experience in scripting and deploying solutions on Linux based operating systems.
- Experience in Scrum and other Agile processes.
- Working knowledge of DevSecOps tools such as Jira, Git, Jenkins
- Experience in the design and implementation of low-latency, high-availability, and performant systems.
- Great communication and interpersonal skills
- Attention to detail, good analytical and presentation skills.