Description
The Security team is building and enhancing a cloud platform for various network security controls and management. Our mission is to develop highly-available and performant distributed systems to provide security at the network level in public clouds, including micro segmentation, L3/4/7 DDoS prevention. Our scope is a wide range of compute substrates, VMs, and containers.
This is a great opportunity for ambitious engineers that want comprehensive technical growth on three coordinates:
Development: architecting and coding solutions in any of distributed systems (highly available microservices), systems programming (hypervisors and kernel agents), or user interfaces.
Security: experimenting with access control and network security policies, packet filtering techniques, managing and monitoring communication among services, or DDoS prevention at the application layer.
Networking: exploring and implementing software solutions at various OSI layers and devices, from physical hosts to hypervisors and containers.
If you excel in any of these areas and are passionate to learn about the others, this is an awesome role to make a significant technical and business impact while operating on one of the largest cloud platforms in the world.
Responsibilities
Architect and implement distributed systems to deliver security controls at the network level in Salesforce’s public and private clouds. Such solutions cover but are not limited to network policy management, ACLs enforcement, DDoS and network protection for containers.
Develop software solutions and microservices to support our network security platforms in public clouds.
Research and implement new networking security solutions and platforms for intra- and cross-datacenter network flows
Advance and operate these security scanning platforms in a full DevOps model
Operate in an Agile development environment, including participating in daily scrums
Support the team’s engineering excellence by performing code reviews and mentoring junior team members
Requirements
-
Industry experience: 15+ years including:
10+ years’ experience in SaaS, PaaS or IaaS software development
5+ years’ experience in a high-availability 24/7 environment (cloud platforms are a plus)
Education: ME/M.Tech in Computer Science/Engineering or BE/B.Tech. in same disciplines with equivalent years of experience
-
Network Security: Hands-on expertise in building or managing software platforms for network security, including segmentation, ACLs, DPI, DDoS protection. Examples include:
Software: iptables, ipsec, VPN, IDS
WAF/OWASP protections etc
-
Networking: Industry-level expertise in any of the following networking aspects
VM and containers network stacks (OpenStack’s Neutron, Cilium, Romana)
Network control planes and agents (Calico, Flannel, Contiv, Contrail, OVN)
OSI model and debugging network traffic
Networking protocols (TCP/UDP, BGP, DNS, DHCP)
Datacenter network architecture at software platform and hardware devices (NAT, VXLAN, overlay/underlay)
Programming: Proficiency in object-oriented and multi-threaded programming in at least one of the following languages: Golang, Java, C++, Python
Platform development: Proven track of designing and coding large-scale PaaS or IaaS systems, especially for public cloud providers (e.g., AWS, Azure, GCP)
Software design: Demonstrated expertise in applying systems patterns (e.g., Client-server, N-tier, Master/Slave, MVC) and API constructions (e.g., Swagger, OpenAPI)
Operating systems: Development and software management on Linux systems (e.g., CentOS, RHEL)
Security: Strong knowledge in security fundamentals: authentication/authorization frameworks (e.g., SSO, SAML, Oauth), secure transport (e.g., SSL, TLS), identity management (e.g., certificates, PKI)
DevOps mindset and strong ownership over owned code (test, monitor, deploy, maintain)
Communication: Excellent oral and written communication skills
Team: Ability to value team success beyond personal contributions
Desired Skills/Experience
-
Distributed systems: Expertise in designing, implementing and operating distributed systems architectures and concepts, including any of the following:
High-performance, high-availability (99.999%) and self-recoverable systems
Control, orchestration and automation platforms
RPC frameworks (e.g., Protobuf/gRPC, Thrift, Bond)
Consensus and consistency frameworks (e.g., Paxos, Raft, strong/eventual consistency)
Data-processing systems (e.g., Lambda architecture, Kafka, RabbitMQ, ELK)
Storage solutions (e.g., Cassandra, MongoDB, Hadoop, Redis, Zookeeper)
VMs/Containers: Hands-on experience with VMs and container technologies (e.g., OpenStack, Docker, Kubernetes)
Full-software ownership from idea to running in production: design, code, writing unit tests, performing integration tests, deploying to production, supporting the system in the production environments
