AEM (Advanced Environmental Monitoring) is the global leader in innovative mission critical weather, wildfire and water monitoring and intelligence solutions. We aim to be the world’s essential source for environmental insights – enabling decisive action and positive outcomes for our customers and their constituents. Our family of innovators offers world-class hydrometeorological technologies and services, including sensors, dataloggers, telemetry, and advanced analytics and software. Our technology and services empower the communities and organizations to survive – and thrive – in the face of escalating environmental risks.
Our software development teams maintain the creative spirit of a startup, while enjoying the benefits of a somewhat larger organization. We are comprised of fast paced, cross-functional, Agile scrum teams that love to collaborate, encourage curiosity, and continuously ship improvements that create better solutions for our customers worldwide.
AEM is seeking experienced software developers who are passionate about helping to improve the planet and who are excited to support their colleagues in their growth as they develop and progress towards achieving their professional goals. As we gather environmental information in real-time from our worldwide networks of sensors, we will be turning this data into actionable intelligence that meteorologists use to make predictions and to help people stay safe based on environmental insights. If you’re someone who has developed applications using C# with .NET & JavaScript and also knows how to take on and overcome complex scaling issues while also being comfortable working with other technology frameworks such as React – come join our team!
Job Responsibilities:
- Provide technical leadership for teams building new features and enhancing our existing software, tools and experiences
- Help delight our customers by extending our application capabilities
- Architect and lead efforts to design and build new APIs, web services, and microservices while supporting the worldwide operations of AEM’s cloud-based & on-premise environmental monitoring & meteorological solutions
- Design, develop, and operate various portions of our applications with lots of autonomy while working on challenging applications related to climate and meteorology
- Work with our full software stack along with our team of iOS, Android, and Front End, Back End Engineers, and academic researchers who, along with you, are responsible for evaluating new tools and technologies, building prototypes, and extending the capabilities of AEM’s sensor networks
- Collaboratively experiment, prototype, take risks and document your work while helping to build new applications, web services, and tools used by AEM’s product offerings
- Bachelor’s degree in Computer Science, Mathematics, or a related technical discipline, or equivalent relevant industry experience.
- 10+ years’ experience writing performant code in more than one compiled programming language (i.e. C++, C#, Java, or similar) using one or more frameworks such as Microsoft .NET and Java Spring. You also use one or more scripting languages such as PHP or Python for other tasks.
- 5+ years of experience developing and deploying web services on cloud-based infrastructure (e.g. AWS, Azure) on a large scale supporting at least 2,000 simultaneous users
- Outstanding technical problem-solving, design, and coding skills
- Passionate about building well-constructed software where security is built-in by design and have collaboratively designed complex software architectures as part of matrixed team
- Understand the need for abstraction and separation of concerns while being thoughtful about where & when to apply it
- You are the paradigm of the “Full Stack Developer”; you wield various web presentation frameworks such as Angular, Boostrap, jQuery, and React with ease and you often catch yourself thinking in JavaScript.
- You understand what makes software testable and if needed how to refactor an application written by others to support being tested using an automated test suite of your own design. You regularly use tools such as BenchmarkDotNet, NUnit / JUnit, Selenium / TestComplete, and TestRails to ensure your code works as designed and is performant.
- Knowledgeable about networking protocols such as TCP/IP, UDP/IP, HTTPS and HTTP/2 as well as having built applications that communicate using WebSockets
- Ability to understand the intricacies of web authentication such as sessions, API tokens, OAuth / OIDC, and JWTs. You automatically build your web applications to support single sign-on using a variety of identity providers.
- Ability to communicate effectively & persuasively both in-person and in the written form. People trust you and consider you as the “go to” person to bounce new ideas around with.
- You are adaptable, collaborative, and love eliminating ambiguity by figuring things out.
Preferred Experience:
- Experience with developing applications for managing large networks of sensors, meteorology, or weather
- Familiarity with GitHub Enterprise and scanning your code using static analysis tools such as SonarQube
- Experience deploying applications to either AWS or Microsoft Azure using Terraform
Canadian Compensation Range: A reasonable estimate of the current salary range for this position is $95,000 - $120,000 CAD per year. Please note that the salary information is a general guideline only. AEM considers a wide range of factors such as (but not limited to) scope and responsibilities of the position, candidate's work experience, education, licensure and certifications, key skills as well as other market and business considerations when extending an offer. The disclosed range estimate has not been adjusted for the applicable geographic differential associated with the location at which the position may be filled.
This position will accept applications on an ongoing basis and will be closed once the position is filled.
AEM is an Equal Opportunity Employer.