We are looking for an experienced software engineer to design, develop, and install software solutions in the context of a venture-backed startup in the aviation industry. Our startup aims to keep air travel a safe mode of transportation, despite a growing shortage of pilots and a huge increase in air travel worldwide. We will achieve this by delivering the first true adaptive training technology, powered by machine learning, that will dramatically increase the effectiveness of pilot training.
Our systems collect data from flight training devices installed at aviation training centres, push this data up to our cloud-based analytics platform running on top of Amazon Web Services, and serve these results via web applications. We’ve written custom user interfaces to flight training hardware and a local agent that behaves much like an IoT device to push live data to AWS. We use Amazon Kinesis streams to capture streaming data, a system of serverless microservices to perform on-the-fly data analysis, Django REST Framework for the web backend, PostgreSQL to store our structured data, and frontend dashboard written in ReactJS with data visualizations written in Plotly. Data analysis is performed in Python, making use of various libraries for machine learning.
Your responsibilities would include gathering user requirements, defining system functionality, developing software in various languages including C++ and Python, and creating and maintaining scalable architectures within AWS to handle the demands of the proposed solution.
You would be working as part of a small development team in Montreal. Your co-workers include data scientists, physicists, web developers, pilots, and engineers from the aviation industry. We are a seed stage startup ready to scale out a proof-of-concept application that will learn and adapt to pilot training needs. Your role will be to help build a production-ready system for this technology stack.
Our ideal candidate has experience with the full software development life cycle from preliminary system analysis to development, testing and deployment. They are able to think of the big picture, while also taking an active role in writing code to achieve that vision. They can craft scalable, flexible and resilient architectures on AWS to meet the needs of data-intensive applications.
- Execute full software development life cycle (SDLC)
- Perform requirements analysis, define software architecture and produce supporting documentation
- Design scalable, flexible, resilient cloud architectures on AWS
- Develop and integrate software components into a fully functional system
- Develop software test plans and test suites
- Document and maintain software
- Troubleshoot, debug and upgrade existing systems
- Interact with subject matter experts (e.g. pilots, flight instructors) to hear their feedback
- Comply with project plans and industry standards
- BSc degree in Computer Science, Engineering or relevant field
- 5 years experience as a Software Engineer or Software Developer, writing software in Python and C++
- Experience developing software for cloud computing platforms (AWS or GCP)
- Excellent knowledge of relational databases, SQL and ORM technologies
- Experience developing web applications using at least one popular web framework (e.g. Django or Flask)
- Proficiency in software engineering tools
- Ability to document requirements, specifications and architecture
- Experience or interest in flight simulation or aviation
- Experience with infrastructure management tools (e.g. Chef, Puppet, AWS CloudFormation, Ansible)