Job type: Full-time
Role: Backend Developer
cloud, amazon-web-services, node.js
Summary/Objective: The Software Engineer (Cloud Full-Stack) will develop cloud/web software for a new ocean data portal development. The work will include front end and some backend development. The position is part of the Terradepth engineering team.
Develop the software for a website data portal. Design and code using commercial and open source frameworks and components.
Work as part of a small team in the development, coding, testing and demonstrating the full data system. Follow TDD practice writing testing protocols along with the code.
Participate in the evaluation and selection of cloud utilities, standards, interface protocols, and software components and tools.
Engage on the technical team ensuring overall success and contributing to technical requirements documents, ICDs, and problem solutions.
Responsible for your software programing including shared responsibility for system testing and inputs into associated developments.
Competencies and Skills:
BS Degree in Computer Science or Computer Engineering plus 1+ years direct experience in web development OR AS Degree or certificate plus 3+ of experience in same.
Front End Skills (needed):
HTML (5) + CSS
HTTP(S) + REST, JSON processing
Web Application Architecture
Charting: d3, nvd3
User Login Portal Development
Familiarity with authorization and authentication protocols and tools
Understanding of CORS principles, and web application security in general
UI interface design, dashboards, and displaying figures and graphics on web layers
Development with Responsive / Adaptive Web Design for different front ends. Mainly desktop, but could potentially be mobile platforms also
3D Visualization: three.js or equivalent is desirable
DESIRED: Working with Google Maps API. Optionally desired: ArcGIS Pro and Esri Cloud Platform for GIS
Layering on top of 3D maps using either Google Maps or ArcGIS
SQL query requests to backend servers
Developer Tools: NPM, Grunt, etc.
Version Control: Git
Back End Skills (optional, but desired):
Google Cloud Platform. Open to AWS or MS Azure platform
Python and NodeJS development
Dev Ops: Security driven backend design. GCP resource provisioning, IAM roles, Security Groups, Routes, Load Balancers, and general Networking concepts.
Application / Web Servers: NginX or similar, NodeJS, Python. Reverse Proxy Application servers that use Elastic IPs, Gateways, Bastion Hosts, etc. Flask and / or Django, Gateway APIs with linkage to application servers in private subnets in multi-tiered VPCs with Public and Private subnets
Optional: Cloud Functions / Lambda Functions
Familiarity with IoT concepts, Edge Computing
Microservices: Familiarity with microservices and event driven platform design
MemCache: Some familiarity with Redis is desirable
Streaming Data: GCP Cloud PubSub / Cloud DataFlow. Or, equivalent streaming services on other cloud platforms, such as AWS Kinesis Firehose, Kinesis Data Streams
Data Lake: Working with Google Cloud Storage, or AWS S3, or equivalent object store, for a general storage platform
NOSQL: MongoDB. Optional: Google Big Table or AWS DynamoDB
RDBS: SQL (PostGres - would really appreciate prior work with PostGIS plugin for GIS)
Data Warehouse: Google Big Query or equivalent such as AWS Redshift and / or Aurora
Understanding of OLTP and OLAP DBs. Table design, DB Normalization, Indexing, etc.
Understanding of DB design for low latency access. Geared towards geospatial data
Message Queues: RabbitMQ and / or Kafka
Optional: Containers, Docker, Kubernetes
Optional: ElasticSearch and Kibana - Good to have.
Familiarity with code orchestration tools and automated cloud deployments
Other Requirements and Duties:
Dedication to development methodologies that promote working, clean code is desired.
Ability to pick up new interfaces, software and tools.
Understanding of cloud functions or big data handling is a plus.
Evening and weekend work may be required as job duties demand.
Travel is expected to be less than 20% and planned in advance.
Please note this job description is not comprehensive; duties, responsibilities, and activities may change at any time with or without notice.