Solid understanding of Spring and Spring Boot Framework
Experience with NoSQL DB, preferable MongoDB
Experience working with Agile Methodology and BDD Framework
Experience with Microservices Architecture
Ula is reimagining how retail in emerging markets should work in the smartphone era. We’ve witnessed the rise of B2C e-commerce over the last decade in both India and Indonesia. But the small retailer, the heart and soul of retail, has been left largely underserved by e-commerce even though they’re spending hours every day on their smartphones. Ula provides a simple front-end app, powered by sophisticated back-end systems that determine everything from pricing to inventory to intelligent salesforce route planning. We are building many first of their kind technologies in the world and need your help in building the right systems.
Ula is an under-the-radar, early-stage technology start-up headquartered in Singapore, with offices in Bangalore and Jakarta though we are quite flexible in terms of where our colleagues choose to work from. We are funded by Tier-1 Venture Capital — Sequoia Capital India, Lightspeed India, Quona Capital and B-Capital Group. It is also backed by prominent industry angels such as the founders of Udaan, Rahul Mehta of DST Capital and other established Indonesian angels.
We are a culturally diverse company with 38% women and 7 nationalities. We believe that the best minds are required to solve tough problems irrespective of where they come from.
You are driven to solve tough problems with technology. Let’s take pricing for example. Imagine a world where each product in e-commerce were to be priced differently for each customer based on where they are located, how much they buy or where they prepay or pay-later. This leads to a massive optimization problem because pricing too low incurs opportunity cost while pricing too high means a competitor takes that business. This is just one example of how B2B and B2C e-commerce are different and why B2B offers the opportunity to innovate. Now couple this with routing for a sales agent. How should pricing work with a sales-person’s CRM app? Depending on how far you take it, it is a massive machine learning problem.
If you’re passionate about technology and its applications to business problems, you’re curious and imagine what a new world can look like, love working with global colleagues on global problems and don’t mind taking risks that move the needle and treat failure merely as an opportunity to improve and iterate, you’d be a good fit at Ula.
We are very ownership driven at Ula. We also believe in proactive mentorship. It’s an opportunity to learn and to mentor. Below is what we expect from you.
Work with the Product and UX functions to craft innovative solutions to solve real customer pain points.
Work with Engineering and DevOps functions to ensure system reliability, availability and scalability.
Continuously champion high quality software engineering practices - from planning, implementation, test automation, documentation, code reviews, scaling, performance, metrics, logging, and monitoring - essentially the entire software development lifecycle.
Evaluate existing and future cloud-based services to increase the efficiency of our team and/or business.
In a start-up environment, you’ll be expected to be flexible to work across the stack from the middleware to the backend business logic to the persistence layer and the network layer.
5+ years of experience in building scalable web applications.
Proficient in any of the major programming or scripting languages (C++, Java, Python, NodeJS, Golang, Scala etc).
Possess an extremely sound understanding of basic areas of Computer Science such as Algorithms, Data Structures, Object Oriented Design, Databases.
Experience in requirement analysis, failure analysis, API design, distributed consistency.
Experience in defining processes and building systems to monitor and gather metrics, analysis, and software profiling.
Experience with microservices and web application/services development.
Great problem solving skills and propensity to learn and experience of leading end-to-end high scale projects and mentor fellow engineers.
Excel at working in small, dynamic, and fast-paced groups.
Willingness to own all stages of development process: requirements, design, implementation, testing, and operational support.
Excellent coding skills in a language such as Java or NodeJS or Golang.
Experience with MySQL and/or PostgreSQL & with non-relational databases such as DynamoDB, MongoDB, Cassandra, etc.
Experience in working with distributed caching (memcached, Redis, or comparable technology).
Experience with agile software development processes for building highly available and scalable distributed systems and/or e-commerce platforms.
Ability to troubleshoot complex systems problems, debug, and find root causes.
Ability to effectively articulate and drive solutions to meet technical and business challenges
Ability to deal well with ambiguous/undefined problems; ability to think abstractly
Good experience of AWS services such as EC2, S3, DynamoDB, Elasticsearch, Lambda, API Gateway, ECR, ECS etc.
Excellent verbal and written communication skills.
- 8 to 12 years of relevant work experience in Java. Microservices and Spring Boot
2. Knowledge of designing Microservice oriented REST API's
3. Knowledge of distributed system design patterns like distributed configuration, service discovery, routing, service-to-service calls, circuit breakers etc
4. Experience developing Microservices based applications using Spring Boot and Spring Cloud
5. Good understanding of relational databases and/or NoSQL DB, preferably MongoDB
6. Proven ability to guide and mentor team on design and implementation aspects
7. Excellent programming and implementation skills in Java
8. Strong fundamentals in Algorithms and data structures
9. Excellent problem solving and communication skills
10. Good understanding of version control tools like Git
- Design and build solutions for complex business workflows
- Understanding the user persona and deliver a slick experience
- Take end to end ownership of components and be responsible for the subsystems that you work on from
- design, code, testing, integration, deployment, enhancements, etc.
- Write high-quality code and taking responsibility for their task
- Solve performance bottlenecks
- Mentor junior engineers
- Deliver with quality, on-time in a fast-paced start-up environment
- Bachelor/Master's in computer science or relevant fields
- 4+ years of relevant experience
- Strong sense of ownership
- Excellent Java and object-oriented development skills
- Experience in building and scaling microservices
- Strong problem-solving skills, technical troubleshooting and diagnosing
- Expected to be a role model for young engineers, have a strong sense of code quality and enforce code
- quality within the team
- Strong knowledge in RDBMS and NOSQL technologies
- Experience in developing backends for enterprise systems like eCommerce / manufacturing / supply chain etc
- Excellent understanding of Debugging performance and optimization techniques
- Experience in Java, Mongo, MySQL, AWS technologies, ELK stack, Spring boot, Kafka
- Experience in developing any large scale Experience in cloud technologies
- Demonstrated ability to deliver in a fast-paced environment
- 4+ years distributed service engineering experience in a software development environment
- Experience driving feature design reviews, documentation, UX reviews, and working with Product Managers through the entire launch process
- Strong development experience in Java, C++, C#, or similar OO languages
- Strong knowledge of data structures, algorithms, operating systems, and distributed systems fundamentals
- Working familiarity with networking protocols (TCP/IP, HTTP) and standard network architectures
- Good understanding of databases, NoSQL systems, storage and distributed persistence technologies
- Experience building multi-tenant, virtualized infrastructure a strong plus
Distributed systems, scalability, reliability, robustness, security, quality, building responsive real-time systems - do these terms get your adrenaline high? Come be a part of a high-growth, fast-paced engineering team building for India’s new generation.
We have an open culture, you take responsibility and ownership of what you do. No bureaucracy. No bullsh*t.
You’ll fit right in if you have - 2-3 years of experience building, running and maintaining production services Strong with Java and JVM based services along with PostgreSQL Comfortable working with multiple cloud providers: mainly GCP and AWS Comfortable with CI and CD tools and best practices Done TDD and values TDD
Good to have -
Have written and maintained idiomatic code in Go or Rust Understand security aspects of building software and software systems
Engineering aptitude -
- Owns small features, starting from technical design through completion.
- Appreciates and participates in technical discussions, and values guidance and feedback.
- Does not need mentoring on a daily basis; makes steady progress by themselves, and knows when to ask for help to get unblocked.
- Comfortable with referencing technical specifications, API references, source code, and man pages to understand concepts or solve issues.
Design process -
- Understands the role and importance of design, can write good backend specifications
- Can communicate API specifications and design goals to the end consumers API
Code reviews -
- Understands the value of peer-reviewed code; learns how to be unbiased and provide effective feedback.
- Asks senior engineers for help when needed (e.g.: architecture decisions, refactoring)
- Complete freedom to execute ideas in alignment with business objectives
- Free lunch and free beer Pet-friendly office Learning and growth at breakneck pace
- Full stack system development
- Product Design
- Technical risk assessment and estimation
- Technical investigation/research, assessment, and recommendation
- Providing solutions and preparing proof-of-concept for technical proposals and demonstrations
- Product maintenance and support
- Bachelor's degree in computer science, Computer Engineering, or any course related to Information Technology, Engineering and Mathematics
- Ability to execute full software development life cycle (SDLC)
- 1+ year experience in product development
- 1+ years Java development experience
- 1+ year experience in agile product development methodology/process
- Develop flowcharts, layouts, and documentation to identify requirements and solutions
- Experience of relational databases, SQL / MySql / PL SQL / Oracle
- Experience in JAVA Frameworks (Spring / Spring MVC / Spring boot / Hibernate)
- Integrate software components into a fully functional software system
- Develop software verification plans and quality assurance procedures
- Document and maintain software functionality
- Troubleshoot, debug and upgrade existing systems
- Experience in Unit testing is a plus
- REST Concepts
- VCS - Git
- Excellent programming and problem-solving skills
- Experience with test-driven development
- Good communication skills
- Fast learner, detail-oriented
- Able to work under pressure
- Self-managing and able to collaborate with offsite team members
- Can render extra hours whenever necessary.
After a rigorous training program of up to one month, you'll immediately get to work on one of our projects. We're working on mission-critical government systems or commercial products that are levelling up the way the world does business.
CommerceIQ is a well funded fast growing enterprise SaaS platform that is helping brands grow and sell more on e-commerce channels through its machine learning technology. Are you excited about building distributed crawling engine at global scale that will crawl and parse 1000’s of websites with 10+ million crawls on a daily basis? Would you enjoy building something as ambitious as “Google/Facebook Ad platform” for Amazon (and other e-commerce retailers)? Does building a CI/CD and containerisation framework that will allow our products to be released and deployed every week across dozens of geographies and data centers seamlessly excite you? Do you find building machine learning models that will optimize billions of dollars in ad and promotions spend exhilarating? Do you find it super exciting to build a plug and play product UI platform where leaders of brands will spend hours daily (almost as much as an email inbox) to optimize their business? We can keep writing, but you will get the idea.
In our journey of building and scaling CommerceIQ, Engineers and data scientists in our team tackle these and many more problems daily. If you are as excited as we are after reading this, we would love to talk to you! 30+ global brands including Kellogg, Unilever, Johnson & Johnson, MARS, Nestle, Logitech and many more trust our product to manage their growth on Amazon. If you are excited about building product that will write the script for how brands sell and grow on e-commerce channels please reach out to us.
Are you ready to power intelligent commerce? @CommerceIQ, you will :
• You will be responsible for developing, testing and releasing features within time and with high quality that will drive revenue and margin impact to top brands.
• You will be designing your own features keeping in mind the scale and high availability of the systems. • You will be working with the team and expected to perform code reviews, conduct design discussions and mentor other developers.
•You will be the owner of your feature and work directly with product teams to drive customer impact.
• You will be expected to participate in all phases of the software development cycle as part of a Scrum team.
Experience : 3+ Years in developing in designing and developing complex and scalable software modules..
Skillset : • The ideal candidate will be an experienced Java developer with exceptional software system design, problem solving, and object-oriented coding skills
• Experience with distributed transaction-processing systems or asynchronous messaging technology is required.
• Good understanding of system performance trade-offs, load balancing, and engineering for high availability.
• Obsessed about building quality software and owning end to end responsibility for the developed features.
• Understanding of enterprise information systems, service oriented architectures, and operational data stores is a plus
• BS or MS in Computer Science/Engineering, Mathematics, Statistics or similar degree from a top tier institution
We are looking for a passionate Software Development Engineer to develop, test, maintain and document program code in accordance with user requirements and system technical specifications. As a Software Development Engineer, you will work with other Developers and Product Managers throughout the software development life cycle.
Software Development Engineer responsibilities include analysing requirements, define system functionality and writing code in the companys current technology stack. The candidate is expected to be familiar with the software development life cycle (SDLC) process from preliminary system analysis to tests and deployment. Ultimately, the role of the Software Engineer is to build high-quality, innovative and fully performing software that complies with coding standards and technical design. Your goal will be to build efficient programs and systems that serve user needs.
To be qualified for this role, you should hold a minimum of Bachelor’s degree in a relevant field, like Computer Science, IT or Software Engineering. You should be a team player with a keen eye for detailed and problem-solving skills. If you also have experience in SDLC, Agile frameworks and popular coding languages (e.g., Java), strong computer science fundamentals we’d like to meet you.
Years of experience : 2 to 10 years.
Roles & Responsibilities
The overview of this position (based in Chennai, India) includes:
- Develops, enhances, debugs, supports, maintains and tests software applications that support business units or supporting functions. These application program solutions may involve diverse development platforms, software, hardware, technologies and tools.
- Participates in the design, development and implementation of complex applications, often using new technologies.
- Technology professional with experience in designing and managing the implementation of future looking, flexible and reusable, enterprise applications and components.
- Expert in translating business requirements into an application design that includes Data Model, Web Screens, Web Services, and batch processing.
- May provide technical direction and system architecture for individual initiatives.
- Serves as a fully seasoned/proficient technical resource.
- Deploy programs, gather and evaluate user feedback
- Recommend and execute improvements
- Create technical documentation for reference and reporting
- Develop software verification plans and quality assurance procedures
- Document and maintain software functionality
- Ensure software is updated with latest features
- Good interpersonal and technology understanding skills
- Evaluate open-source components and integrate into product pipeline
Skills and Qualifications
- Hands-on experience in analysis, design, coding, and implementation of complex, custom-built applications.
- Strong Java, development skills (JAVA, J2EE, STRUTS, SPRING, Web Services, Eclipse, UI screens, AngularJS, React.JS)
- Excellent debugging skills
- Strong knowledge on databases (MySQL, MSSQL Server and NoSQL databases)
- Understanding of various deployment servers (Apache Tomcat is a must)
- Understanding of OO skills, including strong design patterns knowledge is a must.
- Strong understanding in creating and maintaining web services.
- Understanding of the software development life cycle
- Experience with Implementation and release management activities
- Good understanding of unit/system and functional testing methodology
- Experience working in large transaction-based systems
- Knowledge of software best practices, like Test-Driven Development (TDD) and Continuous Integration (CI)
- Experience documenting technical functions
- Desire to contribute to the wider technical community through collaboration, coaching, and mentoring of other technologists.
- Experience in Linux based systems, development of shell-based scripts.
- Training on the coding paradigms, guidelines, frameworks, usage of the applications would be provided by the engineers
- Periodic training sessions would be conducted by the technical architects in terms of technology and skills to be learnt
- Periodic, structured training would be provided on the applications Hours & Environment
- Typical 40 hours of work a week
- Depending on the requirements, work hours may have to be extended during the day, weekend