Senior Software Engineer
epam
Job Description
-
Function as a member of a software engineering team by contributing to software builds through consistent development practices
-
Debug basic software components and identify code defects for remediation
-
Enable the development, support, and monitoring of software across test, integration, and production environments
-
Automate deployments in test or production environments
-
Adhere to security and regulatory requirements
-
Design and contribute to API implementations
-
Follow best practices for automated unit, integration, and regression testing
-
Participate in pull request reviews to ensure quality code delivery
-
Build software as part of a nimble Agile team, where you have every opportunity to impact team goals and contribute to the overall architecture
-
Ensure our infrastructure is safely extensible, scalable, reliable, and meets SLAs for both external and internal users
-
Ensure our software solutions are testable, intuitive, and easy to maintain
Requirements
-
5-8 years of software development, testing, and implementation experience
-
Bachelor's or master’s degree in Computer Science, Engineering, Information Systems, or a related STEM field
-
Core competencies in modern programming languages such as Golang, Kotlin, and/or Java, including REST APIs, JSON, Kafka, RDBMS & NoSQL database technologies (such as MongoDB, Redis, and PostgreSQL), Spring Boot, Git, Jenkins, Linux/Unix, Gradle/Maven, and Agile development methodologies
-
Hands-on experience in implementing highly scalable, low-latency software applications using multi-threaded, asynchronous, and reactive programming
-
Practical experience deploying containerized software applications to cloud computing environments using technologies such as Kubernetes and Docker
-
Basic high-availability techniques and implementation knowledge
-
Experience in profiling/performance analysis of applications
-
Commitment to modern software practices such as Continuous Integration, automated/repeatable testing, and collaborative work environments
-
Familiarity with CI/CD automation tools such as Jenkins and GitHub Actions
-
Ability to think abstractly and deal with ambiguous/under-defined problems, enabling business capabilities through innovation
-
Demonstrated willingness to learn innovative technologies and pride in how quickly you develop working software
-
Excellent written and verbal communication skills
-