POSITION SUMMARYThis position is for an active and hands on manager for one of our mobile teams. This manager will be responsible for both day-to-day management tasks for a number of iOS developers as well as taking the lead for the cross platform team as a whole.While this is a manager position, it is expected that the candidate will remains an active and hands-on developer, involving both the creation of new world class features as well as on going maintenance and bug fixes for one of the most popular applications in Apple’s App Store and the premier mobile application for the consumer weather category.The candidate will have the opportunity to help drive, shape, and build the #1 weather application on all mobile devices as well as lead in the development, technical design, and architecture for upcoming new products for both iPhone, iPad, Apple Watch, and Apple TV as well as other emerging technologies including cognitive applications for the mobile space.The Weather Company, an IBM Business, is committed to delivering quality, world-class applications for a global market. As such the candidate should have a solid understanding of Agile software development, Test Driven Development, and be able to work well in a cooperative and collaborative environment. Additionally, the candidate should be able to show a clear understanding of and demonstrable abilities in finding code defects using a debugger and debugging techniques, as well as being able to optimize code for performance using a code profiler when appropriate. An understanding of code refactoring techniques is also expected.In addition to participating in code reviews, the candidate will be expected to set the standard for the team in terms of establishing code quality. This includes unit and UI tests and producing understandable documentation. Emphasis will be placed on developing scalable, efficient, elegant, readable, and maintainable source code. The candidate must be willing and able to mentor and train the developers on the team and must be able to participate in the hiring process.A expert grasp of basic programming techniques and principles as well as aan expert understanding of various iOS technologies and frameworks such as UIKit, MapKit, CoreLocation, Xcode, and Instruments is required. While a strong basis in Objective-C is useful and necessary, we are placing a heavy emphasis on developing new code using the Swift language and as such the candidate should have a solid grasp of the both the Objective-C and Swift languages. An understanding of basic iOS, tvOS, watchOS, and MacOS principles is required.The ability to work in a Continuous Integration and Continuous Deployment environment is required. RESPONSIBILITIESManage a team of 3-7 iOS developers.Design, develop, and maintain the next generation of applications based on product user feedback, strategic goals and customer/product/team collaborationCreate reusable libraries and user interface components that encapsulate commonly used behaviors.Work closely the product, design, and quality assurance leads to define and implement various discovery tasks for new products and/or features.Help refine the quality of the user experienceHelp maintain existing software applications through product enhancements, performance improvements, and increasing scalability.Create and maintain unit tests leveraging all available toolsDesign with test scenarios in mind (TDD)Provide assistance to others in localizing and correcting software defects.Monitor applications for performance, availability, throughput, and application workflowWork with the product and design teams to help determine the most optimal way to implement a given products visionParticipate in agile team discovery process: communicate feasibility of all solutionsAdd value during team retrospectivesPerform timely and meaningful code reviews of peer developed solutions
Bachelor's Degree (or equivalent) in Computer Science or related field5+ or more years’ experience developing software in Objective-C, Java, C, C++, or C#Minimum 5 years programming experience with the iOS platform or equivalent education.Experience in iterative software development environments (Agile, Kanban)Experience with Test-Driven Development, Continuous Integration and other Agile practices Comfortable using Apple's XCode for software developmentComfortable in using standard debugging techniques such as logging, LLDB, and/or Instruments to localize and correct software defects.Understanding of the challenges related to mobile development including battery and radio usage as well as CPU and memory constraints.Understanding of common design patterns including Model-View-Controller.
The Weather Company