As a Principal Software
Engineer you will lead all stages of software development including refining
product vision, gathering requirements, project planning, software system
design, coding, testing, release, deployment and support.
JOB DUTIES: Responsibilities of the
incumbents are across functional lines with individuals assigned in new program
development and/or maintenance of existing mobile, WEB, Cloud, server, personal
computer, mainframe, and/or distributed computing systems. This individual will
also work collaboratively with other engineering teams to ensure
cross-functional goals are met.
- Competent to perform all programming,
project management, and development assignments without close supervision; normally
assigned the more complex aspects of systems work.
- Lead role in complex projects spanning
across multiple system components
- Work in all phases of product creation
process including creating technical requirements, project planning, identifying
dependencies, system architecture and development.
- Investigation and root cause analysis of
software and system defects.
- Focus on productivity, quality and
competitiveness of major technology initiatives.
- Apply knowledge and skills to solve most
complex engineering problems.
- Organize and drive configuration
management activities of the development process
- Works directly on complex
application/technical problem identification and resolution, including
responding to off-shift and weekend support calls.
- Works independently on complex systems
or infrastructure components that may be used by one or more applications or
- Drives application development focused
around delivering business valuable features
- Mentor and assist software engineers,
providing technical assistance and direction as needed
- Maintains high standards of software
quality by establishing good practices and habits
- Identifies and encourage areas for
growth and improvement
- Communicate with end users and internal
customers to help direct development, debugging, and testing of application
software for accuracy, integrity, interoperability, and completeness
- Performs integrated testing and customer
acceptance testing of components that requires careful planning and execution
to ensure timely, quality results.
requires a four-year degree from an accredited college or university.
- 15 years or
more of software development experience or at least 10 years of experience with
master’s degree in computer science or related field.
- 5 years of
demonstrated experience leading software engineering projects.
- 5 years or
more of experience in designing and developing software applications in Python or
Scala or at least three years of experience in Java or Scala with master’s
degree in computer science or related field.
- 5 years or
more of developing customer facing services and design patterns.
- 5 years or
more of experience coding python / scala
Top candidates will
- Demonstrated leadership on medium to
large-scale projects impacting strategic priorities.
- Ability to cope with shifting priorities,
demands and timelines through analytical and problem-solving skills.
- Ability to effectively prioritize, delegate
responsibilities and execute tasks in a high-pressure environment.
experience in many of the following
developing, deploying and maintaining software at scale.
software applications using relational and Nosql databases.
architectural patterns, such as MVC, Microservices, Event-driven, etc.
software using CI/CD tools such as Jenkins, GoCD, Azure Devops etc.
and maintaining software using public clouds such as AWS or Azure.
within an Agile framework (ideally Scrum)
understanding and/or experience in many of the following,
programing Skills in Python / Scala
to implement frameworks like akka , Scalartra , Spring,Django and spark
or stream processing systems such as Apache Spark, Flink, Akka, Storm
brokers such as Kafka, Rabbitmq, AWS SQS, AWS SNS, Apache ActiveMQ, Kinesis.
designing well-defined Restful APIs
writing API proxies on platforms such as Apigee Edge, AWS API Gateway or Azure
one experience with API tools such as Swagger, Postman and Assertible
driven development and behavior driven development.
on experience with testing tools such as Selenium and Cucumber and their integration
into CI/CD pipelines.
such as MongoDB, Cassandra, Redis, Elasticsearch, MySQL, Oracle.
and maintaining software in Linux or Unix platforms.
of front-end state management libraries (redux)
demonstrate solid knowledge of computer science fundamentals like data
structures and algorithms.
- Ability to
work under pressure and within time constraints
- Passion for
technology and an eagerness to contribute to a team-oriented environment
leadership on small to medium-scale projects impacting strategic priorities
degree in Computer science or Electrical engineering or related field is