Software Development Engineer I
Role details
Job location
Tech stack
Job description
IBM Apptio is seeking a talented Software Engineer 1 to join our Data Platform team, a critical team that powers the data analytics and processing for Apptio's cost management solutions. The Compute Platform serves as the unified data warehouse layer, processing billions of records daily and supporting multiple product teams.
Our team builds and maintains high-performance, scalable services that integrate with Snowflake, handling massive datasets for enterprise customers. You'll work on cutting-edge distributed systems, data processing pipelines, and automation frameworks that enable real-time analytics and reporting.
Your role and responsibilities
Your Role and Responsibilities
As a Software Engineer 1 on the Data Team, you will:
- Develop and maintain microservices in Scala and Java
- Build and optimize data pipelines processing terabytes of data daily using Spark
- Write clean, well-tested code and participate in code reviews to ensure quality
- Collaborate with senior engineers and product teams to deliver features and resolve production issues
- Participate in Agile ceremonies and the on-call rotation for service reliability
Requirements
- Bachelor's degree in Computer Science, Software Engineering, or related technical field
- 1-2 years of professional software development experience
- Strong foundation in computer science fundamentals including data structures, algorithms, and object-oriented programming
Programming Skills
- Proficiency in at least one JVM language (Java, Scala, or Kotlin)
- Experience with version control systems (Git) and collaborative development workflows
- Ability to write clean, maintainable code with proper error handling and logging
Technical Knowledge
- Understanding of RESTful APIs
- Basic knowledge of SQL and relational databases
- Familiarity with build tools (Maven, Gradle) and dependency management
- Understanding of software testing principles and test-driven development
- Basic understanding of cloud computing concepts (AWS, Azure, or GCP)
Soft Skills
- Strong problem-solving and analytical thinking abilities
- Excellent communication skills, both written and verbal
- Ability to work effectively in a team environment
- Eagerness to learn new technologies and take on challenges
- Self-motivated with good time management skills
- Comfortable asking questions and seeking help when needed
Professional Attributes
- Attention to detail and commitment to code quality
- Ability to handle multiple tasks and prioritize effectively
- Willingness to participate in on-call rotation and handle production issues
- Strong work ethic and reliability
- Adaptability to changing requirements and technologies
Preferred technical and professional experience
Advanced Programming Experience
- Professional experience with Scala programming language
- Knowledge of concurrent and asynchronous programming patterns
Data Engineering
- Experience with data warehouses (Snowflake, BigQuery, Redshift)
- Knowledge of data processing frameworks (Apache Spark, Hadoop)
- Understanding of columnar storage formats (Parquet, IceBerg)
- Experience with ETL/ELT pipelines and data transformation workflows
- Familiarity with data modeling and schema design
Cloud and Infrastructure
- Hands-on experience with AWS services (S3, RDS, SQS, Lambda, Secrets Manager)
- Experience with Infrastructure-as-Code tools (Terraform, CloudFormation)
- Knowledge of containerization (Docker) and orchestration (Kubernetes)
- Experience with CI/CD pipelines (GitHub Actions, Jenkins, ArgoCD)
- Understanding of monitoring and observability tools (DataDog, Prometheus, Grafana)
Database and Storage
- Experience with PostgreSQL or other relational databases
- Knowledge of database optimization and query performance tuning
Development Practices
- Experience with test frameworks (ScalaTest, JUnit, Mockito)
- Knowledge of design patterns and software architecture principles
- Understanding of microservices architecture and distributed systems
- Experience with API design and documentation (OpenAPI/Swagger)
- Familiarity with performance profiling and optimization techniques
Tools and Technologies
- Experience with IntelliJ IDEA or similar IDEs
- Knowledge of Linux/Unix command line and shell scripting
- Familiarity with Postman or similar API testing tools