Johnson Controls is a global diversified technology and multi-industrial leader serving a wide range of customers in more than 150 countries. Our 117,000 employees create intelligent buildings, efficient energy solutions, integrated infrastructure and next generation transportation systems that work seamlessly together to deliver on the promise of smart cities and communities. Our commitment to sustainability dates back to our roots in 1885, with the invention of the first electric room thermostat. We are committed to helping our customers win and creating greater value for all of our stakeholders through strategic focus on our buildings and energy growth platforms. For additional information, please visit www.johnsoncontrols.com or follow us @johnsoncontrols on Twitter. Job Responsibilities
- Architect, Design, Develop and document subsystems and system components consisting of several objects working together to execute an encapsulated function of the larger system.
- Interact with software architects or other technical leader to understand subsystem and component specifications and recommend changes to facilitate efficient and effective development.
- Interact with representatives of other cross functional teams to understand and/or recommend requirements and strategies for the project
- Be able to create abstraction layers that support agnostic architectures and software strategies.
- Bridge the gap between development and quality assurance. Provide testing techniques and strategies for coverage
- Provide technical direction, leadership, and reviews to other engineers working on the same project.
- Be seen as a thought leader for the company.
- Implement and debug subsystems and components.
- Participate in integrated test sessions of components and subsystems on test and production servers.
- Follows automate-first/automate-everything philosophy.
- Determine and communicate the implications of system-level decisions on subsystems and Components, and help determine how best to mitigate or take advantage of these implications.
- Determine and communicate the requirements and capabilities of components within the context of the larger system, project, and team.
- Support management of the team's technical infrastructure (e.g., repository, build system, testing system) under guidance from the systems engineer or another project leader.
- Participate in efforts to share software technology and expertise within the company; mentor junior and aspiring software engineers.
- Perform tasks efficiently and work together with team to ensure project success.
- Review, contribute to architecture artifacts.
- Strong design critique.
- Hands on in multiple programming paradigms, not limited to Object Oriented.
- Hands on experience with system programming, development of service/driver type of applications in C#, ASP.NET, and mainstream scripting.
- Full stack experience is a must.
- Container style of programing preferred - Micro-services
- Experienced across programming languages, patterns and data structures.
- Adequate hands on experience with Multi-Threaded development covering thread synchronization, locks, database concurrency, Good knowledge and experience on WinForms, WCF, WPF technologies.
- Extensive experience on Cloud technologies using AZURE and AWS but also have an agnostic mindset
- Thorough understanding of MS technologies including-- Visual Studio.Net, TFS, SQL Server
- Applied knowledge of Object Orientated programming concept (OOPS), Micro services, Operating System (OS) concept and UML
- Proficient with software Architecture, design patterns and strong demonstrated experience in building frameworks.
- Strong computer science background including distributed computing.
- Good knowledge of software development tools and methodologies.
- Thorough understanding and hands-on experience in the development of all layers of enterprise applications to analyze system scalability, integration, and performance issues as well as internationalization utilizing either Unicode and/or multi-byte databases
- Good exposure of software development life cycle, development process flow and their tools usage
- Must be aware of Agile, Incremental or spiral development methodology
- Excellent diagnostic and troubleshooting skills, problem solving, and an ability to learn quickly
- Domain Knowledge in Electronic Security such as Access Control, Video Surveillance and Intrusion detection is a plus
- Good communication skill to articulate views/thoughts with team and partners or customers without any gap
- Be able to acknowledge and support Project planning and Estimation techniques
- Willingness and Ability to learn new technologies
- Expert knowledge of computer languages, data structures, program design methods and techniques.
- Ability to troubleshoot complex problems systematically
- Overall knowledge of the computing environment at large, e.g. typical uses and user populations of operating systems, communications protocols, hardware platforms, etc
This role will be based out of Westford MA.
- 10+ years IT-Software/ Software products
- Bachelors in Science - Computer Science
- Masters in Computer Science is a plus
A little about us:
We’re shaping the future. Together, let’s make a world that’s safe, comfortable and sustainable. Tomorrow needs you.