Senior Software Engineer – Pakistan

Our Ideal Candidate

We are seeking a seasoned software engineer who will serve Operators and Subscribers in the telecoms industry by building great software that puts the subscriber at the helm of navigating the ever evolving benefit landscape as built by the operator towards optimal fulfilment and happiness.

Minimum Requirements

The following minimum requirements are a prerequisite for applying for this vacancy:

  • A bachelor degree in a computer science or engineering/related discipline or an equivalent combination of education and work experience,
  • Minimum 4 years experience working as a Software Engineer, Developer or Programmer
  • Experience doing object oriented, multi-threaded back end development using C++ or Java
  • Experience with Source/Version control management (Git, SVN, Mercurial, …)
  • Experience writing unit tests for software you develop
  • Considered an expert in at least one major coding language.

Job Specification

The successful candidate will be responsible for the following:

  • Development of Telecommunication Services in a Unix/Linux based environment, from specification through design, coding, debugging to deployment
  • Effectively using tools and ingenuity to identify and fix defects before they become a problem
  • Working in an agile development environment
  • Rapidly addressing issues and fixing defects discovered during testing or in production
  • Taking responsibility for software lifecycle management including version control and 
deployment package creation
  • Demonstrating commitment to process, production and maintenance of accurate 
design and code documentation
  • Developing and running unit tests to test existing and new functionality before it is committed to the source repository.
  • Sharing development challenges with Product Owner, Product Architect, Flowmaster and Quality Analyst.
  • Demonstrating working software to Product Owner regularly and frequently, and integrating feedback surfaced by Product Owner.
  • Soliciting feedback and input from Product Owner early and often during the development of each user story.
  • Confirming that all artefacts are included in the build.
  • Checking that the build was successful and that all unit tests passed.
  • Confirming that the latest product build was deployed at the continuous deployment target computer.
  • Compiling and updating the software version description.
  • Practising superior methods to develop quality software
  • Driving adoption of engineering practices that will help the engineering teams to be successful.
  • Providing and maintaining tools to build and release software (e.g. Borealis)
  • Developing Specifications and System Descriptions, taking system wide design decisions for integrated solutions where more than one product or bespoke solution is involved.
  • Crafting and maintaining production release policy
  • Evaluating, selecting and communicating optimal hardware and software operating platforms for Concurrent products and solutions
  • Securing our software products and solutions by publishing standards, recommendations and practices and monitoring company adherence
  • Rendering third line support and rendering guidance material for third party software in a production environment

Skills and Capabilities

The successful candidate will possess the following skills and capabilities:

  • Analytical, technical and problem-solving skills
  • CSS, HTML experience an advantage
  • Working knowledge of a Linux development environment, preferably RHEL will be advantageous
  • Experience in designing and developing software applications from scratch
  • Ability to document, diagram and verbally describe the application architecture and design
  • Unit testing of the developed software components
  • Motivated, self-starter, who can work as part of a productive, fast-paced team

 

Technology Stack:

You will be primarily working with the following technologies and will be expected to learn any technology that you may not already be familiar with:

  • Back End: Java, Kotlin, Javascript, Typescript, OpenJDK, Node.js, Docker, Spring Framework
  • Front End: Javascript, jQuery, HTML, CSS, Bootstrap
  • Scripting Languages: Python, Bash
  • Databases: MariaDB, MongoDB
  • Build Tools: Gradle, NPM, GNU Make, Cmake
  • Version Control: Git, Github, Gitlab
  • Protocols: REST, JSON-RPC, XML-RPC, SOAP, SS7 / Sigtran
  • Operating System: Linux
  • Other Tools: GIthub workflows and actions, Gitlab-CI, AsciiDoc, Ansible, Kubernetes

You may also be expected to work on some of legacy software that utilises the following additional technologies:

  • Languages: C++
  • Databases: MySQL
  • Build Tools: Maven / GNU Make
  • Version Control: SVN
  • Operating System: Linux

 

Preferable but not essential

  • Experience designing and/or implementing high-performance, highly-available and horizontally scalable software.
  • Experience doing front end development with HTML, CSS, jQuery and Javascript.
  • Experience with software profiling and optimization.
  • Experience with database schema design, optimization and tuning.
  • Experience with online transaction processing and/or online analytical processing
  • Experience with API and Interface design
  • Experience with any of the following software and technologies: Typescript, SQL, Linux, Swagger / OpenAPI, HTTP, REST, Docker, Kubernetes, Spring Framework, Gradle, Maven, Ansible, MySQL / MariaDB and Node.js.

If you are a match to the requirements, send your CV and cover letter to careers@concurrent.systems