We are looking for a full-stack software developer with experience building large-scale distributed applications. You should feel comfortabl...
We are looking for a full-stack software developer with experience building large-scale distributed applications. You should feel comfortable on both the front-end and back-end, with the ability to take on a new feature or application end-to-end.
In this role, you will:
● Work with a wide range of software. We build and run on everything from legacy Unix systems to the cloud to mobile devices. We don't do any desktop development, but touch most everything else, including significant web applications, streaming data processing, large-scale analytics and mobile apps for iOS and Android.
● Work with Ops to get stuff out the door. We do releases multiple times per week, so you'll work closely with our operations team to make sure that releases go out smoothly and continue to operate that way post-release. We own what we ship.
● Collaborate with our Product team. You'll interact on a daily basis with our product leads to explore new functionality, flesh out new ideas and help plan out future directions for our service.
● Make our customers' lives easier. Our entire monitoring platform is built by our development team with the goal of improving the lives of our customers. In addition to building new functionality there is ample opportunity to fix bugs, refactor code, and make yourself a better developer.
● Craft and lead the development process. We're always looking to improve how we build and release software, and expect everyone to help drive that forward.
● Shape the future of our tech. Want to explore a new technology? Look into it. Then tell us why we should (or shouldn't) use it.
Tools You'll Use:
● Python and Go - The bulk of our infrastructure is built in Python, with a growing use of Go in performance-sensitive areas. This includes web applications built on Flask, TurboGears and Tornado as well as lots of custom distributed applications that run our data collection and processing system.
● Kafka - We use Kafka for our core backend data processing in a streaming model for ingestion and processing of metric data.
● MySQL and InfluxDB - These two systems support our core customer/configuration and time series data.
● Vue.js - Our web application makes use of Vue to make interfaces as composable and usable as possible.
● Google Cloud Platform - our SaaS service runs in Google's cloud environment, making use of their managed services wherever possible. We also work closely with AWS and Azure for customer environments.
● Ansible & Terraform - All packaging and deployment of our software is automated to support regular, streamlined releases.
● Bachelor's degree in Computer Science or related field. Master's degree preferred.
● 5+ years of Python experience. Experience with Go, Rust or similar languages is a bonus.
● Solid Linux experience. You have hands on, real-world experience with it. We mainly use Ubuntu for our internal systems, but also support RHEL, Solaris/AIX, BSD, CentOS, Windows and whatever else customers may need.
● Professional experience with Vue.js, React, Ember, or similar.
● Proficient with relational databases - either MySQL, Postgresql or Oracle.
● Experience developing large-scale applications. We build and operate global-scale distributed systems, with monitoring nodes around the world (50+ locations) and utilize parallel and concurrent principles heavily.
Bonus Points for:
● Familiarity with systems and network administration. You don't need to be a sysadmin to be successful in this role, but most of our customers are; an understanding of how they work and think is valuable to delivering the best solutions for them.
● Experience with machine learning and advanced statistical applications, especially for time series analysis and event correlation.
● Performance and scalability engineering experience
● Vendor API integration experience, especially for enterprise-class networking, storage and compute infrastructure
● Mobile application development experience with iPhone and/or Android is a plus, especially if you have experience with a hybrid app framework such as React Native or Ionic.