Senior Software Development Engineer, Apptio
Seattle, USA
Job description
Introduction
At IBM, work is more than a job - it's a calling: To build. To design. To code. To consult. To think along with clients and sell. To make markets. To invent. To collaborate. Not just to do something better, but to attempt things you've never thought possible. Are you ready to lead in this new era of technology and solve some of the world's most challenging problems? If so, lets talk.
Apptio, an IBM company, is the leading technology spend and value management software provider. Its AI-powered data insights empower leaders to make smarter financial and operational decisions. A pioneer and category leader in Technology Business Management (TBM) and FinOps, Apptio works with thousands of customers, partners, and community members worldwide. Visit www.apptio.com.
Your Role and Responsibilities
As a Senior Software Engineer, this team owns and is responsible for the multi-node architecture, cache distribution, version control, and lifecycle management of objects (documents, projects, branches, environments, etc.) in our application served by TBM Studio and a bunch of other key features integrating with other applications and services in Apptio. Our services are deployed to the AWS cloud with the Apptio Kubernetes Platform in multiple AWS regions, and we leverage a few popular AWS services such as RDS, S3, DynamoDB, KMS, SNS, and SQS, among others.
· Work with your scrum team to deliver impactful and valuable features in 2-week sprints.
· Own end-to-end features from concept to design to production and partner with product managers and other engineers to deliver high-quality solutions.
· Be responsible for digesting requirements into solid design documents and lead/guide a small team to execute it with a well-crafted plan.
· Mentor and coach other engineers.
· Participate in code and design reviews for other teammates and even across teams.
· Operate with a high degree of autonomy, confidence, and humility.
· The team allow participates in shared rotation of on-call duties.
Required Technical and Professional Expertise
· 5+ years of experience delivering enterprise-level software.
· 3+ years of experience contributing to new and current systems' architecture and design (architecture, design patterns, reliability, and scaling).
· Experience with Service Oriented Architectures, micro-services, modern API designs, and implementations
· Ability to handle multiple competing priorities in a fast-paced environment.
· Demonstrated technical leadership role in building and delivering complex software solutions
· Proficiency in at least one modern programming language, such as Java, Go, Scala, C++, or C#.
· Familiarity with modern software development methodologies and practices: coding standards, reviews, CI/CD, and DevOps.
· Bachelor’s degree in computer science/Engineering or related field or equivalent work experience
· Excellent problem-solving skills and the ability to tackle challenging technical issues.
· Exceptional communication skills to collaborate effectively with cross-functional teams.
Preferred Technical and Professional Expertise
· Demonstrated experience with AWS, Azure, and/or GCP services for compute, storage, databases, etc.
· Experience in SQL (MySQL/Postgres) and NoSQL database technologies.
· Experience using containerization technologies like Docker and container orchestration platforms like Kubernetes.
· Familiarity with designing and implementing RESTful APIs with modern frameworks.
· Experience with Linux-based integrated development environments and scripting languages like Python/Shell.
· Robust knowledge of data structures, algorithms, enterprise systems, asynchronous architectures, and object-oriented programming.
· Experience using monitoring tools like Splunk, Datadog, Prometheus, Grafana
· Fluent spoken and written communication skills. Be the primary liaison for communicating with other teams and stakeholders (we are a geographically distributed engineering team).