Custom Software Engineer
Accenture
Accenture
Join our team as a Custom Software Engineer to craft innovative software solutions. You will design, code, and enhance system components, leveraging modern frameworks and agile methodologies to deliver scalable, high-performance applications. This role is focused on developing tailored solutions that meet specific business needs.
As a Rust Developer, you will be instrumental in designing, developing, and supporting robust backend applications and data-intensive services for leading OTT and digital media platforms. Your daily activities will encompass Rust application development, database engineering, seamless AWS cloud integration, API creation, performance tuning, and ensuring smooth production operations. Collaboration with cross-functional teams is key to delivering secure, reliable, and high-performance solutions, all while adhering to Agile and DevOps best practices.
As a Subject Matter Expert in Rust application development, you will independently design, develop, and enhance backend services using Rust. Your responsibilities include building and consuming REST and gRPC APIs for critical functions like entitlement, playback authorization, device registration, and catalog services. You will develop asynchronous services using Tokio, managing concurrency, cancellation, timeouts, and backpressure effectively.
Further, you will design and maintain data access layers, including database schemas, migrations, transaction handling, and connection management. This involves implementing and optimizing integrations with both relational and NoSQL databases. You will integrate various AWS services, such as Amazon RDS, Aurora, DynamoDB, ElastiCache, S3, Lambda, SQS, SNS, and OpenSearch. Developing efficient data models, indexing strategies, caching mechanisms, and database access patterns is also crucial.
You will create and maintain comprehensive unit, integration, database, and performance test suites. Participation in code reviews, CI/CD processes, release activities, and deployment validation is expected. You will also be responsible for analyzing production incidents, conducting root cause analysis, and resolving application and database-related issues. Troubleshooting performance bottlenecks, connection exhaustion, replication delays, query performance, and caching challenges will be part of your role.
Support for deployment validation, rollback procedures, and operational readiness activities is required. You will provide effort estimates, technical guidance, and risk assessments. Mentoring junior developers and collaborating with architects, product teams, and stakeholders will be essential. On-call duties and production support are also anticipated.
This role demands significant expertise in Rust Development and AWS Cloud as primary skills. A strong foundation in Rust programming, covering ownership, borrowing, lifetimes, traits, generics, Enums, pattern matching, and error handling, is essential. Experience with asynchronous Rust using Tokio, Futures, task management, concurrency, and shared-state handling is required.
You should have experience developing services with Rust frameworks like Axum, Actix Web, or Tonic, and be proficient with Serde for serialization and deserialization. Strong SQL and database design expertise, including experience with relational databases like PostgreSQL, MySQL, MariaDB, or Amazon Aurora, and NoSQL databases such as DynamoDB, Redis, MongoDB, Cassandra, Scylla DB, or OpenSearch, is necessary.
Familiarity with Rust database libraries like SQLX, Diesel, SEAORM, or Tokio PostgreSQL, along with expertise in schema design, indexing, migrations, transactions, and query optimization, is crucial. A deep understanding of consistency models, replication, read replicas, and distributed data systems is expected. Hands-on experience with core AWS services including Lambda, RDS, Aurora, DynamoDB, ElastiCache, OpenSearch, S3, SQS, SNS, and IAM is mandatory.
Proficiency with Cargo, workspaces, dependency management, Rust testing tools (Clippy, Rustfmt), Git, CI/CD pipelines, Docker, and Infrastructure as Code is required. The ability to analyze logs, metrics, and traces to troubleshoot production issues is vital. Prior experience leading production incident resolution and technical reviews, coupled with strong communication and stakeholder management skills, will set you apart.
While experience in OTT, Streaming, Broadcast, or Digital Media platforms is advantageous, knowledge of HLS, DASH, and DRM technologies is a plus. Familiarity with Content Delivery Networks (CDN) and Server-Side Ad Insertion (SSAI) is beneficial. Experience with Rust performance optimization, benchmarking, profiling, and memory tuning is highly valued.
Further desirable skills include experience with advanced database configurations (PostgreSQL Replication, MySQL Clustering, MongoDB Sharding, Redis Clusters, Cassandra, Scylla DB), DynamoDB design strategies (single-table design, GSI, LSI), event streaming architectures (Kafka, Amazon Kinesis, Dibarium), and IaC tools (Terraform, AWS CDK, CloudFormation). Knowledge of Kubernetes, Amazon EKS, monitoring tools (Grafana, Datadog, Elastic Stack, Splunk, Open Telemetry), and foreign function interfaces (FFI) or Web Assembly would be advantageous. Exposure to ITSM processes and tools like ServiceNow or Jira Service Management is also a plus.
This role requires a minimum of 8 to 10 years of relevant experience in Rust development and distributed systems engineering, with a total experience of 15+ years. Experience in Agile, DevOps, Cloud-Native Development, and Production Support environments is preferred. Participation in production support and on-call activities may be required.
Accenture
IT Consulting