Sr. Ruby Developer
Our software team is updating our software technology stack. To boost us into the future we have moved to a cloud-based infrastructure on AWS and are now moving to provide new APIs for use internally and by our business partners. As a Senior Software Engineer, you will:
- Aid in training/mentoring of other developers while also being excited to learn from others.
- Participate in requirements, architecture, and design discussions.
- Collaborate on design and architecture direction, with an eye toward short-term flexibility while pushing for long-term gain.
- Provide technical leadership via knowledge and understanding of software design and architecture.
- Design, implement, and test high-availability systems for:
- processing incoming telemetry data including geolocation,
- mapping and correlation of location data,
- application of geofence-based rules for notification,
- managing business relationships that allow sharing of assets, ? and enabling secure access to both web-based UIs and APIs.
- Support customer issues and requests along with the rest of the team.
- Use the existing code base to garner knowledge and understanding of current functions.
- Use and help investigate AWS native solutions including deployment (DevOPS) mechanisms.
- Initial projects will include buildout of our GraphQL APIs for managing user & organization accounts & relationships and moving our authentication processes to a more modern and universal SSO architecture.
How You Qualify
- 7+ years of professional experience as a Senior Software Engineer or similar role.
- Strong knowledge of Ruby. (Similar knowledge of Python or similar languages may be substituted.) ? API design and development experience with priority given to GraphQL knowledge.
- Understanding of and ability to explain standard programming techniques (OOP, functional, etc.).
- Ability to discuss business concerns and relate to technological ones.
- Material experience writing, testing, deploying, and maintaining applications deployed to a cloud-based infrastructure. Should be able to argue for and against different architectural options (microservices, monolith, etc.)
- Confidence using software version control systems to organize and parallelize development efforts.
Preferred to Have
- Understanding of different data storage mechanisms, including RDBMS (specifically PostgreSQL) and key/value cache (specifically Redis), as well as the tradeoffs involved in making choices between them.
- Experience with message-based systems (message bus, message streaming, pub/sub, etc.).
- Knowledge of AWS product offerings and deployment mechanisms. Kubernetes (EKS) is a specific preference.
- Solid understanding of and experience with Agile/Lean values & principles and related methods.
Nice to Have
- Experience with GIS software (specifically PostGIS, shapefiles, KML, MapServer, OpenLayers).
- Experience in IoT development.
- GPS device or other embedded systems/hardware background.
- Experience with any of the following: Docker, Kafka, Resque, RESTful services.
- Familiarity with Terraform/Terragrunt and/or other 'infrastructure as code' technologies.