The Software Engineer is responsible for researching a wide range of issues and providing solutions. Will apply specialized engineering knowledge and skills to one or more engineering disciplines. Proven ability to work independently and collaboratively. Core team member of one or more projects working on complex deliverables.
- Create and maintain new features end-to-end across an entire product, from inception to design to implementation to deliver to the customer.
- Collaborate with product/program managers and business stakeholders to offer the most appropriate technical solution to customer requirements. Recommend options when a proposed solution is not technically feasible, cost-effective, or impractical in the desired timeframe.
- Contribute directly to major, cloud scale architecture decisions.
- Contribute to developing loosely-coupled, RESTful service-oriented architectures with a bias for simple, elegant solutions.
- Design services and create APIs from scratch based on vetted customer requirements.
- Assist in the selection, evaluation, and integration of Open Source solutions, programming languages, and third party hosted solutions.
- Perform dev-ops to drive continuous improvement with operational metrics and maintain low, live-site overhead.
- Unit test, load test, and document all code to ensure that solutions are correct and maintainable.
- Bachelor's degree in technology or software-related field of study or equivalent experience
- 3-5 years of relevant experience.
- Strong understanding of Go and/or one or more industry-standard languages (e.g. C/C++/C#/Java/Swift/Python).
- Proven experience of storage basics, load balancers, and proxies.
- Experience working with Open Source solutions.
- Experience with industry-standard database technologies (e.g. Document Stores like MongoDB, RDBMS like PostgreSQL or cloud solutions from AWS, Google, etc.).
- Experience working in virtualized, cloud environments.
- Highly competent design skills utilizing patterns and frameworks.
- Proven ability to work and problem solve independently/collaboratively, to organize workload and priorities, high-quality execution, technical innovation/adaption, and initiative.
Nice to Have:
- Experience integrating with 3rd party Payment Processors.
- Experience integrating with 3rd party App Stores.
- Experience using Kubernetes or other Container Orchestration frameworks.
- Experience with Istio or other service meshes.
- Experience developing services using gRPC.
- Experience with Graph Databases (e.g. Neo4j, OrientDB, DGraph, etc.).
- Experience developing web-based UI using modern development frameworks like React, Angular, or Vue.
- Extensive application integration and performance testing experience.
- Experience architecting, designing, and building large scale distributed systems.
- Experience with any of the following: certificate generation/validation, scalable storage technology, X.509 certificates/certificate chains/ digital signatures, and AES/SHA1/SHA2/RSA algorithms and PKI fundamentals.