DevOps Engineer
Job description
Job Description
We are looking for a DevOps Engineer to take ownership of the infrastructure behind our live products. We run multiple Laravel and Node.js applications across VPS servers, and today deployment, server configuration, and incident response are handled ad hoc by whoever is available. Your job is to turn that into something documented, repeatable, and safe.
This is a hands-on infrastructure role, but it is not a pure operations role. You will be reading and debugging application code, not only server logs. When an API slows down or a queue worker stalls, we expect you to be able to open the codebase, understand what the application is doing, and identify whether the problem lives in the code, the database, or the infrastructure. A DevOps engineer who can only look at the server half of the picture will not be effective here.
You will work directly with our backend and mobile developers, and you will be the person we call when production is down.
Responsibilities
Infrastructure and deployment
- Own our server infrastructure: provisioning, configuration, hardening, and documentation of VPS environments
- Configure and maintain Nginx as reverse proxy, PHP-FPM pools, Node.js process management, Supervisor workers, and Redis
- Manage SSL certificates, DNS, and CDN/proxy configuration (Cloudflare)
- Build and maintain CI/CD pipelines so deployments are one command or one merge, not a manual checklist
- Containerise applications with Docker and maintain reproducible local and staging environments
- Set up and maintain separate staging and production environments with a clear promotion path
Reliability and operations - Set up centralised logging, error tracking, uptime checks, and alerting on meaningful thresholds
- Lead incident response: diagnose, mitigate, restore service, then write up the cause and the prevention.
- Own backup and restore for databases and application data — including actually testing restores, not just scheduling backups
- Manage secrets and environment configuration securely, outside of source control
- Plan and execute capacity and scaling changes: load balancing, horizontal scaling, read replicas, moving state into shared stores.
Working with the application - Read and debug Laravel (PHP) and Node.js/NestJS application code well enough to isolate a problem to its actual layer
- Diagnose slow queries with EXPLAIN ANALYZE , spot missing indexes, and identify N+1 query patterns
- Investigate queue backlogs: worker concurrency, failing jobs blocking the pipeline, retry storms
- Advise developers on deployment-safe practices — zero-downtime migrations, backward-compatible releases, health check endpoints
- Write small scripts and internal tooling to automate repetitive operational work.
Requirements
- 3+ years in DevOps, SRE, or systems engineering, including responsibility for a production environment with real user
- Demonstrated experience being on the hook for uptime, not only building pipelines.
- Backend development background, or enough hands-on coding experience to work confidently inside an application codebase.
Infrastructure - Strong Linux administration: systemd, permissions, networking, disk and memory diagnosis, log analysis.
- Nginx configuration in depth: reverse proxy, SSL termination, load balancing, caching, static file serving.
- Docker, and ideally Docker Compose for multi-service environments.
- CI/CD experience with GitHub Actions, GitLab CI, or similar
- Cloud or VPS provider experience — DigitalOcean, AWS, Vultr, Linode, or equivalent
- PostgreSQL and MySQL administration: backups, restores, replication basics, connection pool tuning
- Redis operation and monitoring
- Cloudflare or another CDN/WAF layer
Application-side knowledge - Able to deploy and troubleshoot both PHP/Laravel and Node.js applications.
- Understands how the applications you deploy actually work: queues, cron jobs, WebSocket connections, caching layers, environment configuration
- Comfortable reading application logs and stack traces and tracing them back to specific code paths
- Familiar with migration safety: why a naive ALTER TABLE on a large production table is dangerous, and what to do instead.
Security - Server hardening: SSH key-only access, firewall rules, fail2ban or equivalent, principle of least privilege
- Secrets management and credential rotation
- Awareness of common application-layer risks and how infrastructure controls (rate limiting, WAF rules, TLS configuration) mitigate them.
Working style - Documents as they go — the next person should be able to deploy without asking you
- Diagnoses by checking logs, resource usage, and recent changes before guessing
- Automates rather than repeats
- Communicates clearly during incidents: what is broken, what the impact is, what the ETA is Willing to say no to a risky deployment and explain why