Software Engineer IV

HR Pundits
2 days ago

Role details

Contract type
Permanent contract
Employment type
Full-time (> 32 hours)
Working hours
Regular working hours
Languages
English
Experience level
Senior

Job location

Tech stack

Testing (Software)
Adobe Flash
Java
Agile Methodologies
JIRA
Booting (BIOS)
Bugzilla
C++
Profiling
Code Review
Computer Engineering
Continuous Integration
Software Debugging
Linux
Device Drivers
Embedded C
Embedded Software
Emulators
Design of User Interfaces
Hardware Design
Joint Test Action (IEEE Standards)
Visual Basic
Multicasting
Network Protocols
Rapid Prototyping Process
Real-Time Operating Systems
Regression Testing
RS-232
RS-485 Standard
Software Engineering
Software Systems
Subversion
TCP/IP
Wireshark
VxWorks
Multithreading
Serial Peripheral Interface
GIT
Yocto
Integration Tests
Information Technology
Atlassian Tools
Software Coding
Software Version Control

Job description

The Staff software engineer shall lead the development of embedded software for our commercial elevator products. The successful candidate will be capable of leading software solutions across the elevator product domain globally, leading the development of embedded software, field and factory tools, simulation, test and automation activities.

Lead the implementation of the roadmap for embedded software, field and factory tools; provide guidance to firm architectural decisions and lead the execution of best practices for Otis software globally.

Provide mentorship and strategic direction for other engineers to develop global embedded software architecture.

Establish and enforce coding standards and promote code reviews to deliver high cohesion software and nurture technical talent within the team.

Understand and translate business requirements into technical implementation.

Lead integration of cybersecurity features and standard practices into Otis products, improving the security of our embedded software and hardening our products against new risks.

Partner with field customers to improve UI/UX, increasing first time fix rates and average troubleshooting time through improved controller software design.

Participate in project planning, estimation and resource planning for complex tasks involving cross-functional teams.

Adopt automated controller software testing to improve the overall release cycle of software baselines by reducing time impact for regression testing and system level integration testing. Incorporate industry wide standards like CI/CD pipelines, automated system integration testing to strengthen the reliability of controller software.

Lead critical troubleshooting efforts for high value customers with legacy controllers and custom solutions.

Requirements

Experience and Qualifications: Requires advanced knowledge of software engineering typically obtained through advanced education combined with experience.

BS or BA in Computer Engineering, Electrical Engineering, Computer Science or closely related field with a minimum of 12 years of experience or a master s degree in software engineering and a minimum of 10 years of experience.

Proven expertise in all aspects of product development process.

Working experience with all the phases involved in Software Development Life Cycle (SDLC).

Go getter, result-driven, and work independently with minimal supervision.

Experience with Rapid Prototyping and Continuous integration.

Experience leading multiple projects and priorities simultaneously.

Strong embedded C/C++ development experience.

Strong VB.NET or VC# experience for designing of UI/UX simulator tools.

Hands-on development experience with CAN, RS232, RS422, RS485, SPI, I2C, Timers, EEPROM and Flash Driver interfaces.

Experience with source version control systems (Git, Subversion, Atlassian tools).

Working experience with software development methodologies (Agile, Waterfall, Event-Driven, etc.).

Experience with Kernel/Driver development and experience with system and application debugging.

Thorough understanding of embedded systems development and experience with real time operating system (RTOS).

Experience with multi-threaded application and strong real time debugging experience with advanced tools like emulators, logic serial analyzers, remote debugging, scopes, serial line analyzer, JTAG/BDM and CANalyzer.

Understanding of BSP development, device Drivers, and Boot loaders.

Preferred

Experience with Java and Python.

Knowledge in Yocto and other build system.

Experience with network protocols like TCP/IP, UDP, Multicast and practical experience with network profiling tools like Wireshark.

Familiarity with Real Time Operating Systems (Linux, VxWorks, ThreadX, Green Hills, etc.).

Experience on ColdFire and ARM 32 bit microcontrollers.

Experience with defect tracking software such as JIRA, Bugzilla.

Able to understand hardware design and schematics, including electrical 1-line and 3-line at high level.

Able to work in elevator hoistways and machine rooms as needed.

Apply for this position