Staff Software Engineer

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.