What are the responsibilities and job description for the Senior Software Engineer position at Clever Devices Ltd.?
As THE leader in transit technology, Clever Devices' vision is to make meaningful contributions to worldwide mobility. Our goal is to be the leading provider of exciting technology that improves the quality of mobility in communities around the world. We are continuing to grow, and are looking for a Senior Software Engineer to join our team
Technology Stack
The primary technologies used in this position are C#, ASP.NET, NET Core, WCF, MVC, MVVM, WPF, RESTful Web Services, Web API, multi-threading, LINQ, data structures, writing SQL queries and stored procedures, NoSQL, unit testing, TCP and sockets, Windows Services, Windows Forms, HTML/JavaScript, TypeScript, jQuery, Angular 6 or later, Docker.
Primary Responsibilities
- Write maintainable, clean, re-usable, object-oriented, and efficient programming code in compliance with department standards and templates.
- Work within source control utilizing branching, merging, proper check-in procedures, and passing of continuous builds to ensure that software is always releasable.
- Practice Test Driven Development (TDD) and ensuring that unit tests are created prior to writing programming code and that any programming code is structured in such a way to maximize testability.
- Resolve software bugs in the programming code and modify unit tests to prevent future regression.
- Perform various types of testing including black box, white box, integration, functional, systems, sanity, smoke, regression, acceptance, stress, load, performance, usability, installation, recovery, security, compatibility, and more on software systems.
- Work within the context of department processes and procedures
- Peer review programming code and participate in code reviews.
- Learn and understand the technical details of all relevant products and having hands-on familiarity of the system as required.
- Work with management to define and establish processes, templates, and standards related to software development and to continually improve the quality of the process.
- Contribute fresh, new ideas during developer meetings demonstrating a commitment on-going learning.
- Utilizing code coverage, code metrics, and other tools to improve quality of code.
- Mentor and assist in the training and on-boarding of other team members.
- Raise concerns to management and team members.
- Any other tasks required by management.
Skills Required
- A minimum of 6 years of demonstrated prior work experience conducting the primary responsibilities outlined in this job description.
- Proficient English written and verbal communication skills is essential since you will need to communicate with other offices on the phone.
- Exceptional knowledge and skills with C#/.NET is essential.
- Demonstrated expertise in WinForms, WCF, MVC, MVVM, WPF, and RESTful Web Services.
- Exceptional knowledge of JavaScript and JavaScript frameworks such as React.
- Demonstrated expertise with the latest versions of SQL Server creating relational database objects (tables, columns, stored procedures, scalar and table-valued functions, etc.)
- Ability to evaluate/address application and database performance issues.
- Understanding of Microservices, SaaS, & various Cloud offerings.
- Experience designing, building, and deploying scalable cloud-based solutions.
- Experience with containerization and container orchestration technologies
- Experience with responsive website design
- Demonstrated experience developing large-scale, high-availability applications and systems.
- Demonstrated advanced troubleshooting skills.
- Experience with advanced debugging techniques, such as breakpoints, watches, attaching to remote processes, utilizing dump files, etc.
- Experience with GIT for source control, branching and merging, is preferred.
- Experience working with JIRA is preferred.
- Ability to quickly and independently learn about new technologies, business and technical terms and concepts is essential.
- Ability to discern between value-added and frivolous work.
- Dedicated to continuous education by obtaining industry-related certifications and training.
- Ability to collaborate with multiple departments and teams, demonstrating high-quality interpersonal skills, including good listening skills, respectful treatment of others, and professional behavior contributing to a positive and enjoyable environment.
- Ability to work as part of a team and individually with a self-starter ("can do") attitude.
- Comfortable speaking and interacting with technical and non-technical people.
- Excellent research, analytical, and organization skills with an exceptional eye for detail.
- Ability to perform work activities according to set priorities and delivery timelines.
- Ability to take constructive criticism.
- Ability to perform work activities for multiple projects simultaneously.
- Diploma or degree in Computer Science or Engineering is required.
- Experience working in an Agile environment is an asset.
The compensation range posted for this position represents the anticipated minimum and maximum compensation for this position based upon a good faith and reasonable estimate. The exact compensation offered will depend on several factors such as the candidate’s experience, skills, training, education and/or physical location; internal equity; and, budget.
This job description is not designed to cover or contain a comprehensive listing of activities, duties or responsibilities that are required of the employee. Duties, responsibilities, and activities may change, or new ones may be assigned at any time with or without notice based on business need.