Salary
💰 $110,500 - $184,100 per year
Tech Stack
AWSAzureCloudDistributed SystemsDockerETLGoogle Cloud PlatformJavaJavaScriptKafkaKubernetesNext.jsOpenShiftPostgresPythonReactSpringSpring BootSpringBoot
About the role
- Senior Software Engineer at Grainger responsible for building, enhancing, and maintaining full-stack applications with emphasis on backend development and ML model integration.
- Develop, test, and deploy high-quality backend applications using Python (preferred) and/or JVM language(s).
- Write clean, maintainable code following best practices; troubleshoot and optimize systems.
- Integrate with RESTful APIs and third-party services; improve CI/CD pipelines; deploy ML models.
- Lead data management tasks including data warehouses/lakes; perform ETL; ensure data quality.
- Mentor interns and collaborate with data/ML, design, product, and executive teams.
Requirements
- Bachelor’s degree in Software Engineering, related degree, or relevant work experience.
- 5 years of experience with modern software engineering projects and practices, including designing, building, and deploying scalable software applications.
- 3+ years of experience in designing, building, and deploying cloud-native solutions.
- Proficiency in containerization platforms (Docker, Kubernetes, or OpenShift), build automation, continuous integration/deployment, and automated monitoring.
- Solid experience with Python (preferred), Java, Spring Boot, or similar frameworks for back-end development of APIs.
- Proficient in RESTful API-driven design and web frameworks.
- Familiarity with data engineering practices and event-driven architecture design principles.
- Experience with integrating machine learning models into production applications.
- Proficient in a cloud stack (AWS, Google Cloud Platform, Azure).
- Understanding of large-scale distributed systems and experience building high-performance production-grade distributed systems.
- Hands-on experience with front-end frameworks like React.js and/or Next.js.
- Experience with data technologies such as PostgreSQL, Snowflake, or Databricks, and exposure to real-time data streaming technologies like Kafka.
- Proficient in TDD practices, testing frameworks, version control systems (e.g., Git), and CI/CD pipelines.
- Familiarity with Agile/Scrum methodologies and DevOps practices.
- Ability to produce detailed, comprehensive software documentation, including testing plans, requirement specs, design docs, and technical requirements for user stories.
- Excellent communication skills and ability to collaborate effectively with team members.