This position is in our exciting software team that develops software for the networking, system control and user interface components that powers our 3D computed tomography explosive detection system. These critical components are responsible for managing, persisting and routing scanned images, servicing control and supervisory requests from other parts of the system, controlling electrical, mechanical motions and interfacing with other machineries via PLC and rendering user interfaces using 2D and 3D technologies on multiple platforms including Web, Linux and Windows. These critical components must be highly available, highly scalable and meets strict latency and throughput requirements.
Duties and Responsibilities
You are a motivated software developer who had built complex distributed systems. You've shipped products, tools and modules and is driven by the challenges of solving unique and difficult technical problems, and are never afraid to dive into new territory to learn new things. You have leadership qualities, is versatile and enthusiastic to tackle new problem not only in your own area but across the full stack. You have strong problem solving skills, is adaptable, proactive and always willing to take ownership. You consistently deliver product on time without compromising on quality. You have an excellent sense of technical design, and work well in small self-organizing Agile teams.
What You'll Do:
Be a hands-on contributor designing and implementing C++ libraries and applications
Creating and maintaining tools to validate, test, exercise and providing unit tests and documentation for these components
Delivering projects on-time, within functional and quality spec, all the while communicating clearly with stakeholders
Design, implement, test, maintain and enhance features for new and released products
Work with technical leads, managers and team members to estimate effort and to clarify, negotiate and document scope and design
Mentor more junior team members, help maintain unit test coverage, code documentation, improve software structure and supportability
Stay in tune with software and industry technology trends to ensure our product stays best of breed for present and future
Communicate technical concepts to customers and internal audiences. Collect requirements, describe software features, technical designs and product strategy
Required Skills and Experience
Excellent written and verbal communication skills
Bachelor or Master of Science/Engineering in Computer Science/Engineering or equivalent
10+ years as software engineer designing and implementing complex distributed system
Expert level designing and programming in C++
Strong skills in Python
Deep understanding of object oriented design, design patterns, data structure, algorithms and systems architecture
Extensive experience developing on Linux including build, packaging, debug and profile tools
Strong understanding of state machines
Hands-on experience working on distributed systems with robust analytical and troubleshooting skills
Knowledge of professional software engineering practices for the full software development lifecycle following Agile methodology, coding standards, code reviews, source management strategy, build process and testing
Ability to quickly learn complex software, system and technology
Proven track record of taking ownership and successfully delivering results
Experience in database and basic SQL
Experience with multi-threaded programming
Knowledge of writing device drivers in Linux a big plus
Leveraging and contributing to Open Source projects
Knowledge or experience with NodeJS, CORBA and Thrift, web technologies, continuous integration
At Smiths Detection we are dedicated to making the world a safer place.
Smiths Detection, a division of Smiths Group, is a global authority on the application, management and manufacture of world class detection and screening technology.
We deliver solutions needed to protect society from the threat and illegal passage of explosives, prohibited weapons, contraband, toxic chemicals, and narcotics. Delivering an unrivalled range of detection technologies, we support customer from markets across air transportation, ports and borders, the armed forces, and critical infrastructure and emergency services.
Smiths Detection is an EEO/AA Employer/Vet/Disabled. Must be eligible for a US Security Clearance.