About You
You are a hybrid software engineer. You can cross systems, DevOps, and application software boundaries. You have a history of shipping high-quality production code in one or more of the following Python, Node.js, Java, and C# (if you are proficient in other languages please apply and let us know!). You are skilled working directly on the command line. You embrace automation and take pride in building internal tools to help your team be more efficient. You are not afraid to jump into application code to ship a new feature or infrastructure code to help scale a system.
You solve challenges involving scaling, reliability, high availability, data pipelines, micro-services, and more in your day-to-day work. You are comfortable building and scaling applications on one or more technologies, including Python, Sanic, Docker, Kubernetes, Redis, Memcache, and MySQL.
You have experience working with databases. You are comfortable modeling database schemas and writing queries across a variety of data sources. You are able to build up data processing pipeline for Data ETL.
You have worked with teams before scaling large projects. You understand that automation plays a critical role in scaling. You have designed and implemented systems in a distributed manner and are comfortable scaling these systems across hundreds of servers. You have no problem keeping systems like these running even while you sleep…because you've automated it.
You love prototyping ideas and iterating them to solve the problem in a fast manner.
You love learning and focus on self-improvement. You not only enjoy playing with new technologies but also open minded to exploring new concepts and skills.
You are very communicative in the way how you talk, write, and code. You over-communicate to ensure everyone is on the same page and always ask clarifying questions refraining from making assumptions.
You are proactive, a doer, and biased towards action.Even when you have nothing to do, you will find something to do.
Things You Might Do
Riotly Social is a small, fast-growing, and partially remote company, we are constantly testing new product and new ideas by prototyping them. Here are some things you'll probably do:
- Solve and implement scalability improvements to keep tasks running efficiently for our customer
- Implement systems to improve efficiency and quality of jobs for developer, operations and customer service, even sales.
- Automate disaster recovery efforts, including introducing random "chaos" into the system to test and improve overall resilience to failures
- Build tooling to increase visibility into our running production systems, measure performance continuously, and act upon changes
- Experiment a lot, as we are a startup, things change quickly