Software Development Engineer I

IBM
Bellevue, United States of America
2 days ago

Role details

Contract type
Permanent contract
Employment type
Full-time (> 32 hours)
Working hours
Regular working hours
Languages
English
Experience level
Junior

Job location

Bellevue, United States of America

Tech stack

Testing (Software)
Clean Code Principles
Query Performance
Java
Agile Methodologies
Amazon Web Services (AWS)
Amazon Web Services (AWS)
Computing Platforms
Automation of Tests
Azure
Google BigQuery
Cloud Computing
Profiling
Software Quality
Code Review
Computer Programming
Databases
Information Engineering
Data Infrastructure
ETL
Data Transformation
Data Structures
Data Warehousing
Relational Databases
Database Queries
Software Design Patterns
Linux
Distributed Systems
Github
Gradle
Hadoop
Monitoring of Systems
IntelliJ
Java Virtual Machine (JVM)
JUnit
PostgreSQL
Maven
Octopus Deploy
Object-Oriented Software Development
Software Architecture
Mockito
Prometheus
Swagger
Shell Script
Software Engineering
Unix Commands
Openapi
Parquet
Datadog
Data Logging
Test Driven Development
Postman
Snowflake
Grafana
Database Optimization
Spark
GIT
Cloudformation
Kotlin
Amazon Web Services (AWS)
Containerization
Kubernetes
Infrastructure Automation Frameworks
Information Technology
Data Analytics
Integration Frameworks
Build Tools
Asynchronous Programming
Functional Programming
Api Design
REST
Amazon Web Services (AWS)
Terraform
Stream Analytics
Software Version Control
Data Pipelines
Docker
Jenkins
Redshift
Microservices

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

Apply for this position