Summary
- Title: Senior Developer (System/DevOps Team)
- Job Type: Full Time Permanent
- Work Location: Virtual, Canada
- Compensation: $100,000 to $130,00 per annum base salary
- Department: Systems Team (aka DevOps)
- Closing Date: Monday, October 23, 2023
- Experience Required
- Minimum of 3 years of software development experience
- Strong development cycle experience
- Exceptional level of fluency in scripting tools and languages (Bash, Python, etc.)
- Exceptional level of fluency with building secure and maintainable container images
- Exceptional level of fluency running containers, including with Docker COmpose or smilar
- Experience designing, building, and maintaining CI/CD pipeline/workflows, preferably with one or more of: Github Actions, CircleCI, Argo Workflows, Travis
Job Description
The Spark
At Sparkgeo, we aren’t just another geospatial consultancy; we’re the architects of a changing future. Powered by our talented and creative people, we’re pioneering the next era of geospatial innovation. Supported by passion and grounded in agility, responsibility, and collaboration, we believe that geospatial isn’t just a tool—it’s a revolution that’s reshaping industries. By blending the vast horizons of geospatial technology with acute product focus, we’re helping businesses dodge the common pitfalls and truly harness the transformative capacity of geospatial solutions. In a world where geospatial is changing everything, Sparkgeo stands as a beacon of expertise, innovation, and dedicated partnership.
Originating in Prince George, British Columbia, Sparkgeo operates as a remote-first team, with our people located across Canada and the UK. We believe in creating spaces for our people to flourish within their work at Sparkgeo, so they can also flourish outside of work within their chosen communities.
The Job
A Senior Developer at Sparkgeo is instrumental in the software development lifecycle, leveraging their deep expertise in software technologies and methodologies. In the planning phase, they collaborate with business teams and clients to define requirements and software solutions. During execution, they write software and ensure the delivery of finished products or services. They uphold clean code standards, handle testing, ticket tracking, and source control. Their comprehensive knowledge equips them for roles such as technical lead, architect, or system design planner.
They clearly document their work, ensuring its comprehensibility for others. As adept problem solvers, they adjust to changing constraints and confidently determine code and architectural paths. They keep abreast of tech trends and can articulate technical complexities to various stakeholders. Beyond their technical acumen, they mentor junior colleagues.
The Team
As a Senior Developer in the internal Systems Team (aka DevOps), their main focus lies in developing and executing strategy for advanced automation, CI/CD tools, and delivery and release management. They also maintain and scale infrastructure to improve operational efficiency, and design and script procedures for system troubleshooting, maintenance, quality analysis, and monitoring operations. On occasion, as a member of the larger Technology team, they may be called to apply their skills in other development capacities beyond DevOps.
The Work
- Design, develop, test, implement, maintain, and improve code in existing or novel complex applications or structures
- Collaborate in cross-functional internal and client teams throughout discovery and planning stages to create proof-of-concept applications and define projects, including scope, feasibility, solutions, requirements, estimates, expectations etc.
- Identify and communicate project risks and mitigation strategies regularly
- Liaise directly with clients and effectively communicate complex technical concepts, including technical progress, limitations, and solutions
- Deliver and implement the high-value units of work within a project, including resolution of non-routine, complex problems
- Act as the project technical lead as required, including coordinating project activities, championing standards and alignment, and advising on technical aspects
- Develop and design new instances of existing architecture, code strategy, and major new features, in collaboration with stakeholders, with no regular need for supervision
- Collaborate and communicate regularly with stakeholders on the status of work, requirements, expectations, and blockers
- Estimate time to complete designated project tasks in support of project manager and business development team
- Write documentation according to best practices and standards
- Pioneer best practices, processes, and latest trends and technologies
- Identify and build reusable architectures
- Coach junior colleagues formally and informally, such as through code reviews, pair programming, formal mentorship, and conversation
- Pursue professional development opportunities when time and schedule permit
The Qualifications
Education
Nice-to-have:
- Bachelor’s degree in computer science, software engineering, or a related field
- Technical school or coding bootcamp certification
- AWS or other cloud certification
- GIS related degree or certification
Experience & Knowledge
- Minimum of 3 years of software development experience
- Strong development cycle experience
Nice-to-have:
- Development experience in a professional services or consulting environment
- Understanding of geospatial science and technology
Skills & Attributes
- Expert-level proficiency in multiple core and specialized programming languages and advanced computing concepts
- Deep expertise within at least one programming environment
- Expert-level proficiency in integrating complex systems, handling geospatial data in programming languages, and using a wide variety of geospatial libraries and tools
- Ability to architect, design, and develop complex software systems
- Fully capable of taking substantial complex features from concept to shipping as the sole programmer
- Ability to optimize performance and solve complex programming challenges
- Ability to identify and apply the correct tools, framework, and techniques for solving unique problems
- Ability to think logically and critically
- Open-minded and creative approach to projects and collaboration
- Ability to work as the sole programmer and/or collaboratively in a team environment on large, significantly complex projects
- Ability to deliver work completely autonomously without need for review from a senior or colleague
- Efficient and comprehensive research skills
- Effective and adaptive verbal and written communication, including ability to articulate technical decisions in their code
- Ability to manage time and prioritize effectively
- Collaborative problem-solving and conflict resolution skills, both technical and interpersonal
- Ability to adapt approaches to tasks and situations in consideration of changing circumstances
- Growth and learning mindset
Specifics for the Systems Team
- Exceptional level of fluency in scripting tools/languages (Bash/Python/etc).
- Familiarity with microservices architecture, including: design, implementation, monitoring, and maintenance.
- Familiarity with the software release management cycle.
- Exceptional level of fluency with building secure and maintainable container images.
- Exceptional level of fluency running containers, including with Docker Compose or similar.
- Experience designing, building, and maintaining CI/CD pipeline/workflows, preferably with one or more of: Github Actions, CircleCI, Argo Workflows, Travis.
- Experience in infrastructure, such as: design, build, and maintainance to support high-performance, scalable, and fault-tolerant applications.
- Experience working with Cloud Providers, preferably with one or more of: AWS, GCP, Azure, OCI.
- Experience in Infrastructure as Code (IaC), preferably with one or more of: AWS CloudFormation, AWS CDK, Terraform.
Nice-to-have:
- Experience working with a container orchestrator, preferably Kubernetes. However, experience with Docker Compose, Docker Swarm will be an asset.
- Experience with Observability topics such as: unified logging, metrics, tracing, alerting.
- Experience with security and compliance, and working with security teams to establish and maintain best practices for infrastructure security.
What is not required for this role
- A degree
- Every skillset
Some other details
Compensation
- $100,000 – $130,000 per annum base salary
Work-Life Supports
- Work remotely and flexible scheduling
- Vision, dental, EFAP, and extended health benefits for you and your dependents
- Generous PTO, including starting 4 weeks of vacation per year and increasing at 3rd anniversary
- Unlimited Udemy courses for continuous growth and learning
- Matching RRSP as you build your future
- Yearly office expense allowance so your set-up works for you
- In-person company meet-up (to settle the score on who really is the tallest)
More about Sparkgeo
Visit our Jobs page to learn more about who we are, and how we work.
Who and how we hire
We encourage all people, from all backgrounds and experiences to apply. You do not need to check every single one of these boxes. We hire anyone who is curious, willing to learn, and likes to work remotely and autonomously with a dispersed team.
Sparkgeo provides support in its recruitment processes to applicants with disabilities; including accommodation that takes into account an applicant’s accessibility needs. Should you need assistance, please contact People & Culture at people@sparkgeo.com. Applicants selected for an interview who require accommodation during the interview process are asked to advise accordingly upon the invitation for interview.