Responsible for analyzing, designing, debugging and/or modifying software; or evaluating, developing, modifying and coding software programs to support programming needs. Maintain and enhance existing code with focus on implementation. Collaborate with and assist team of engineers in writing functional, design and user interface specifications. Follow software lifecycle process when developing software. Help identify solutions to problems encountered in software cycle. Work in an Agile environment (Scrum or Kanban). Conduct new technology research, concept specification and design of individual software components. Design and Develop most effective technical solutions to meet business requirements. Participate in design reviews and recommend improvements. Work on, prioritize, and manage multiple assignments and projects. Provide technical guidance in software design and development activities. Provide trainings and mentor other Engineers when required. Attend team meetings to communicate project status and discuss about new ideas and any issues. Collaborate with team members or other groups across geographies in writing functional, design, interface and test specifications and prototypes, code reviews and automation. Work with QA team in preparing test cases, plans and procedures. Ensure code quality by adhering to the coding best practices, participating in code reviews and following processes setup by the management team to ensure smooth delivery of the product. Ensure product security by fixing network security vulnerability issues and co-ordinate with the Product Security Group to use their techniques/tools to validate the fixes. Work with other Engineers in planning, prioritizing and executing assigned tasks within deadlines. Analyze and troubleshoot application issues in a timely fashion. Product advocate - interact with, and educate other members of the company external to the immediate team and customers. Employer will accept Bachelor’s degree in Computer Science, Engineering or related technical field and 5 years of work experience in job offered or 5 years of work experience in a computer-related occupation.
1. Security Domain: designing and developing security software
2. Secure and defensive coding and security vulnerabilities.
3. Networking concepts : SSL, TLS, DTLS, TCP, UDP, IP, IPv6
4. OOP and writing code
5. C, C++ , Java, Linux, Unix environment
6. Scripting on BASH and Python
7. Database: mysql, maria DB, elastic search
8. Code analysis tools, unit test tools and other good programming practices
9. STL , multi-threading and synchronization
10. Debugging tools: Gdb , tcpdump, wireshark
11. SCRUM Agile Methodology.
12. Software development Cycle.