Job Description
POSITION SUMMARY
As a Software Engineer, you will work closely with the Engineering team to innovate, research, and develop code following coding standards and adhering to designs supporting internal business requirements and/or external customers.
ESSENTIAL DUTIES AND RESPONSIBILITIES
The following duties are normal for this position. This list is not to be construed as exclusive or all inclusive. Other duties may be required and assigned.
- Designs, documents, develops, tests, optimizes, and maintains software systems for use by internal staff and external customers.
- Creates scripts for the automation of internal processes and reporting.
- Uses experience from a wide variety of platforms (Windows, Mac, Linux) and technologies (e.g., C# DotNetCore, JavaScript, Angular, SQL, HTML, CSS, SASS, database design, streaming data platforms and systems, Kafka, and other languages and technologies as necessary) to accomplish goals.
- Performs basic maintenance and system administration on application servers
- Follow industry best practices, leveraging appropriate software design patterns
- Review and provided feedback on product requirements, visual designs and testing plans.
- Communicate and coordinate activities with engineering departments including Product Management, Quality Assurance, DevOps and other engineering teams.
- Provides technical product improvement suggestions to improve quality, performance, maintainability.
Qualifications
To perform this job successfully, an individual must be able to perform each essential duty satisfactorily. The requirements listed below are representative of the knowledge, skills, and abilities required. Reasonable accommodations may be made to enable individuals with disabilities to perform the essential functions.
- Develop software using an agile methodology. This entails:
- Iterative development over 2-week sprints
- Extensive use of TDD
- Pair programming as needed
- Work with tools such as Visual Studio, git, TFS, and SQL Server
- Work with the latest .NET frameworks, including .NET Core and ASP.NET Core
- Work on systems centered around microservices and APIs written in C#
- Performs other related duties as assigned by management
- Bachelor’s degree in computer science, information systems, computer engineering, systems analysis or a related discipline, or equivalent work experience
- C# DotNetCore, HTML, CSS, JavaScript
- Experience with SQL Server
- Experience developing secure, RESTful APIs
- Experience with Microsoft Azure is a plus
- Excellent analytical and problem-solving skills
- Strong, clear written and verbal communication skills
- Experience with mobile platform development (iOS and Android) is a plus
COMPETENCIES
- Forward Thinking - Anticipates how individuals and groups will react to situations and information and plans accordingly. Anticipates the consequences of situations and plans accordingly. Notices trends in the industry or marketplace and develops plans to prepare for opportunities or problems. Anticipates possible problems and develops contingency plans in advance.
- Drives Performance - Develops challenging but achievable goals. Maintains commitment to goals in the face of obstacles and frustrations. Finds or creates ways to measure performance against goals. Has a strong sense of urgency about solving problems and getting work done. Creates momentum and drives behavior change when necessary.
- Adaptability - Adapts to new ideas and initiatives across a wide variety of issues or situations. Adapts interpersonal style to highly diverse individuals and groups in a range of situations. Supports major changes that challenge traditional ways of operating. Anticipates change in order to adapt own plans and priorities.
- Fosters Teamwork - Assumes additional responsibilities to facilitate the achievement of team goals. Seeks input from other team members on matters that affect them. Shares all relevant information with others.
- Open + Transparent Communication - Recalls others’ main points, taking them into account in own communication. Checks own understanding of others’ communication (e.g., paraphrases, asks questions). Elicits comments or feedback on what has been said. Maintains continuous, open and consistent communication with others.
- Technical Expertise - With guidance, completes common tasks, which present limited difficulties. Reads standard documents to extract key information. Assists team in carrying out complex tasks.