General Electric Senior Software Engineer in Stellenbosch, South Africa
Job Description Summary
Responsible for designing, building, delivering and maintaining software applications & services. Working in the areas of machine, cloud, platform and/or application. Responsible for software lifecycle including activities such as requirement analysis, documentation/procedures, implementation and quality assurance.
Works independently and contributes to the immediate team and to other teams across business. You will also contribute to specification and design.
Roles and Responsibilities
In this role, you will:
Be responsible for defining, developing, and evolving software in a fast paced and agile development environment using the latest software development technologies and infrastructure
Provide technical leadership as part of an agile team
Translate requirements / vision into prioritized list of user stories and deliver to required timelines and quality standards
Drive increased efficiency across the teams, eliminating duplication, leveraging product and technology reuse
Support process improvements which guide the development, sustaining & support activities
Work cross functionally with other business departments to align activities and deliverables
Drive world-class quality in the development and support of products
Collaborate with system engineers, frontend developers and software developers to implement solutions that are aligned with and extend shared platforms and solutions
Apply principles of SDLC and methodologies like Lean/Agile/XP, CI, Software and Product Security, Scalability, Documentation Practices, refactoring and Testing Techniques
Write code that meets standards and delivers desired functionality using the technology selected for the project
Build and test features such as applications, web services, front-ends and queries on existing tables
Understand performance parameters and assess application performance
Work on core data structures and algorithms and implement them using language of choice as relevant
Proactively share information across the team, to the right audience with the appropriate level of detail and timeliness
Bachelor's Degree in Computer Science or “STEM” Majors (Science, Technology, Engineering and Math) with extensive experience as a senior software engineer.
Required Technical Expertise:
Extensive experience with the following programming languages: C++, C#
Extensive experience with the following database management systems: MS SQL Server
Extensive experience with relational database design and writing and maintaining efficient queries using SQL
Experience with modern tooling (Maven, Git, Jenkins)
Extensive experience with MS Visual Studio (or MS Visual Studio Code)
Extensive experience with developing client/server applications and services for MS Windows Operating Systems.
Experienced in building features such as web services and Queries on existing tables.
Experienced with methods and practices such as Lean/Agile/XP, etc.
Experienced in an agile environment and cross-functional Scrum team
Experienced in continuous integration (CI).
Understands the the impacts of technology choices to the software development life cycle.
Additional Beneficial (Optional) Technical Expertise:
Experience with the following programming languages: Python, Java
Experience with developing and maintaining software and services for Linux
Experience with the following database management systems: Postgres, MySQL, Oracle
Experience with front-end technologies such as BackboneJS, EmberJS, KnockoutJS
Experience with modern tooling (Gradle, SVN, Git)
Experience with database tools (JPA, Hibernate,JDBC, Spring Data)
Experience with modern IDEs such as Eclipse
Demonstrates the initiative to explore alternate technology and approaches to solving problems
Skilled in breaking down problems, documenting problem statements and estimating efforts
Demonstrates awareness about competitors and industry trends
Has the ability to analyze impact of technology choices
Displays understanding of the project's value proposition for the customer. Shows commitment to deliver the best value proposition for the targeted customer.
Ability to take ownership of small and medium sized tasks and deliver while mentoring and helping team members
Ensures understanding of issues and presents clear rationale. Able to speak to mutual needs and win-win solutions. Uses two-way communication to influence outcomes and ongoing results
Identifies misalignments with goals, objectives, and work direction against the organizational strategy. Makes suggestions to course correct
Continuously measures deliverables of self and team against scheduled commitments. Effectively balances different, competing objectives
Strong oral and written communication skills
Strong interpersonal skills
Effective team building and problem solving abilities
Persists to completion, especially in the face of overwhelming odds and setbacks. Pushes self for results; pushes others for results through team spirit
Relocation Assistance Provided: No