sde
About the Role
We're seeking a highly skilled Software Development Engineer (SDE) to join our team, responsible for designing, developing, and maintaining large-scale software systems. As an SDE, you will play a crucial role in driving technical innovation and delivering high-quality solutions that meet our customers' needs. You will collaborate with cross-functional teams to identify and prioritize project requirements, and develop scalable, efficient, and reliable software systems.
Responsibilities
- Design, develop, and test software applications, ensuring they meet functional and non-functional requirements, such as performance, security, and usability.
- Collaborate with product managers to understand customer needs and define project requirements, creating technical specifications and prototypes as needed.
- Participate in code reviews, ensuring adherence to coding standards, best practices, and design principles, and providing constructive feedback to peers.
- Troubleshoot and resolve complex technical issues, using debugging tools and techniques to identify root causes and implement fixes.
- Develop and maintain technical documentation, including architecture diagrams, design documents, and API documentation.
- Work with DevOps teams to ensure smooth deployment and operation of software systems, including monitoring, logging, and alerting.
- Stay up-to-date with industry trends, emerging technologies, and new tools, applying this knowledge to improve software development processes and practices.
- Mentor junior engineers, providing guidance and support to help them grow in their roles and develop new skills.
- Participate in agile development methodologies, such as Scrum or Kanban, to facilitate iterative and incremental software development.
Requirements
- Bachelor's or Master's degree in Computer Science, Software Engineering, or a related field, with a strong foundation in computer science fundamentals, including data structures, algorithms, and software design patterns.
- Proficiency in one or more programming languages, such as Java, Python, C++, or JavaScript, with experience in developing large-scale software systems.
- Experience with cloud-based platforms, such as AWS or Azure, and containerization technologies, such as Docker or Kubernetes.
- Strong understanding of software development principles, including SOLID, DRY, and YAGNI, and experience with design patterns, such as MVC or Microservices.
- Familiarity with agile development methodologies, version control systems, such as Git, and continuous integration/continuous deployment (CI/CD) pipelines.
- Excellent problem-solving skills, with the ability to analyze complex technical issues, identify root causes, and implement effective solutions.
- Strong communication and collaboration skills, with experience working with cross-functional teams, including product management, design, and QA.
Nice to Have
- Experience with machine learning or artificial intelligence, and knowledge of ML/AI frameworks, such as TensorFlow or PyTorch.
- Familiarity with cybersecurity principles and practices, including secure coding, authentication, and authorization.
- Knowledge of DevOps tools, such as Jenkins or CircleCI, and experience with infrastructure as code (IaC) tools, such as Terraform or CloudFormation.
- Participation in open-source software development, with contributions to popular open-source projects or personal open-source repositories.
- Certification in software development, such as AWS Certified Developer or Certified Scrum Master, demonstrating expertise and commitment to the field.
Autofill from resume
Upload your resume here to autofill key application fields.
Autofilling from resume…
Application submitted!
Thank you for applying. We'll review your application and get back to you soon.