We are looking for an ambitious and self-driven Senior Software Engineer to join our team. As a Senior Software Engineer, you will be responsible for making design choices, and coordinate & oversee technical standards including software coding standards, tools, and platforms.
Your responsibilities:
- Work closely with project management and the client to translate business requirements into scalable and highly available tools
- Implement Cloud and Microservice best practices while adhering to standard architecture patterns
- Develop microservice applications to support the media asset management systems and implement them using appropriate technologies & frameworks
- Choose the system architecture and each individual component of the system at a high level
- Choose the technologies for the implementation of each component and connections between components
- Review the architecture and code
- Utilize tools, technology & various methodologies to create functional & intuitive solutions for user interfaces of desired products
- Pay attention to system integration, sustainability & feasibility
- Manage all phases of technology development
- Oversee & supervise the work of the development team
- Suggest & implement solutions for process improvement
- Drive the adoption of engineering best practices
- Follow Agile best practices and tools adopted by the team
- Integrate various software platforms and external 3rd party systems through vendor APIs.
- Work with vendor(s) on API implementation and troubleshooting, suggesting necessary features, and identifying enhancement opportunities.
- Configure Dev, QA, and Production environments with proper packages and dependencies to enable development, working closely with Cloud Ops, CI, and QA team members
Skill sets/Experience we require:
- Proven work experience as a senior software engineer, senior backend developer, or similar role
- Good understanding of Data Structures.
- Working knowledge ofNode.js and frameworkssuch as Express, StrongLoop, NestJS, etc. depending on your technology stack.
- Good understanding of Async Programming.
- Knowledge of node.js standard libraries (fs, path, etc.)
- Must have experience with Amazon Web Services (AWS) including Lambda, Kinesis, API Gateway, CloudFormation, VPC
- Unit testing libraries like Chai, Mocha, Supertest, and JestJS. Should be able to write unit test cases using stubs, mocks, and spies. And some knowledge of code coverage.
- Good understanding of Design Patterns.
- Understanding of Modularization.
- Aware of API management.
- Knowledge of working with NoSQL/SQL/MongoDB/Cassandra/CouchDB/CouchBase/NeDB and modules like mongoose ODM.
- Understanding of software quality assurance principles
- Technical mindset & analytical approach
- Great attention to detail & good leadership skills
- Good interpersonal & communication skills
- Bachelors/Masters in Computer Science or relevant field