Design, develop, modify, and implement software programming for products (both internal and external) with focus on surpassing customer expectations, on achieving high quality and on-time delivery. Responsible for ensuring the overall functional quality of the released product on all required platforms and mechanism. Ability to understand complex products, solutions, and problems. Creates, documents, and executes software designs which may involve complicated workflows or multiple product areas. Technical lead of one or more projects within one area of a product. Provides input to the technical direction for one area of a product. Occasional consults with customers in regard to future upgrades and products. Able to solve complex technical problems. Provides specialized expertise within multiple systems, software disciplines, as well as general knowledge of related disciplines, applications implications, and customer areas. Works with minimal supervision on complex projects with wide latitude for independent judgment. Highly skilled with extensive proficiency and technical expertise.
Responsibilities and Skillsets
The person in this role will be developing software in the Innovation and Research team. The software development activity could be prototype code, researching an emerging technology, developing applications and microservices, testing harnesses, DevOps pipeline steps, and cloud development technology. The person in this role will be on an Agile Scrum team, and will participate a daily scrum meeting, updating story tasks, and providing daily updates to the team.
Documenting design, testing, or story details for a proposed implementation of a software feature or service
Reporting out research findings to the broader team or organization
Implementing software ideas
Writing stories for software implementations
Writing test code for validating software implementations
Developing DevOps pipeline steps and/or DevOps tooling
Agile Scrum activities (daily scrum, updating stories and tasks, sprint reviews)
Research into a new software technology
Required Knowledge/Skills, Education, and Experience
Bachelor’s degree in Computer Science/Information Technologies
Experience: Minimum of 8 years of experience in software development.
Solid Computer Science fundamentals in object-oriented design, data structures, algorithms, and problem solving
Proficiency in a modern programming language, preferably in C#
Microservice Architecture (modern cloud architecture)
Ability to work well with a team in a fast paced, dynamic, agile development environment
Excellent written and verbal communication skills
Experience with containerized application with preferable with Kubernetes
Experience with relational databases PostgreSQL, SQL, Oracle etc.
Preferred Knowledge/Skills, Education, and Experience
Knowledge of professional software engineering best practices
Experience with .net and asp.net ecosystem
Knowledge of Cloud Platforms (AWS, Azure, Google)
Knowledge of front end framework preferably in Angular, React etc.
Strong time management skills and the ability to be self-directed
Experience with service-oriented architecture and web application/services development
Experience building complex, scalable, high-performance software systems that have been successfully delivered to customers
Comfortable with the Linux command line and Git
Sharp analytical abilities and design skills
Experience with distributed computing and enterprise-wide systems
Experience leading and mentoring junior software engineers, and make them more effective, product software engineers
Experience with ORM e.g. N-Hibernate and Entity Framework Core
Experience or knowledge of GRPC, Inter process communication
Experience with enterprise messaging applications.
Experience with any unit test framework
Knowledge of Visual Studio, Other IDEs