Software Developer - EE
Santa Clara Valley (Cupertino), California, United States
Do you have a passion for invention and self-challenge? Do you thrive on pushing the limits of what’s considered feasible? As part of our Battery Engineering group, you’ll help craft creative battery solutions that deliver more energy in smaller spaces than ever before. You’ll work across disciplines to transform improved hardware elements into a single, integrated design. Join us, and you’ll help us innovate new battery technologies that continually outperform the previous iterations. By collaborating with other product development groups across Apple, you’ll push the industry boundaries of what batteries can do and improve the product experience for our customers across the world. Our Engineering Team is responsible for architecting, specifying and realizing advanced development environments and testing tools. You will be a key technical contributor and will utilize your in-depth software and scripting engineering skills to conceive, specify and realize state of the art test and development suites to enable the next generation systems.
- Typically requires at least 8+ years of hands-on software design experience. Individuals with more experience may assume additional responsibilities.
- In-depth software design engineering experience including development and validation.
- Understanding of embedded microcontroller organization including peripheral register mapped accessories/functions.
- Experience with Unix platforms, Mac OS.
- Experience with software revision control tools such as SVN and Git.
- Solid understanding of communication buses like Ethernet, I2C, USB, UART, single wire communication and communication sniffers and related hardware.
- Experience working with engineering test instruments like DVMs, power supplies, electronic loads, function generators, oscilloscopes, logic and spectral analyzers, data acquisition systems and data loggers.
- Experience with Mac OS development: Objective C/Swift, C, C++, Python
- Ability to communicate well with multi-functional and multi-disciplinary team members and collaborate efficiently to achieve project goals.
- Software design in any of these areas is considered a plus: Macintosh environment, Socket, client-server programming, GUI web development, embedded programming of microcontroller and FPGA’s, digital filters and statistical software analysis, software control systems and advanced math.
•Brainstorm, architect and develop software design concepts. •Utilize your creative side in developing software solutions while applying engineering principles of computer science, programming, scripting and software test and validation. •Generate innovative designs taking into consideration system specification, proven architectural and programming guidelines and coding standards. •Craft software solutions to automate various types of electrical instrumentation including data acquisition, instrumentation control, data gathering, storage, analysis and visualization. •Develop application and web based front-end graphical user interface designs for user interaction, data display and visualization. •Validate software and verify it meets expected performance and stability. •Conduct technical design reviews with peers and partners to ensure software functionality, usability, traceability and maintainability. •Work closely with internal multifunctional engineering teams. •Work with and lead interaction with consultants and third party vendors, to gather and generate requirements, propose system architectures and develop software systems and interfaces.
Education & Experience
Required: BSCS or BSEE Degree Preferred: MSCS and MSEE Degree