Senior Software Engineer
We are seeking a candidate with a passion for software engineering built on solid design, implementation, and testing principles. This role provides the opportunity to perform technical work on embedded systems and web applications for our WAN management network products. The candidate must be able to operate in a fast paced organization, working with project managers, system architects, other design team members, and external customers. Tactically, the candidate will be responsible for all aspects of software development – working with the project team to define, design, test, troubleshoot, document, and release new products to our clients while meeting schedule, performance, and budget objectives.
Key Job Responsibilities
- Interact with Engineering, Sales, external customers, and other functional teams to identify and distill product requirements into design specifications and test plans.
- Drive feasibility and trade-off analyses to determine product or requirement feasibility and support product architecture definition.
- Perform software design, development, and testing as part of an agile project.
- Develop BSP, drivers, kernel, bootloader and applications for existing and custom embedded systems or web applications.
- Drive software code reviews within the Software Engineering team; hold others accountable for leveraging best practices and proper documentation and traceability.
- Proactively track and report progress toward a project’s objectives, including maintaining estimate-to-complete for assigned tasks.
- Champion, conduct, and coordinate software testing activities; including unit testing, functional testing, and regression testing.
- Prepare estimates for software development tasks and projects.
- Act as a trusted expert in the Software Engineering discipline for the broader Ecessa team including Engineering, Sales, and business development.
- Proactively leverage the available resources at Ecessa to minimize project expense when working with new technologies and responding to unforeseen issues.
- Identify and control project risk associated with Software development, working with project management and other team members to implement risk-reducing plans.
- Drive process improvements, share industry best practices, introduce new tools and methods, and contribute to continuous improvement within the Software Engineering team.
- Lead, mentor, and coach other engineers in the organization.
Qualifications and Requirements
- Bachelor of Science degree (Electrical Engineering, Computer Science, Computer Engineering, or equivalent).
- 6+ years of related professional experience in an engineering role; developing embedded or web (Django and/or Flask) applications
- Experience in the complete product development process, including design and project definition, development, testing, certifications, and on-time execution.
- Experience developing on Linux and comfortable on the command line
- Working knowledge of source control systems (Git experience preferable)
- Experience with network communications, socket programming and packet analysis
- Familiarity with IP networking and routing
- Ability to manage available work time effectively, set and hold schedule commitments, and pro-actively identify and communicate project risks and setbacks.
- Accountable – takes responsibility for decisions, actions and results
- Open and candid communication skills; demonstrate inclusive behavior, ability to build trust and inspire others.
- Leads change, personally adaptable, and able to perform well under pressure.
Other Desirable Skills
- Excellent written and verbal communication skills. Comfortable communicating with external clients to communicate technical status.
- This position has minimal travel requirements (up to 10%); work is primarily performed in a collaborative office environment at Ecessa.