About the job
About the role:
As a Senior Software Engineer - Systems , you will focus on building next-generation platform services for Freshworks with your strong background in distributed systems and mentor your team to achieve this. You will have an opportunity to redefine customer experiences by building systems that are milli-second efficient, always available and working at internet scale. If you are the kind of engineer who is passionate about building systems, have a good eye for analysis and a mind that can think outside the box, we want to talk to you.
Responsibilities
● Design and implement engineering solutions in code
● Testing and validation of your code
● Deployment of your system
● Review your peers' code
● You will be responsible for identifying and resolving problems in your services for eg ○ by using better algorithms ○ better frameworks ○ alternative technologies
● You will be working on high scale systems
● Ensure high availability and uptime of your production systems
● Identify areas of improvement for your systems and come up with execution plans for the same
● Collaborating with other teams in the company
Must haves
● 3-6 years of Experience
● Should have a good knowledge of OOPS concepts. Must be comfortable with Design Patterns and SOLID principles
● Strong testing habits, passionate towards unit testing and TDD.
● Expertise in one or more programming languages like Java, Ruby, Python, Go lang
● Good understanding of data structures
● Good understanding of HTTP and REST principles
● Must have experience with Inter-Process Communication — this can be Unix IPC, SOAP Web Services, or microservices.
● Experience dealing with XML/JSON/YAML data
● Experience handling Production workloads
● Devops knowledge
● Good RDBMS knowledge
● Experience in Agile methodologies
● CI/CD experience
● Experience using git for source code management
● Strong analytical and problem solving skillsGood to have
● Strong design skills
● Good understanding of multithreading and concurrency primitives
● Knowledge of Java and web frameworks like Spring Boot
● Knowledge of Docker, Kubernetes, AWS
● Experience handling Production workloads, with experience handling production issues
● Ability to breakdown a problem
● Cloud/SaaS experience
● Good understanding of RDBMS like MySQL, PostgreSQL, MSSQL, OracleDB
● Experience with NoSQL technologies like Mongo, CassandraDB, DynamoDB
● Deep knowledge of Java, a plus