Software Engineer
JOB DESCRIPTION
We are looking for an experienced Systems Software Engineer to join our team, interested in designing, developing and maintaining essential software systems. The optimal candidate will have demonstrated experience integrating solutions with graph databases, such as JanusGraph. They will also have a strong background in systems software development, experience with 3rd party system integration, expertise in ElasticSearch, and a solid understanding of data modeling concepts. This is a fantastic opportunity to work on a challenging project that requires innovative solutions and collaborative problem-solving.
KEY RESPONSIBILITIES
Design, develop, test, and deploy scalable and efficient software solutions
Collaborate with cross-functional teams to identify and prioritize project requirements
Participate with code reviews and ensure high-quality, modular, and reusable code
Troubleshoot and debug issues in the application, including performance optimization and error handling
Stay up-to-date with industry trends and emerging technologies, applying this knowledge to improve our application
Design and implement data models that meet the needs of the application, ensuring data consistency and integrity
EDUCATION AND EXPERIENCE
Bachelor’s Degree in Computer Science, Electrical or Computer Engineering or a related technical discipline, or the equivalent combination of education, technical training, or work/military experience.
5+ years of related software development experience.
REQUIRED QUALIFICATIONS
Extensive expertise in Python and NodeJS
5+ years of experience in systems software development in NodeJS or Python
Strong proficiency working with graph databases and graph query languages
Proven experience with 3rd party system integration using APIs, webhooks and other integration methods
Strong understanding of software design patterns, principles and best practices
Excellent problem-solving skills, with the ability to work effectively in a team environment
Basic understanding of data modeling concepts, including entity-relationship, data normalization, and denormalization
Experience with Git workflows, including feature branching, pull requests and code reviews
Ability to work effectively in a Linux-based development environment
DESIRED QUALIFICATIONS
Hands on experience with AWS Lambda, EventBridge and SQS
Experience with Node.js, Express and MongoDB
In-depth knowledge of ElasticSearch, including indexing, querying and aggregation
Knowledge of containerization leveraging Kubernetes
Familiarity with CI/CD pipelines and automation tools such as Jenkins or CircleCI
Hands-on experience working with message brokers such as RabbitMQ or AWS SQS