Our teams have flexibility to make the technology choices that best provide customer value to partners. As a member of the team, you'll be involved in these choices. As an example, most teams build RESTful services, typically with simple APIs using JSON. These are usually built on the JVM with Java but some pick Scala, Clojure and Kotlin. Some teams use node.js. Many teams are decomposing their services into micro-systems to make things easier to maintain and continually deploy. When appropriate, teams build event-driven, streaming architectures and we also have teams working on front-end solutions, generally using React.js. Your team will be cloud-native or moving enthusiastically to AWS. We organize for feature velocity, so wherever appropriate, your teams will use AWS services like Lambda, Kinesis, ElastiCache, Aurora, DynamoDB and of course EC2, ECS and S3. To further help speed things up, you'll look to build on top of open source systems and libraries like Redis, GRPC, Akka, Cassandra, and MongoDB.
- You will lead the end-to-end product life cycle for mid to large size projects: Design, development, testing, deployment, and providing operational excellence and support
- You find and advocate for Industry standards and in development methodologies, techniques, and technologies
- You contribute to advancing the team's design methodology and quality programming practices and mentor junior team members.
- Innovate and implement new ideas to solve complex software problems and prototype creative solutions to enable product MVP's
- You will independently understand scheduling, cost constraints, and impact to other teams; and make resource and architectural trade-offs based on those factors
- You will anticipate and prevent problems and roadblocks, before they occur, and present technical issues and their impact to leadership
- Lead, coordinate, and collaborate on multiple concurrent and complex cross-organizational initiatives
- You will effectively build and maintain a network of key contacts across the company, and w these contacts to achieve results
- You will communicate and work effectively with geographically distributed teams
- You will work for continuous improvement in software and development process within an agile development team
- Bachelor's or Master's Degree in Computer Science, Information Systems, Engineering, or equivalent experience.
- Demonstrated proficiency in most areas of the professional function, and in-depth specialization in some
- Effective verbal and written communication skills with the ability to present complex technical information clearly and concisely
- Experience in Agile/Scrum software development practices
- 7-10+ years of experience in the field of Software Engineering
- Expertise in writing transactional web services using REST or distributed RPC technologies.
- Experience in JVM technologies, with experience with Scala or functional programming in an equivalent language a strong plus.
- Apache Tomcat, Spring MVC, Spring Boot, Docker, Gradle, Grunt
- AWS: EC2, S3, Lambda, DynamoDB, MongDB, Cassandra, SQL
- Hadoop, Hive, HDFS, Spark, other big data technologies.