Lead Software Engineer - Systems
- Full-time
- Function: Software Engineering(ENG)
Company Description
About Freshworks
Freshworks makes it fast and easy for businesses to delight their customers and employees. We do this by taking a fresh approach to building and delivering software that is affordable, quick to implement, and designed for the end user. Headquartered in San Mateo, California, Freshworks has a global team operating from 13 global locations to serve more than 65,000 companies -- from startups to public companies – that rely on Freshworks software-as-a-service to enable a better customer experience (CRM, CX) and employee experience (ITSM).
Freshworks’ cloud-based software suite includes Freshdesk (omni-channel customer support), Freshsales (sales automation), Freshmarketer (marketing automation), Freshservice (IT service desk), Freshchat (AI-powered bots), supported by Neo, our underlying platform of shared services.
Freshworks is featured in global national press including CNBC, Forbes, Fortune, Bloomberg and has been a BuiltIn Best Place to work in San Francisco and Denver for the last 3 years. Our customer ratings have earned Freshworks products TrustRadius Top Rated Software ratings and G2 Best of Awards for Best Feature Set, Best Value for the Price and Best Relationship.
Job Description
Role: Lead Software Engineer - Systems (Search Data Layer) | Cloud Engineering
As a Lead Software Engineer - Systems, you will focus on building next-generation Foundation 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, has a good eye for analysis and can think outside the box, we want to talk to you.
Do you wanna take on solving some cool and complex Distributed-Systems problems at scale?
As a Lead Systems Engineer you will design and implement multi-tier software applications (DB, services, and the web), and document, test, fix, enhance and automate 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 to Freshworks compliance and information security processes.
Responsibilities:
You will have a large scope of responsibilities. Cloud Engineering teams tend to be small and self-sufficient.
- They also tend not to have any QA or Ops personnel. Design, Develop, Maintain software Be able to plan and execute goals Assist Product Owners with planning and roadmaps
- Strong communication skills a must
- 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
- At Freshworks we value Agility with Accountability. You will have a high degree of operational freedom in the Cloud Engineering team while ensuring that your systems operate at the highest reliability — availability and uptime.
Must Have:
- 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 towards unit testing and TDD.
- Extensive experience in Agile methodologies
- Expertise in one or more programming languages like Java, C, C++, C#, Ruby, Python, Golang
- Build Distributed systems on Elastic Search - preferrable
- 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, microservices, or REST based HTTP services.
- Experience handling Production workloads, with experience handling production issues Strong CI/CD experience Devops knowledge Infra knowledge of popular internet serving applications Good understanding of multithreading and concurrency primitives
- Strong design skills Ability to breakdown a problem Cloud/SaaS experience Good understanding of RDBMS like MySQL, PostgreSQL, MSSQL, 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, CassandraDB, DynamoDB
- Supporting Production issues brought up by end customers
- Keeping up to date with the cutting edge of technologies
- Familiarity with GitHub a plus
- Experience using static code analyzer tools like SonarQube, Rubocop, checkstyle
- Experience using APM tools like DataDog, NewRelic Expertise in Java
Qualifications
Coding - Datastructures, Algorithms System Design and Architecture, Distributed Systems, AWS, Devops, C/CD, Maintenance, Bug fixes, Performance Engineering + Team mentoring/handling
Additional Information
All your information will be kept confidential according to EEO guidelines.
At Freshworks, we are creating a global workplace that enables everyone to find their true potential, purpose, and passion irrespective of their background, gender, race, sexual orientation, religion and ethnicity. We are committed to providing equal opportunity for all and believe that diversity in the workplace creates a more vibrant, richer work environment that advances the goals of our employees, communities and the business.