This position is Sr. Software Developer in Adobe China R&D Lightroom team. Lightroom software provides a comprehensive set of digital photography tools, from powerfully simple one-click adjustments to cutting-edge advanced controls. Create images that inspire, inform, and delight. The role of the Sr. Software Developer is to build industry-leading applications using Adobe technologies, following Adobe software development process. Candidate for this role will be an expert in desktop technologies, fully versed in object-oriented design, and have a deep knowledge of C++. Experience in Mac OS is advantageous. It’s highly desired though not mandatorily required that the candidate have solid experience about using Lightroom.
Responsibilities
Develop high quality code and deliver Adobe Lightroom on schedule.
Work closely with other team members, following agile development process.
Clearly understand the product’s existing architecture and technical roadmap.
Ensure the new features requirements are fully understood and investigated.
Ensure the software design and practices are sufficiently documented and shared.
Ensure the code is fully reviewed and sufficiently verified before check-in.
Provide design estimation if being required by manager.
Bug fixing is needed as part of the development process.
Work collaboratively with both local and remote team members.
Create or updates feature specifications (test and development), writes descriptions of code functionality, and describes problem resolutions in bug reports.
Work independently with minimum supervisions.
Regularly report the status to manager.
Coach and mentor junior team members.
Continuously improve team software development process.
Clearly understand the pros and cons existing architect and know how the code interacts with other parts of the system. Own medium to large feature independently.
Requirements
Bachelor degree or Master degree in Computer Science or equivalent.
3+ years of working experience in software development.
Strong C++ development background.
Good understanding on object-oriented design philosophy and design pattern.
Good understanding or experience in Scrum software development process.
Proficient knowledge in desktop application development.
Ability to analyze, isolate and document complex technical issues.
Ability to work independently.
Being creative and innovative.
Being proactive, positive and self-motivated.
Quick learner and team player.
Fluent verbal and written English communication skills.