Smallest logo

Software Engineer - Systems and Reliablity

Smallest
NewPosted today

LOCATION

Bengaluru · Onsite

EXPERIENCE

Not specified

TYPE

FullTime

SKILLS REQUIRED

Reliability EngineeringIncident responseLinuxDistributed SystemsRoot Cause AnalysisObservability

Job description

Overview

Own a service or part of the product from design through production, including writing the code, validating its behaviour, deploying it and keeping it reliable for customers. Testing, deployment and operations are part of engineering ownership.

What you'll do

  • Define measurable service-level objectives for customer-facing latency, availability and correctness.
  • Write maintainable code that another engineer can understand, debug and operate.
  • Test beyond the happy path using unit, integration, load and fault-injection testing, and explain coverage and its limitations in review.
  • Own CI, deployments, rollbacks, schema migrations and infrastructure changes, including Terraform changes your work requires.
  • Create useful dashboards, actionable alerts and runbooks.
  • Participate in on-call, incident response and postmortems.
  • Investigate call drops and failed requests directly, communicate clearly and drive issues to resolution.
  • Turn recurring incidents and manual debugging into better controls, automation and tooling.

What you'll need

  • Strong engineering fundamentals and the ability to apply them to unfamiliar problems, assessed through technical discussion and practical reasoning.
  • Ability to explain and reason about processes and operating systems: process creation, signals, file descriptors, namespaces, cgroups, PID 1 behaviour and CPU throttling.
  • Ability to explain and reason about memory: virtual memory, page cache, available memory, swap, cgroup memory limits, out-of-memory behaviour and stalls despite low CPU utilisation.
  • Ability to explain and reason about files and storage: inodes, durability and fsync, disk-usage discrepancies, atomic rename, IOPS and throughput.
  • Ability to explain and reason about networking: TCP states, TIME_WAIT, connection and read timeouts, Nagle's algorithm, delayed acknowledgements, DNS, TLS, NAT and the trade-offs of UDP for real-time media.
  • Ability to explain and reason about concurrency and distributed systems: race conditions, locks, idempotency, at-least-once delivery, retries, backoff, jitter, backpressure, clocks and partial failures.
  • Ability to explain and reason about language runtimes: event loops, blocking operations, garbage collection, the Python GIL, memory leaks and algorithmic costs at production scale.
  • Ability to explain and reason about data systems: indexes, query plans, transaction isolation, row and column stores, and replication lag.
  • Ability to explain and reason about reliability: SLIs, SLOs, error budgets, latency percentiles, why percentiles cannot simply be averaged, and alerting on customer-visible symptoms.
  • Clear writing, patience to read unfamiliar code, and the habit of measuring before drawing conclusions.

Nice to have

  • Familiarity with Python, TypeScript and Go, Kubernetes on AWS, Redis, MongoDB-compatible stores, Postgres, ClickHouse, RabbitMQ and Temporal.

Details

  • Location: Bangalore.
  • Hands-on role with on-call responsibilities, occasional incidents outside regular hours, and customer escalations.

Read the full description and apply on the company’s own careers page.

Stay safe

Hiring on Abekus is free for applicants

We never charge a fee, and employers are prohibited from doing so. If a recruiter asks for payment, please report them right away.

Software Engineer - Systems and Reliablity