Advisory Software Engineer
||Lenovo is the No.1 leader in the global PC market and is seeking an engineering to contribute to our PC/Smart Device Software. Our agile teams focus on hardware integration, apps, and cloud software to provide an industry leading PC and Smart Devices. A successful candidate will thrive in a fast-paced team environment and is passionate about building software the 'right' way while teaching that software craftsmanship mentality to others.
- Report to: 1
- Subordinates: None
- Number of Peers: 5
■Roles and responsibilities
- Software architecture crossing multiple layers (System level software, Windows App and Cloud solution).
- Define appropriate engineering work stream, quality and delivery timeline with Scrum Master
- Lead implementation work, hold design review, advice and suggestion for issue debugging
- Ensure delivery of high-quality software from you and your team by writing clean code, utilizing automated unit tests, continuous integration, and code reviews.
- Translate business and functional requirements into documented user stories, technical tasks, and / or diagrams (sequence, use case, class, etc).
■Key Interaction with:
- Development team
- Operating system/System component/Sensors suppliers
- Quality Assurance
- Marketing team
- UX Design team
||■Must Have – Essential
- Bachelor’s Degree in Computer Science or related field
- 10+ year related work experience
- Hands-on software development and implementing complex software that has been successfully released to customers.
- Experience in Windows software development
- Strong implementation skills in, at least, one modern object-oriented programming language, C++, C# or Java
- Deep understanding of Windows OS Architecture
- Proficiency in verbal / non-verbal business level communication in English
- Understanding of professional agile software development best practices including coding review, source control (Git), build process
■Good to have - Desirable
- Experience in non-Windows development, i.e. Cloud microservice development in Java / TypeScript / Node.js / Angular, Android software development.
- Working with system-level software (Firmware, BIOS, Device Driver).
- Robust software design in C# or C++ using the latest object-oriented software methodologies.
- Familiarity of variety of Microsoft Technologies (Win32, COM, .Net, WPF, UWP, Azure etc).
- Strong passion learning new technologies.
- Strong problem solving, communication, presentation and interpersonal skills
- Clear professional communication skills contributing the team and productivity