You work with your team to invent, design and build software that is stable and performant You write code that an SDE unfamiliar with the system can understand Your solutions are pragmatic and you are proficient in a broad range of design approaches and know when it is appropriate to use them (and when it is not) You do things with the proper level of complexity the first time (or at least minimize incidental complexity) You consider the legacy of the code you produce, limiting the use of short-term workarounds. You create flexible software without over-engineering You work on project ideas with customers, stakeholders, and peers You help your team evolve by actively participating in the code review process, design discussions, team planning You take on projects and make software enhancements that improve team software and processes
Desired Candidate Profile
Bachelor's degree in Computer Science, Software Engineering or a related technical discipline
Experience in software design and development Proficiency with at least one Object Oriented language (e.g. Java) Computer Science fundamentals in object-oriented design, data structures, algorithm design, problem-solving, and complexity analysis A strong track record of project delivery for large, cross-functional projects Experience building complex software systems that have been successfully delivered to customers Experience with building high-performance, highly-available and scalable distributed systems Experience with API Design, ability to architect and implement an intuitive customer and third-party integration story Ability to think and analyze both breadth-wise (client, server, DB, control flow) and depth-wise (threads, sessions, space-time complexity) while designing and implementing services A willingness to dive deep, experiment rapidly, and get things done