Previous Job
US | Software Engineer-Developer / Software Engineer
Ref No.: 18-04562
Location: Warren, Michigan
Start Date: 10/22/2018
Role: Software Engineer Lead - iOS Developer
Work Location: Warren, MI

1) Describe your experience with Test Driven Development on a production application.
2) Describe a part of the iOS SDK you learned recently. What excited you about it? How did you go about it?
3) Describe your experience with React Native.
4) Technical Question

Develop a sample app to demonstrate your expertise in test-driven development, object oriented design, and the iOS platform.

Please submit a .zip file of the xCode workspace containing all tests and code.

The code must be written in Objective-C.

The app should allow the user to choose a city and state and view the 3 day weather forecast. The forecast for each day should display the high temp, low temp, and textual description.

Use a free weather web service of your choice.

Work with a team of software craftsman creating mobile experiences that General Motors customers love. Have an impact shipping your code to millions of customers around the globe who drive Buick, Cadillac, Chevrolet, GMC, Opel and Vauxhall vehicles. The GM Global Product Development Team is seeking ambitious and creative software engineers who will contribute to the development of applications that are downloaded to a phone. (Learn more at )

Key Responsibilities:

You will be involved in all aspects of developing new features including user story elaboration, estimation, analysis, design, programming, unit/integration testing and debugging following Agile development practices such as Scrum and Extreme Programming (XP). In this highly collaborative, cross-functional, and Agile environment, you will...
• Build industry leading mobile apps for connected vehicles on a global scale
• Elaborate, estimate, and design for small increments of work...just-in-time
• Commit to completing well-defined work and deliver on those commitments
• Swarm around tasks along with other Scrum team members
• Perform technology evaluation and design spikes
• Test-drive code (Test Driven Development)
• Pair program with different people in many situations
• Report status of assigned software development tasks
• Consistently follow the specified software development methodology
• Model courageous and continuous learning to the team. Actively help team members continuously learn
• Promote improvements in programming practices such as functional/acceptance test driven development, continuous integration, and test automation
• Continuously learn and challenge the organization concerning new practices, processes, technologies, and languages
• Build a strong team using their collaboration skills.
• Provide leadership and assistance among and across teams/organizations
• Prospective candidates possess a high degree of business insight, creativity, decision making skills, a drive for results, the ability to negotiate, the ability to develop peer relationships, and a strong technical learning capability.

• Experience developing commercially available native applications for the iPhone, iTouch, and iPad devices.
• Experience developing with the following...
• Swift
• Objective C
• Web Services Integration (REST, RPC, and/or SOAP)
• Asynchronous Networking
• UIKit
• Foundation classes
• Notification center
• Proven experience with object-oriented design and design patterns
• Experience using source code control systems, such as Git, Subversion, or CVS
• Knowledge of and desire to work in an Agile development environment
• Excellent verbal and written communication skills required
• Creative problem-solving skills and ability to effectively communicate and translate feedback, needs and solutions
• Must have strong teamwork orientation and the ability to foster collaboration within and across teams
• Needs good work ethic and strong sense of ownership of end result

• Experience with Agile development methodologies including XP methods such as Test-Driven Development and pair programming
• Awareness of the iPhone HIG and best practices
• Experience developing in React Native
• Reactive Cocoa
• Bluetooth Low Energy
• Watch OS
• MapKit

• BS in Computer Science or other related field of study

• 3 - 10 years of experience as a software developer on production project
• 2 years of experience as a iOS software developer on production Mobile project
• Experience with React Native developmen