Overview:
Software Engineers are responsible for the design, development, maintenance, testing and evaluation of a new or modified software product. They are responsible for the entire application lifecycle from research and design to implementation, training and support. Software Engineers are often given more complex tasks and aid with research and design on difficult or time sensitive projects or issues. They are also tasked with mentoring new Software Development Engineers.
A Software Engineer will work tightly with their leadership in understanding requirement and project timelines. Working with Software Engineers to ensure best practices, adherence to software standards and sound technical decisions are made and implemented while ensuring that software designs adhere to the architecture design and department standards.
Duties & Responsibilities:
Be a champion for department initiatives and values ensuring all actions promote the department's mission statement
Determine operational feasibility by evaluating analysis, problem definition, requirements, solution development, and proposed solutions
Work with other developers, analysts, project managers, QA and others to develop enterprise-level software products adhering to best practices and established standards and practices
Mentor software engineers on design principles, engineering practices and be resourceful
Ensure software solutions are reviewed, documented and unit tested prior to handing it over to QA
Prepare and install solutions by determining and designing system specifications, standards, and programming
Document and demonstrate solutions by developing documentation, flowcharts, layouts, diagrams, charts, code comments and clear testable code
Improve operations by conducting systems analysis and recommending changes in policies and procedures
Communicate in a professional manner when interacting with coworkers and external customers
Participate in internal and external technical reviews, as required
Other duties and projects as assigned
Skills Required:
Excellent time management, resource organization and priority establishment skills, and ability to multi-task in a fast-paced environment
Ability to work independently and as part of a team
Robust understanding of OOPS and design patterns
Can work quickly and efficiently with moderate supervision
Demonstrated skills and abilities needed to coordinate, facilitate, and participate in a collaborative approach to the completion of tasks or assignments
Experience as a .NET developer
Knowledge of OOP and the Microsoft stack: C#, .NET 5, ASP.NET, MVC 5
Experience working with a relational database like SQL Server and stored procedures
Experience working with RESTful and/or SOAP APIs, Web API 2 is a plus
Familiarity with a JavaScript frameworks such as Knockout, Vue JS or Angular
Familiarity with a CSS framework, such as Bootstrap
Familiarity using source control such as Team Foundation System
Strong understanding of relational database design concepts
New Core Value: To work here, you must be:
Humble self-aware and respectful
Effective measurably move the needle& immeasurably add value
Adaptable innately curious and constantly changing
Remarkable stand out in some way
Transparent openly and honestly sharing knowledge
3 to 5 years experience with software development post BE/B.Tech, ME/M.Tech or MCA
Must have experience with C#/.NET
Must have experienced with Angular, Typescript, HTML5 and CSS
Experience with SQL is required
Should have experience with Web API 2
Must have experience in design and development of enterprise class software solutions
Passionate about technology and application development
Should have worked with Scaled Agile Framework
Should have worked on Azure, Docker and Kubernetes