

Senior Software Engineer (Python)
Job description
Fulfil’s software engineers develop the next-generation technologies that change how millions of customer orders are fulfilled by merchants. Our products need to handle information at massive scale. We're looking for engineers who bring fresh ideas from all areas into our technology.
As a senior software engineer, you will work on our python based ORM and applications that scales to handle millions of transactions every hour. This is mission critical software and your primary focus will be building robust and scalable solutions that are easy to maintain.
In this role, you will be collaborating closely with the rest of the team working on different layers of infrastructure in an international environment. Therefore, a commitment to collaborative problem solving, sophisticated design, and quality product are important.
What You’ll Do:
- Own definition and implementation of API interfaces (REST and GraphQL). We take pride in our 100% open API with over 600 endpoints.
- Implement simple solutions to complex business logic that enables our merchants to manage financials, orders and shipments across millions of transactions.
- Build reusable components and packages for future use.
- Translate specs and user stories into reviewable, test covered patches.
- Peer review code and refactor existing code.
- Integrate with our eCommerce partners (Shopify, BigCommerce, Amazon), shipping partners (UPS, USPS, FedEx, DHL) and EDI.
- Manage Kubernetes and Docker based global deployment of our infrastructure.
Requirements
We’re Looking for Someone With:
- Experience working with ORMs like SQLAlchemy or Django
- Experience with SQL and databases (Postgres preferred)
- Experience in developing large server side applications and microservices
- Ability to create high quality code
- Experience with python testing tools (pytest) and test automation
- Familiarity with code versioning tools like GIT
- Strong sense of ownership and leadership quality
- Experienced in the tools of our web stack
- Python
- Celery
- Postgres
- Redis
- RabbitMQ
Nice to Haves:
- Prior experience at a growth stage Internet/Software company
- Experience with ReactJS, Google Cloud, Heroku
- Cloud deployment and scaling experience
About Us:
Fulfil.io helps high growth, high volume merchants simplify operations and scale for growth. With the rise in omni-channel commerce, Fulfil was founded with the simple idea that merchant operations need to be simplified in order to deliver amazing retail experiences. Fulfil enables businesses to turn their back office operations into an accelerator for growth by integrating order management, inventory management, warehouse management, vendor/supplier management, wholesale, manufacturing, financials and customer service, into one seamless solution. We believe merchants should love their operations platform, and we work hard to make that happen every single day. Fulfil.io is a trusted solution for brands like EndySleep, Mejuri, Lie-Nielson Toolworks, and many more.
Fulfil.io is a venture backed technology company with offices in San Francisco, Toronto, and Bangalore. The team is made up of people who want to feel challenged at work, be the best at their craft and learn from one another. We come from different backgrounds and experiences, all passionate about the work we do, the team we do it with, and the customers we do it for. Join us in our journey to simplify operations and empower merchants around the world!

Similar jobs
About Company
Our client is in the business of delivering cutting-edge software solutions, hardware systems, and IT services. It lends the right technological edge to governments and businesses. This enables them to achieve their organizational objectives efficiently and effectively to scale their businesses to newer heights.
Minimum Requirements/Qualifications:
• Bachelor’s/Master’s degree in computer science, Computer Engineering or a related field is preferred.
• Must have at least 5 to 7 years of experience in application development (Java,Spring Framework), Deployment(Apache Tomcat & Nginx)
• Sound knowledge of Object-Oriented Programming (OOP) Patterns and Concepts.
• Knowledge & hands-on experience of Java, Spring Framework, Spring Security, JSP, Apache Tomcat, Nginx is a must.
• Must have experience with Bootstrap CSS, jQuery etc.
• Basic Understanding of PostgreSQL, MVC (Model-View-Controller) Pattern, JDBC (Java Database Connectivity), and RESTful web services.
• Relevant Knowledge of Java GUI frameworks according to project requirements.
• Experience in handling external and embedded databases.
Roles & Responsibilities
• Develop new modules, patches & Updates/upgrades for an existing application (developed in-house by the client)
• Bug fixing, and updating of software.
• Analyze user requirements to define business objectives.
• Maintain Java-based applications that can be high-volume and low-latency.
• Identify and resolve any technical issues arising.
• Write well-designed, testable code.
• Conducting software analysis, programming, testing, and debugging.
• Support continuous improvement, investigating alternatives and technologies, and presenting for architectural review.

Summary/Objective:
We are looking for high performing developers who will get to develop an awesome product which the end user must love and trust. You will be responsible for building, scaling and maintaining the multiple modules, encompassing - external integration, API management, building business and operation processes, designing and defining micro services, designing multi-input/output state machines. You will work closely with business, product and UI teams and build products that would maximise business impact and customer delight. We are looking for people who love to challenge and contribute to new way of thinking. We value entrepreneurship skills, rolling up sleeves, resolving issues and raising up the bar. We love people who are excellent with delivery and execution and have a design thinking approach. You should be comfortable learning in a fast-paced environment and applying it at work. A quick overview of our stack:Python, MySQL, NoSQL, Memcache, Bigquery Microservices Responsibilities
• Write clear and effective API documentation.
• Write codes to integrate applications being used by various stakeholders
• Write and review test cases to QA pass your own code.
• Write/review test cases for code and process coverage
• Review code for both oneself and team members
• Reviewing designs, code, and processes from a system security standpoint
• Defining and building micro-services
• Building systems with positive business impact
• Tracking module health, usage, behaviour tracking, measure and improve code and processes Requirements
• An engineer with at least 1-7 years of working experience in web services, preferably in Python
• Must have penchant for good API design.
• Must be a Stickler for good clear and secure coding
• Must have built and released APIs in production
• Experience in working with RDBMS and No SQL databases
• Must have designed thoughtful, extensible data models
• Knowledge of identifying, defining and building micro-services
• Working knowledge of GCS, AWS, Azure or any other cloud provider
• Aggressive problem diagnosis and creative problem-solving skills
• Communication skills, to speak to developers across the world. Good To Have
• Focus on constant improvement of developer experience
• Building or Working knowledge of CI/CD
• Basic know-how of front-end technologies like AngularJS/React
• Have worked on additional languages like Javascript/Ruby
Thanks
Requirements
- 3+ years of experience in the Development of JAVA technology.
- Strong Java Basics
- Linux
- SpringBoot or Spring MVC
- Hands-on experience in Relational Databases (SQL query or Hibernate) + Mongo (JSON parsing)
- Proficient in REST API development
- Messaging Queue (RabitMQ or Kafka)
- Microservices
- Java 8
- Any Caching Mechanism
- Good at problem-solving
Good to Have Skills:
- 3 years of experience in using Java/J2EE tech stacks
- Good understanding of data structures and algorithms.
- Excellent analytical and problem-solving skills.
- Ability to work in a fast-paced internet start-up environment.
- Experience in technical mentorship/coaching is highly desirable.
- Understanding AI/ML algorithms is a plus.


About the role
Checking quality is one of the most important tasks at Anakin. Our clients are pricing their products based on our data, and minor errors on our end can lead to our client's losses of millions of dollars. You would work with multiple tools and with people across various departments to ensure the accuracy of the data being crawled. You would setup manual and automated processes and make sure they run to ensure the highest possible data quality.
You are the engineer other engineers can count on. You embrace every problem with enthusiasm. You remove hurdles, are a self-starter, team player. You have the hunger to venture into unknown areas and make the system work.
Your Responsibilities would be to:
- Understand customer web scraping and data requirements; translate these into test approaches that include exploratory manual/visual testing and any additional automated tests deemed appropriate
- Take ownership of the end-to-end QA process in newly-started projects
- Draw conclusions about data quality by producing basic descriptive statistics, summaries, and visualisations
- Proactively suggest and take ownership of improvements to QA processes and methodologies by employing other technologies and tools, including but not limited to: browser add-ons, Excel add-ons, UI-based test automation tools etc.
- Ensure that project requirements are testable; work with project managers and/or clients to clarify ambiguities before QA begins
- Drive innovation and advanced validation and analytics techniques to ensure data quality for Anakin's customers
- Optimize data quality codebases and systems to monitor the Anakin family of app crawlers
- Configure and optimize the automated and manual testing and deployment systems used to check the quality of billions of data points of over 1000+ crawlers across the company
- Analyze data and bugs that require in-depth investigations
- Interface directly with external customers including managing relationships and steering requirements
Basic Qualifications:
- 2+ years of experience as a backend or a full-stack software engineer
- Web scraping experience with Python or Node.js
- 2+ years of experience with AWS services such as EC2, S3, Lambda, etc.
- Should have managed a team of software engineers
- Should be paranoid about data quality
Preferred Skills and Experience:
- Deep experience with network debugging across all OSI layers (Wireshark)
- Knowledge of networks or/and cybersecurity
- Broad understanding of the landscape of software engineering design patterns and principles
- Ability to work quickly and accurately in a highly stressful environment during removing bugs in run-time within minutes
- Excellent communicator, both written and verbal
Additional Requirements:
- Must be available to work extended hours and weekends when needed to meet critical deadlines
- Must have an aversion to politics and BS. Should let his/her work speak for him/her.
- Must be comfortable with uncertainty. In almost all the cases, your job will be to figure it out.
- Must not be bounded to comfort zone. Often, you will need to challenge yourself to go above and beyond.



• 2+ years experience in application development
• experience with Python and Javascript is required.
• good knowledge of operating systems and networking concepts
• experience in using and understanding code from Open Source
• Strong command of NoSQL and ability to design schemas.
• Knowledge of front-end technologies such as React Native, React.js, or Javascript
• Experience with cloud infrastructure tools in AWS and Google Cloud
• experience with implementing best software engineering practices like version control with git, code reviews, writing unit-tests, writing readable code
• inclination towards researching new technologies and adapt them to solve challenges we face.
• Address all tech challenges and continue with tech innovation in order to improve business operations
• Experience with Live video stream a plus.
• Experience with AI preferred.


What we are looking for
- At-least 3 years of experience of development on backend applications. Full stack experience is a cherry on the top!
- Experience / knowledge of designing robust systems, maintaining & scaling them
- Experience with usage of NoSQL databases like MongoDB & with SQL and RDBMS Systems
- Experience of creating applications with any of the popular frameworks in Python, Java, GoLang, Node
- Experience with JS frontend frameworks like React, Angular, Vue etc is a big plus
- Well versed with versioning systems like git
- Understanding of rest API implementation
Some of the responsibilties you will be taking up are following
- Working on creating performant and fault tolerant systems which are scalable
- Design, build, and maintain high performance, reusable, and reliable codebase
- Effectively work with product to gather requirements, gain deep understanding of use cases and business needs, and translate into design and implementation.
- Maintain code integrity and organization.
- Manage basic devops related to CI/CD
- Creating secure systems
- Lead other junior developers
- Define optimal and minimal architecture to achieve product requirements



