Alpine, an ITW company, is looking to increase profitability by delivering software solutions to the construction industry. The Senior Software Developer will be responsible for building and working on applications within Alpine’s suite of software products.
Requirements
- Knowledge and proven experience with various Development Methodologies and Frameworks such as Agile and Scrum
- Complete understanding of multiple SDLC and ability to mentor others on SDLC
- Proficiency with three or more of the following programming languages (expert in 2): C++, C-Sharp, JavaScript, PHP, Python, SQL, Ruby, Java, HTML
- Expert in one or more RDBMS or NoSQL data platforms
- Solid understanding of Computer Science fundamentals
- Expert knowledge and application of SOLID design principles
- Excellent problem solving and strong analytical skills, ability to work on complex development tasks and large modules/features
Responsibilities
- Work with an Agile Scrum team to develop, test, and maintain web and desktop-based applications
- Collaborate with Product Owners and Software Development Managers to help translate business needs into technical requirements and actions.
- Mentor and encourage the use of best practices, application of Computer Science fundamentals and facilitate collaboration within the team
- Prepare software documentation including technical diagrams and manuals on the design, use and operation of the software
- Develop automated unit tests for applications according to company standards
- Analyze and provide solutions to complex technical problems and projects
- Participate in peer review sessions of solutions and related code, ensure software quality throughout the complete SDLC
Other
- Team skills - Collaborate with the team as needed. Able to gain trust from their team, peers, and senior leadership. Provide technical leadership and act as a buddy to new employees.
- Communication - Able to communicate in a clear, concise manner. Able to engage with peers, managers and senior leadership.
- Adaptability – The ability to adapt to unexpected changes or new demands while working on projects or routine coding solutions.
- Analytical – The ability to discover, interpret, and communicate meaningful patterns and separate into logical components or elements.
- Continuous Learning - Actively identifying new areas for learning; regularly creating and taking advantage of learning opportunities; using newly gained knowledge and skill on the job and learning through their application.