Sr. Software Engineer
Santa Clara Valley (Cupertino), California, United States
Do you have a passion for invention and self-challenge? As part of our Battery Engineering group, help craft creative battery solutions that deliver more energy in smaller spaces than ever before. We work across subject areas to transform improved hardware elements into a single, integrated design. Join us, and help us innovate new battery technologies that continually outperform the previous iterations. By collaborating with other product development groups across Apple, 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 electromechanical test and automation apparatus. Be a key technical contributor as you utilize your in-depth software engineering skills to conceive, specify and realize state of the art test apparatus as we enable the next generation systems!
- 8+ years of related experience.
- In depth software design experience including development and validation
- Solid understanding and experience of Python and C programming languages
- Experience with software revision control tools such as SVN and Git.
- Good understanding of equipment control and automation using Python
- Familiar with DLL development on Windows using C
- Understanding of bench equipment (power supplies, function generators, electronic loads, O-scopes, data acquisition systems, data loggers, etc…)
- Firm understanding of communication buses like Ethernet, I2C, USB, UART, RS-232, single wire communication, sniffers and related hardware.
- Excellent written and verbal communication skills with ability to clearly present data
- Ability to explain sophisticated system issues.
- Self-motivated with excellent time-management skills and ambitious spirit.
- Proficient using a variety of productivity tools.
- Ability to work in close partnership with a multi-functional team of professionals.
- Desirable technical skills:
- Desktop or web UI development experience (QT/React/Angular experience a bonus)
- Experience with embedded systems development (ARM Cortex-M family experience preferred)
- Knowledge of database creation and implementation
- Experience with software design engineering in any of these areas is considered a plus: Macintosh environment, GUI web development, embedded programming of microcontroller and FPGA’s, digital filters and statistical software analysis, software control systems and advanced math
- Knowledge of networking
In this position, you will use your software engineering skills to design and develop utilities for custom and off-the-shelf test equipment and test tools. You will also work with engineering team or third-party vendors to realize your vision. Once realized you will verify the proper performance of the apparatus. The ideal candidate is an excellent software engineer with background and experience in complex manufacturing test equipment, automation, calibration, data acquisition, data management, analysis and reporting. • Brainstorm, architect and develop software design concepts. • Utilize your creative side in developing software solutions while applying engineering principles of computer science, programming, scripting, 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 • 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 with users of equipment to ensure it is implemented accurately • Help to design and develop custom equipment for a manufacturing environment • Develop detailed design validation plans • Collaborate with a multi-functional team of specialists.
Education & Experience
BSECS or BSEE Degree MSCS or MSEE Preferred but not required