Job Description Summary:
The Senior Software Engineer designs, develops, troubleshoots, debugs, and sets the direction for the design and implementation of software features/functionality/enhancements, correction of defects, and/or the creation of new products. Develops software tools including operating systems, compilers, routers, networks, utilities, databases, and Internet-related tools. Determines software’s compatibility with hardware and/or influences software's design in relation to hardware.
Position Reports to: Manager, Software Engineering
The technologies involved include C, C++, Java, Borland C++, Visual Studio, and others.
Job Overview:
The Senior Software Engineer designs, develops, troubleshoots, debugs, and sets the direction for the design and implementation of software features/functionality/enhancements, correction of defects, and/or the creation of new products. Develops software tools including operating systems, compilers, routers, networks, utilities, databases, and Internet-related tools. Determines software’s compatibility with hardware and/or influences software's design in relation to hardware.
Essential Duties and Responsibilities:
- Review and provide feedback on designs.
- Takes ownership of the design and development of features within their component.
- Recognizes and practically solves for anti-patterns.
- Good understanding of how his/her work aligns with high-level use cases and team deliverables.
- Define (more than a feature, less than a product) a component that fits into an architecture.
- Describe and defend design decisions for components owned by the team.
- Optimize software design to leverage platform capabilities.
- Acts as the technical subject matter expert for a product domain.
- Quantify and communicate work estimates and risks to direct management
- Handle multiple competing priorities with minimal help
- Understand features as a whole and able to break down larger stories and features into tasks
- Familiar with most of the technologies we focus on and what markets they target
- Takes ownership of customer issues and effectively communicate with Support/SEs to resolve field questions/issues
- Discuss with customers what larger concerns and problems they are trying to solve, over and above the immediate technical concerns
- Willingness to teach and grow junior team members
- Excellent listening skills
- Effectively works within the team and across teams.
- Ensures all tasks are completed thoroughly and that any work done is tested, unit tested, documented, and ready for customers.
- Takes identified problems and concerns and create a plan to fix the problem and prevent it from occurring again.
- Follows through on all tasks.
- Reliably delivers expected work products and outcomes.
- Imparts a sense of urgency on junior team members.
Required Qualifications:
- 8+ years of software engineering experience
- Mastery of data structures and algorithms.
- Able to select data structures and algorithms to solve technical problems.
- Able to write high-quality code rapidly.
- Able to present a track record of solving problems of increasing complexity
- Good understanding of trade-offs in solving problems that have variable levels of complexity.
- Deep understanding of memory allocation and management mechanism, security mechanisms, processing allocation mechanisms of target operating systems.
Preferred Qualifications:
- Writes code faster than the average developer.
- Outstanding quality with few bugs in generated code.
Education:
Bachelors/Masters degree in Computer Science or equivalent
Travel Requirements:
0-10%
- The technologies involved include C, C++, Java, Borland C++, Visual Studio, and others.
- Job Family Group: Engineering
- Job Family: Software & Quality Assurance Engineering
- Job Profile Name: Senior Software Engineer
- Employee Type:Individual Contributor
- Job Level: P4 (Advanced)