As a Lead 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 millisecond efficient, always available, and working at an internet scale. If you are the kind of engineer who is passionate about building systems, has a good eye for analysis, and has a mind that can think outside the box, we want to talk to you.
As a Lead Systems Engineer, you will design and implement multi-tier (DB, services, and the web) software applications and document, test, fix, and enhance systems when needed. In your agile team, you will closely work with engineers, architects, managers, design, QA, and operations teams and create solutions that meet business requirements. You will spend most of your time developing clean code with limited abstraction. In this role, you will also lead and mentor team members across functions. You will also be implementing and supporting compliance with Freshworks compliance and information security processes.
Responsibilities:
- Platform teams tend to be small but self-sufficient.
- You will have a large scope of responsibilities.
- They also tend not to have any QA or Ops personnel.
- Design, Develop, and Maintain software.
- Be able to plan and execute goals Assist Product Owners with planning and roadmaps Lead a team of 2-4 engineers.
- Platform services exist to be used by other teams in Freshworks Platform Leads will be the face of their service Important goal of a platform service is increasing its adoption.
- Leads will communicate and coordinate with other teams across Freshworks Mentoring other engineers in the team.
- Strong opinions on engineering best practices.
- You will own systems that take high scale and are capable of scaling to greater heights.
- Ensure 99.99% availability of your production systems Ensure 99.999% uptime of your production systems.
Requirements:
- Strong communication skills are a must.
- Overall 6-10 years of Experience.
- Should have a good knowledge of OOPS concepts.
- Must be comfortable with Design Patterns and SOLID principles.
- Strong testing habits, passionate about unit testing and TDD.
- Extensive experience in Agile methodologies.
- Expertise in one or more programming languages like Java, C, C++, C#, Ruby, Python, and Golang.
- Good understanding of data structures.
- Strong understanding of HTTP and REST principles.
- Must have experience with Inter-Process Communication; this can be Unix IPC, SOAP Web Services, or microservices.
- Experience handling Production workloads, with experience handling production issues.
- Strong CI/CD experience.
- Devops knowledge and Infra knowledge of popular internet-serving applications.
- Good understanding of multithreading and concurrency primitives.
- Strong design skills.
- Ability to break a problem Cloud/SaaS experience.
- Good understanding of RDBMSs like MySQL, PostgreSQL, MSSQL, and OracleDB.
- Strong knowledge of git Strong analytical and problem-solving skills.
- Good to have: Prior experience leading a team.
- Experience with NoSQL technologies like Mongo, Cassandra DB, and DynamoDB Supporting Production issues brought up by end customers.
- Keeping up to date with the cutting edge of technologies.
- Familiarity with GitHub is a plus.
- Experience using static code analyzer tools like SonarQube, Rubocop, and Check Style.
- Experience using APM tools like DataDog and New Relic.
- Expertise in Java.
- Coding - Data structures, Algorithms System Design and Architecture, Distributed Systems, AWS, Devops, C/CD, Maintenance, Bug fixes, Performance Engineering + Team mentoring/handling.

