
Principal Software Engineer
- Chennai, Tamil Nadu
- Permanent
- Full-time
- Bachelor's degree with 8 years of experience (or Master's degree with 5 years of experience) in software development, with at least 3 years of experience leading teams.
- Experience developing and delivering highly distributed, scalable software systems in multi-region environments with 24/7 availability.
- Proficiency in large-scale enterprise-grade software development using Java, Spring Boot,
- Dropwizard, and Hibernate.
- Web services development experience with SOAP and REST API interfaces.
- Knowledge of software integration with message bus technologies and database integration using JDBC.
- Experience with SQL (Oracle, PostgreSQL etc.) and NoSQL (Mongo, Cassandra, Cockroach etc.) databases.
- Familiarity with cloud platforms (e.g., AWS), network protocols (TCP/IP, DNS, DHCP), tools
- (Wireshark) and Scripting language (e.g., Bash, Python).
- Experience with monitoring and observability tools such as Prometheus, Grafana etc.
- Familiarity with SDLC methodologies (waterfall and agile).
- Demonstrate strong analytical thinking, problem-solving, and attention to detail, making informed decisions that support business objectives.
- Ability to use TDD, or other Test Development methodologies to judge work completion as finished and sound, as part of delivery and Continuous Integration.
- Utilize your technical expertise and passion for coding to lead by example and by contributing to the codebase.
- Conduct thorough code reviews, ensuring high-quality software products that meet industry standards.
- Apply your troubleshooting skills to resolve complex technical issues and provide guidance to team members.
- Develop resilient software systems using defensive programming techniques, ensuring robust and reliable solutions.
- Keen eye for Designing and developing reusable code and components, maximizing efficiency and minimizing duplication.
- Demonstrable customer focus and effective communication skills.
- Adept at articulating ideas in a clear, collaborative manner, both in writing and verbally.
- Proactive, self-motivated individual who excels in a team setting and values constructive feedback.
- Excellent critical thinking and questioning skills to help drive results.
- Excellent inter-personal and teamwork skills
- Prior experience with international clients and flexibility to collaborate with global peers and customers in different time zones.
- Knowledge of Functional and Reactive Programming structure and usage in Java and Javascript.
- Understanding of Device Management Protocols (TR-069, TR-369), microservices frameworks (SpringBoot, Quarkus), DevOps/SRE roles, Kubernetes development (Helm Charts, Operators).
- Experience with Message Brokers and Queueing Services: RabbitMQ, Kafka, AWS SQS/SNS, AWS Kinesis, etc.
- Knowledge of Cloud Based technologies for FaaS Deployment and Architecture, such as AWS Lambda and AWS Kinesis (AWS Services preferred)
- Knowledge of building functional components for use in FaaS architecture from Javascript/NodeJS,
- Java, Python, Go, or Rust
- Basic understanding of project management principles.