Company Description
We are a Digital Product Engineering company that is scaling in a big way! We build products, services, and experiences that inspire, excite, and delight. We work at scale — across all devices and digital mediums, and our people exist everywhere in the world (15000+ experts across 26 countries, to be exact). Our work culture is dynamic and non-hierarchical. We are looking for great new colleagues. That is where you come in!
Job Description
- Perform new application development including initial design and evaluation for workload to give an estimated work duration
- Provide maintenance support and enhance performance to existing application code
- Review and document existing application code
- Analyze and design databases within an application area, working individually or coordinating database development as part of a team
- Monitor and troubleshoot production software issues and provide solutions
- Analyze user needs and software requirements to determine feasibility of design within time and cost constraints
- Confer with systems analysts, engineers, programmers, product managers and others to design system and to obtain information on project limitations and capabilities, performance requirements and interfaces and legacy systems
- Store, retrieve, and manipulate data for analysis of system capabilities and requirements
- Design, develop and modify software systems, using scientific analysis and mathematical models to predict and measure outcome and consequences of design
- Develop and coordinate software unit testing and system testing and validation procedures, and documentation
- Develop in accordance with system performance standards set by the organization
- Coordinate software deployments and monitor applications to ensure specifications are met
- Mentor Junior developers
- Perform other duties as required and assigned by manager and upper management.
- Follow legal policies as directed.
Qualifications
- Bachelor’s degree or, Information Technology, or a related field
- 5+ years of recent software development experience.
- Strong development experience using Java/ Spring
- Proficiency in Object Oriented design and programming
- Experience with build management tools, preferably Maven.
- Experience with version control tools, preferably Git.
- Proficiency with IDE-based development, especially in Eclipse or IntelliJ.
- Proficiency building unit tests / integration tests using JUnit or similar.
- SQL/NoSQL development experience
- Experience building web services, preferably using the REST style
- Knowledge of data structures and algorithms
- Experience with Asynchronous messaging technologies such as JMS, Apache Kafka, Apache Pulsar, or RabbitMQ.
- Experience with production troubleshooting and analysis using log / debugging tools such as Splunk, AppDynamics
- Collaborative and able to communicate well with the team
- Experience with building applications using container technologies such as Docker/Kubernetes, Tomcat/Jetty
- Transaction Handling across DBs/Services
- Process Improvement & Product Management
- ORM Frameworks such as Hibernate
- Multi threading, Concurrent programming
- Experience in Security frameworks, Cache technologies, Micro Service Architecture, Enterprise Architecture
- Scaling applications for performance and availability
- Data interchange technologies such as JSON, XML
- Amenable to work 5:00 AM - 2:00 PM; Mon-Fri