Brady Corporation Overview
Brady Corporation is an international manufacturer and marketer of complete solutions that identify and protect people, products and places. Brady's products help customers increase safety, security, productivity and performance and include high-performance labels, signs, safety devices, printing systems and software. Founded in 1914, the Company has a diverse customer base in electronics, telecommunications, manufacturing, electrical, construction, medical, aerospace and a variety of other industries. Brady is headquartered in Milwaukee, Wisconsin and as of July 31, 2020, employed approximately 5,400 people in its worldwide businesses. Brady's fiscal 2020 sales were approximately $1.08 billion. Brady stock trades on the New York Stock Exchange under the symbol BRC.
The Senior Embedded Software Engineer is responsible for designing and writing high-quality code to support the development of Brady's hardware products. The senior embedded software engineer will design and implement embedded user interfaces and utilize both hardware and software debugging tools in order to complete projects. The engineer is expected to participate in the designing of solutions that meet customer needs, document the design, write clear concise code, comment code as appropriate, and create documentation outlining code functionality. All engineers are required to follow Brady's development process which includes our iterative development process. Individuals will be responsible for managing the development of large modules as part of a development team. Individuals may utilize other resources in development of technology needed for development of firmware.
Essential Job Functions:
Design, develop, and document modules as part of firmware projects and lead small firmware projects.
Utilize C++ and object-oriented coding techniques, follow coding standards, and follow standard development best practices.
Work with Brady's user experience team to develop user interfaces on embedded devices.
Setup and use software code debuggers for specific processors and development environments used in development of Brady printers.
Direct internal and external resources in firmware development to deliver assigned modules.
Make technology selections for assigned modules that support the overall architecture goals of the organization.
Provide time estimates for assigned deliverables.
Contributes to and maintains automated build and testing systems.
Performs code reviews and follows all development processes.
Performs other tasks as required. Responsibilities include, but are not necessarily limited to, the duties listed on this job description.
Required Knowledge, Skills & Abilities:
Minimum degree in Bachelor of Science in Computer Engineering, Electrical Engineering, Computer Science, related field or equivalent experience.
Minimum of 3 years of experience
Knowledge of Qt or equivalent UI frameworks/libraries.
Knowledge of GUI coding architecture for multiple display sizes and performance.
Demonstrated experience with C++
Demonstrated knowledge of Object-Oriented Analysis and Design
Desired Characteristics: Knowledge, Skills & Abilities
Knowledge of C++11 or higher
Knowledge of CMake.
Knowledge developing software for embedded operating systems such as Windows CE / Embedded Compact, QNX Neutrino, Micrium C/OS, etc. on target hardware
Knowledge and experience with creating and reading UML models
Knowledge reading schematics, utilizing oscilloscopes, logic analyzers, and other test equipment in the development and debugging of firmware designs.
Knowledge of .net and C# programming a plus.
Knowledge of QML.
Knowledge of Python.
Knowledge of OpenGL or equivalent.
Knowledge of application development or GUI development for embedded systems.