Do you want to work for
Shedul.com, a fast-growing platform that is revolutionizing the beauty and wellness industry? We are an incredibly ambitious, innovative and fast-growing global software startup with offices in Warsaw, London, and Dubai. Our high-traffic booking platform has quickly become a game-changing industry leader, with user base in over 200 countries. Our users transact millions of appointment bookings monthly, with thousands of active users at any time.
Today we’re seeking for a System Reliability Engineer (SRE) - a person who'll (shamelessly quoting Wikipedia ...) "apply her/his Software Engineering expertise to solve IT Operations problems". This role is not about (at least primarily) building new business features, but about taking care of non-functional aspects of the platform's architecture (& infrastructure code behind it) - e.g. performance, high availability, resilience, maintainability, security, etc.
In other words, such a person's daily activities will cover (a selection, not a complete list):
- setting up & improving observability mechanisms for various platform elements (both technical & business aspects) - monitoring, alerting, error reporting, notifications, etc.
- detecting (e.g. via chaos engineering) & driving the removal (with your own or other teams' hands) of architectural bottlenecks, malicious attack vectors, root causes of technical problems
- measuring & optimizing non-functional architecture qualities (expressed as SLIs/SLOs)
- design, execute, validate & evolve mechanisms (tools & procedures) needed by such crucial processes like: disaster recovery, capacity & performance testing, out-scaling various components of the platform, end-to-end deployment pipeline, etc.
- automation of all of the above & much more :)
All of that to make sure that our exponentially growing traffic won't affect our never-ending quest to bring unparalleled value to both beauty salons & their demanding customers.
Your profile (required):
- Practical experience in writing complex, web-scale on-line applications (preferably with Ruby on Rails)
- Engineering attitude: based on pragmatism, measurable facts & common-sense (e.g. understanding of "good enough")
- Engineering maturity: not being stuck to own opinions, taking ownership over decisions, cold-blooded risk assessment
- Experience in optimizing online services (at least their back-end components)
- Being able to plan, design & execute complex, multi-step change action plans (e.g. platform component upgrades, migrations, complex deployments) while eliminating (or at least minimizing) platform down-times
- Genuine interest in non-functional, infrastructure parts of the platform & their architectural qualities (performance, maintainability, resilience, high availability, etc.)
- DevOps attitude - collaboration, silo removal, shared responsibility, improving quality, fast feedback, automation
- Experience with CI tools (preferably Jenkins)
Nice to have:
- Practical (hands-on) experience with writing Ruby+Rails or Elixir+Phoenix applications
- Practical (hands-on) experience with PostgreSQL, RabbitMQ and/or Redis
- Experience with distributed architectures & various enterprise integration patterns (e.g. message brokers, RPC)
- Strong communication skills, ability to self-organize and work well within a team (& with other teams)
- Experience with monitoring & alerting of infrastructure, containers, web apps and services
- PostgreSQL scalability, data replication, and backup skills and experience
- Experience with Kubernetes for container orchestration
- Experience with Heroku hosting
Our technology stack:
- Recent versions of Ruby + Ruby on Rails and Elixir + Phoenix tandems at the core of back-end
- PostgreSQL used through ORMs (ActiveRecord & Ecto) and raw SQL queries (for ETL purposes)
- RabbitMQ as message queue and custom Protocol Buffer RPC layer on top of it
- Docker running through custom scripting for development and end-to-end testing purposes
- Solid patterns for organizing large codebase across front-end, back-end and test suites
- Monolithic repository to organize multiple micro-services
- Modern operations tool-chain built upon Kubernetes, Jenkins, Terraform and Ansible
- Modern JavaScript (ES2015+) running React SPA frontend backed by Redux store
- JSON API used as a contract between backend APIs and the client code
- Use of external APIs including Twilio, Mandrill, AWS, Heroku
- Automated end-to-end test suite based on Java and Selenium
- Custom system for creating isolated test environments per feature
Our workflow highlights:
- Agile development flow based on GitHub, JIRA, Slack and the CI
- Mature product pipeline with predefined specs, designs, and architectures for all features
- Proper Scrum process with multiple teams, overseen by Scrum master
- Battle-proven approach to testing, static code analysis and code reviews
- Code linters to guard a top-class Elixir (Credo, ExFormat), Ruby (Rubocop) and JavaScript code (ESLint)
- Complete toolset including New Relic, Librato and AppSignal to inspect & fix performance issues
- Frequent prototyping of new technologies to lead in the project's business
What we offer:
- Competitive salary, 10,000 - 18,000 PLN net B2B negotiable based on your experience
- Working with a talented team of about 40 passionate engineers, architects, and designers
- Flexible working hours in the perfectly located modern office
- Passionate, young and creative team in a fun, startup-biased working environment
- Regular in-house events for sharing knowledge and passion: lightning talks, retros, demos
- Occasional integration events like board games, bowling nights, ping-pong tournaments etc
- Fruits, veggies, cakes, coffee, tea on a house to keep you rolling like a pro