As the lead developer, you will be expected to provide hands-on help with actual building and designing of microservices-based web applications using diverse frameworks and technologies, such as Java 8 (+Spring frameworks), Node.js, R, JPA, Angular/React and Kubernetes to name a few. You will also be expected to be a team lead in an agile environment while maintaining engineering excellence, and establish good practices and habits.
Areas of responsibility
- Rapidly developing POC solutions and new features and building\extending Continuous Integration (CI) pipelines and toolchains.
- Ensure software quality through extensive unit, integration, functional, performance and regression testing, with a focus towards QA automation.
- Writing product or support documentation.
- Regularly conversing with customers to understand product and project requirements.
- Maintaining and extending skills by reading and training as well as being prepared to grow into a position whereby new techniques, tools or learnings can be shared with team members.
Desired Skills & Experience
- 4 years or more in building high availability multi-threaded applications in a microservice architecture, using Java (including Java 8), Spring and Node.js, as well as RESTful APIs supporting multiple versions.
- 3 years or more of building Windows System solutions using C++, C# in Windows client-server architectures, along with Python integration scripts.
- In-depth understanding of the entire software development lifecycle from design to deployment and Object-Oriented programming.
- A bachelor’s degree in a scientific discipline (Math, Physics, or Computer Science/Engineering).
- Very good technical English.
Core Competency Requirements
- Extensive experience designing and developing enterprise grade software in Java and Node.js in a microservice architecture. Experience with Kubernetes – advantage.
- Experience with Statistical Computing languages such as SAS, Stata or R.
- Deep understanding and highly experienced in both SQL and NoSQL databases (especially MySQL and MongoDB). Experience with Graph Databases – advantage.
- Deep knowledge and ideally experience with development for big-data, statistical data presentation and machine learning.
- Deep knowledge and ideally experience with microservice orchestration systems, especially Kubernetes.
- Highly experienced in working and scripting for AWS services and Dockers technology (any other competing solution is an advantage).
- Experience with Elasticsearch, Logstash, Kibana and Grafana.
- Experience with Virtual Machines and provisioning tools (Vagrant, Chef, Puppet or Ansible), as well as VM-based Virtual Desktop Infrastructure and provisioning solutions (such as Citrix and VMware).
- Experience with JPA and ORM frameworks (e.g. Hibernate) and JMS messaging (ActiveMQ, RabbitMQ or Kafka).
- Working in an Agile (Scrum, Kanban) and Test-Driven Development (JUnit, Mockito) environment.
- Experience working with version control, project configuration and continuous integration tools such as Git, GitFlow, Maven, Jenkins, Sonar, Jira.
- Experience with:
- Various HashiCorp solutions and DevOps tools.
- Electron (Atom Shell).
- Native mobile technologies.
- Modern languages such as Go, Scala and Jython.
- Very good understanding and ideally experience with deep learning (DNNs).
- Interested in using, and ideally contributing to, open-source frameworks.
- Experience in working with or for Silicon Valley and/or Israeli startups.
- Native Russian speaker – big advantage.
Candidates will need to show evidence of ingenuity and creativity, a logical approach to problem-solving, analytical capabilities, ability to work under pressure and attention to detail.