Sr Engineer - Backend
Role details
Job location
Tech stack
Job description
The Senior Software Engineer will take a leadership role in designing and building software applications while also mentoring junior developers and collaborating with cross-functional teams. The role involves handling complex development tasks, ensuring best practices are followed, and delivering high-quality software solutions that meet business needs. What You'll Do:
- Software Development: Design, develop, and maintain high-quality, scalable, and maintainable code for complex software systems.
- Technical Leadership: Lead the technical aspects of projects, including architecture decisions, design patterns, and best coding practices. Mentor junior engineers and provide technical guidance.
- Code Review and Quality Assurance: Conduct code reviews to ensure code quality, adherence to standards, and maintainability. Ensure that software meets functional and non-functional requirements (performance, security, etc.).
- Testing and Debugging: Write unit tests, integration tests, and other automated tests. Debug and troubleshoot software issues to ensure system stability and performance.
- Software Architecture: Collaborate with architects and technical leaders to design system architecture for new applications or improve existing architectures.
- Collaboration: Work closely with cross-functional teams, including product managers, UX/UI designers, and QA engineers, to deliver software that aligns with business requirements.
- Project Ownership: Take ownership of the full software development lifecycle (SDLC) from design to deployment, including setting timelines, delivering on project milestones, and maintaining documentation.
- Problem Solving: Analyze and resolve complex technical challenges, including performance bottlenecks, scalability issues, and security concerns.
- Continuous Improvement: Stay up-to-date with the latest trends and technologies in software development and recommend improvements to enhance team performance and software quality., CrowdStrike is committed to providing equal employment opportunity for all employees and applicants for employment. The Company does not discriminate in employment opportunities or practices on the basis of race, color, creed, ethnicity, religion, sex (including pregnancy or pregnancy-related medical conditions), sexual orientation, gender identity, marital or family status, veteran status, age, national origin, ancestry, physical disability (including HIV and AIDS), mental disability, medical condition, genetic information, membership or activity in a local human rights commission, status with regard to public assistance, or any other characteristic protected by law. We base all employment decisions-including recruitment, selection, training, compensation, benefits, discipline, promotions, transfers, lay-offs, return from lay-off, terminations and social/recreational programs-on valid job requirements. If you need assistance accessing or reviewing the information on this website or need help submitting an application for employment or requesting an accommodation, please contact us at recruiting@crowdstrike.com for further assistance.
Requirements
Do you have experience in UX?, Do you have a Master's degree?, * Proven Programming Experience: Experience with GoLang is highly desirable as it is our language of choice. However, if you are not fluent with GoLang, expertise in one or more programming languages such as Java, Python, C++, JavaScript, Ruby, or C# is a must.
- The basics:
- Strong understanding of data structures and algorithms.
- Be comfortable with concurrent programming
- Be comfortable with struct/array reutilisation rather than allocating new memory
- You understand very well how TCP/IP works
- Version Control: Experience with version control tools such as Git, GitHub, or Bitbucket.
- DevOps & CI/CD: Familiarity with DevOps practices, continuous integration/continuous delivery (CI/CD), and automated testing tools (e.g., Jenkins, Docker, Kubernetes).
- Testing: Experience in writing unit, integration, and end-to-end tests to ensure system reliability and quality.
- Agile Methodologies: Experience working in Agile environments (Scrum, Kanban) and contributing to sprint planning and retrospectives.
- Communication Skills: Strong interpersonal and communication skills, with the ability to effectively convey technical concepts to both technical and non-technical stakeholders
Bonus Points:
- 10+ years of professional software development experience.
- Bachelor's or Master's degree in Computer Science, Software Engineering, or related field.
- Knowledge of containerization and orchestration tools like Docker and Kubernetes.
- Experience in writing codes that moves and processes terabytes of data a day
- Experience working with cloud infrastructure and services (AWS, Google Cloud, or Azure).
- Familiarity with cybersecurity best practices, application performance monitoring (APM), and incident managemen