Staff Software Engineer Job Description Template
Our company is looking for a Staff Software Engineer to join our team.
Responsibilities:
- Coordinate Continuous Integration activities, testing automation frameworks, and other related items in addition to contributing core product code;
- Maintain code quality through best practices, unit testing, and code quality automation;
- Instill best practices for software development, and deliver high quality work on tight schedules;
- Identify opportunities for further enhancements and refinements to standards and processes;
- Engage in design of new systems, functionality or refactor existing functionality;
- Experience with Agile Development, SCRUM, or Extreme Programming methodologies;
- Roughly 80% hands-on coding;
- Building platform integrating different Big data technologies and AWS cloud services;
- Understand and own component security analysis, including code and data flow review;
- Responsible for the architecture, design and development;
- Design and implement APIs, abstractions and integration patterns to expose challenging network automation tasks as web apps;
- Design, code and integrate application business layer with external application components;
- Work with team to ensure consistent, predictable & productive execution for high quality deliverables;
- Drive design reviews, code reviews and apply database design concept to model relational and non-relational data stores;
- Review requirements to ensure technical accuracy, compliance, completeness & to mitigate risks.
Requirements:
- Strong in algorithms & data structures;
- Problem solving and disambiguation;
- Instill best practices for software development, and deliver high quality work on tight schedules;
- Experience in AWS and Kubernetes an added advantage;
- 3-4 years of Adobe AEM / CQ5 experience implementing full cycle Adobe AEM projects (AEM 6.0 and later required; AEM 6.2 is a plus);
- Have at least 6 years for experience in Server Side Technologies;
- Experience architecting and developing distributed systems design;
- Experience of testing at the unit, integration and system levels. Experience with JUnit and other testing frameworks in AEM;
- Strong experience in back end programming in Java / Java EE, Springboot;
- Experience architecting and developing solutions to ambiguous problems with significant impact;
- 10 years of relevant work experience in software development;
- Knowledge of OS internals, databases would be useful;
- Master s degree or PhD in Engineering, Computer Science, or a related technical field;
- Strong customer focus, excellent problem solving and analytical skills;
- Deep understanding of distributed computing systems.