B2B Software Engineer
Santa Clara Valley (Cupertino), California, United States
Software and Services
Imagine what you we could do together. At Apple, new ideas have a way of becoming excellent products, services, and customer experiences very quickly. Bring passion and dedication to your job and there's no telling what you could accomplish. Apple's B2B/EDI team manages critical integrations with Apple's external partners such as Manufacturers, logistics providers, banks, resellers and business customers. We are seeking a technically hands on individual with a real passion for programming and automation. The individual will design and build core services for our Java based B2B platform using modern technologies such as object storage, NoSQL databases. The position also requires building tools to lead infrastructure as code.
- Strong programming experience in Java building web, middleware or backend applications.
- Deep understanding of Oracle or similar relational databases and NoSQL databases such as MongoDB.
- Firsthand experience in performance tuning of applications and databases.
- Strong experience in building web services.
- Knowledge of HTTP/S, TCP, DNS, web application load balancing.
- Deep understanding of basic security concepts and protocols - authentication, authorization, signing, encryption, SSL/TLS, SSH/SFTP, PKI, X509 certificates and PGP.
- Some knowledge of Python and a scripting language such as Perl/bash preferred but not required.
- Knowledge of Webmethods Integration server will be a plus.
- Experience with a DevOps tools such Ansible/Puppet will be a plus.
This is a development role focused on improving and scaling our B2B platform. You will be designing an developing frameworks written primarily in Java that process high-demand supply chain and financial transactions for Apple's B2B partners. You will be improving the current B2B platform to replace existing RDBMS and file based persistence to NoSQL and S3 like object storage technologies. You will also be crafting solutions to optimize availability and consistency for applications deployed across multiple data centers. You will be developing or enhancing custom frameworks for managing persistence, event processing, uniqueness, transaction correlation and notifications. In addition you will be helping the team automate the deployment, configuration and monitoring of applications. You should have a passion for programming and a good conceptual understanding of the operating environment - JVM, Operating System, File Systems, Network Protocols. You will be working closely with domain specific project developers, operations and systems engineers. Technical expertise, strong communication skills and teamwork are essential requirements for this role as it involves working with both technical and non-technical groups within Apple.
Education & Experience
Bachelor's degree in Computer Science or Engineering discipline with extensive experience in developing software platforms and or leading infrastructure.