Software Engineer

Location: Mountain View, CA

Ref#: 1648.64

posted: 21-Dec-2018

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. Develop software in a fast, agile environment on a scalable and high performance deep traffic inspection security product. Work on product feature development which involves gathering requirements, design of the software modules needed (with particular emphasis on performance and scale), coding and automated testing. Work effectively with technical leads and peers within the team. Work on product software maintenance by doing incremental fixes in the software. Help identify performance and architecture improvements in the software modules, research and come up with new designs. Employer will accept Bachelor?s degree in Computer Science, Engineering or related technical field . Position requires coursework, project, internship in the following: 1. C and Python programming languages; 2. http proxy technologies and different access methods - explicit proxy, reverse proxy. As well as VPN technologies (e.g., IPSec); 3. ICAP protocol used on proxies for content inspection; 4. Regular expressions for pattern matching and data extraction; 5. Linux and Operating Systems fundamentals - virtual memory, memory management, multi-threading issues, socket programming and IPC mechanisms; 6. TCP/IP stack, SSL/TLS and http protocol. Debugging traffic issues end-to-end - from a PC all the way to the web-server, using different packet capture tools, including ones that can do SSL decryption; 7. custom rules language and parser used for deep inspection of HTTP traffic; 8. Layer4/layer5 load-balancers, for HTTP traffic; 9. Webstack technologies (e.g., Django stack) and how the different components interact; 10. Relational and non-relational Databases as well as in-memory key-value stores (e.g., redis); 11. Cloud-based tools for monitoring a cloud service - splunk, wavefront or similar products; and 12. Building a multi-tenant service and tenant separation in the various modules.