T
tech plus
All Jobs

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.