The Software Engineer's role is to help us enhance our desktop 3D frontend, web frontend, and cloud-based infrastructure with a particular focus on developing new features that are relevant to the offshore wind industry. These tools allow our users to design models, connect to our cloud-based engineering simulation engine, and visualize/post-process results.
The Software Engineer should improve our ability to support customer requests and add new front-end features. These are very high-impact for our customers and sales because front-end features are user- facing.
Additionally, the Software Engineer may help deploy and maintain our cloud-based high-performance compute platform, and may add new features in areas such as user authentication, diagnostics, and cloud scaling.
ROLES AND RESPONSIBILITIES:
- Use Python, QML, OpenGL, numpy, and other libraries to implement new features and maintain existing features for Akselos Modeler desktop frontend.
- Ensure the reliability of desktop and web applications via framework of testing layers (unit-test, integration test, end-to-end test). Create and update tests as new features are added.
- Provide immediate support and assistance to the users that encountered bugs or errors from the Modeler or Dashboard.
- Add new features and make other improvements to the server backend
? Develop the server backend, adding new features to meet business requirements.
? Create new logging, diagnostic, monitoring, and notification tools to help ensure reliable operation of the cloud service and adherence to any SLAs.
? Make architectural changes as necessary to smoothly scale cloud resource usage according to customer demand.
? Migrate backend services to use new third-party tools, including new features that may be provided by the hosting cloud platform
? Profile backend services and make necessary performance improvements.
- Deploy and maintain the service on the cloud platform
? Diagnose server failures
? Ensure services are operating as designed
? Avoid server downtime due to resource exhaustion
? Provision new server instances as required by customer demand
? Automate deployment of new server instances
- Test the server backend, creating new automated tests as necessary to ensure continuous availability of the service.
THE IDEAL CANDIDATE WILL HAVE THE FOLLOWING SKILLS
- Python experience
- Strong background with vector calculus
- Experience with Linux server administration.
- Knowledge of common features and concepts related to cloud computing platforms
OTHER SKILLS, EXPERIENCE AND QUALIFICATIONS
- Two years professional experience or other demonstrable programming experience
- Experience with deployment and administration on a cloud platform (e.g. AWS or GCP),
- Experience with automation and other server-related tasks using Python or a similar language.
- Experience with some common tools and workflows used for building, testing, and deployment.