What you will do:
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 How you will do it:
What we look for: Required Skills/Experience
- 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.
- 10+ years IT-Software/ Software products
- Bachelors in Science - Computer Science
- Full Stack development experience
- Hands on experience with system programming, development of service/driver type of applications in C#, ASP.NET, and mainstream scripting.
- Understanding of MS technologies including-- Visual Studio.Net, TFS, SQL Server
- 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.
- 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
Johnson Controls is an equal employment opportunity and affirmative action employer and all qualified applicants will receive consideration for employment without regard to race, color, religion, sex, national origin, age, protected veteran status, status as a qualified individual with a disability, or any other characteristic protected by law. For more information, please view EEO is the Law . If you are an individual with a disability and you require an accommodation during the application process, please visit www.johnsoncontrols.com/tomorrowneedsyou .