Full Stack Software Engineer (Python / React)
Free to start · No card · 5 credits the moment you sign up
Job description
Position: Full Stack Software EngineerLocation: 100% Remote in Poland
Type: This can be structured as a B2B contract or as an Employment Contract with full benefits.
Salary: $120,250 - $146,250 + stock options.
Focal Systemsis the industry leader in retail AI solutions. We are headquartered in San Francisco, California with operations in Canada and the UK, and a tech-hub in Poland. We are a Deep Learning first company. Our mission is to automate and optimize brick and mortar retail using deep learning computer vision. Focal Systems has been deployed at scale with some of the top retailers in the world.
We seek smart, creative and passionate people who want to help build a great and enduring company and deploy Deep Learning to the world!
What we’re looking for
We're looking for a full-stack engineer with a strong backend foundation (Python) who's equally comfortable working in React when the product needs it. Think 60/40 backend-to-frontend — you'll spend the majority of your time building APIs, data pipelines, and backend services, but you'll regularly contribute to our React/TypeScript frontend and won't treat it as someone else's problem.
You'll work on systems that process data from hundreds of thousands of IoT devices deployed across major grocery retail chains worldwide. Your code will power the tools that store employees use daily — from planogram compliance to shelf monitoring powered by computer vision.
We're not looking for someone who just writes code to spec. We need someone who understands why they're building something, validates whether it actually solves the problem, and takes ownership of the outcome. You'll dig into data, talk to internal stakeholders, and sometimes prototype directly in production to test an idea before investing in a full build.
Our problem space is broad, and our teams lean. Every engineer has massive ownership. We use AI as a pragmatic tool to move faster, not to follow trends. Expect to ship every week in an environment that values shipping over ceremony.
What you will do
- Build and maintain scalable backend services using Python (Flask/FastAPI) that process data from 300,000+ IoT devices
- Design and develop REST APIs consumed by internal tools and customer-facing applications
- Build and improve React/TypeScript frontend features — from translating designs into code to refining existing UI components
- Write database queries to analyze how features are actually being used and to debug production issues
- Build deployment monitoring and diagnostic tools that give visibility into system health across geographies
- Create tools that provide transparency and ease of access into the company's rich datasets stored across varying geographic locations and data formats
- Collaborate with engineering teams to ensure data persists in usable formats for frontend, middleware, diagnostics, and Deep Learning pipelines
- Remotely debug customer issues across the full stack and find smart solutions that actually work
- Partner with the product team to shape user experience — you'll bridge the gap between backend capabilities and what users actually see
- Support our customer success team by helping solve client problems
- Evaluate incoming requests — assess the effort required vs. potential value delivered
- Expand test coverage for critical backend services and frontend user flows
- Refactor existing code to reduce complexity and keep things maintainable
- Be part of the team that ships weekly releases to customers
- Present your work to the company and share what you've shipped
Must Have:
- 6+ years of professional software development experience
- 3+ years of hands-on experience with Python (FastAPI, Flask or similar) or other Backend Language
- 3+ years of experience with React and TypeScript
- Solid experience with REST API design and development
- Experience working with data-intensive applications and/or microservices architecture
- Experience with relational databases (MySQL or similar)
- Experience with CI/CD pipelines
- Applied experience with unit and integration testing
- Ability to work independently and take ownership of features end-to-end
- Fluent in Polish with advanced English skills (written & spoken)
- Flexibility in adjusting working hours to meet the needs of the global and time zone-diverse team (urgent tasks or meetings may occur outside of regular CEST working hours)
- Strong work ethic and commitment to completing assigned tasks and projects within established deadlines
Nice to Have:
- Experience with GCP (Google Cloud Platform)
- Experience with Grafana and dashboard creation
- Experience with Kafka or other message brokers
- Experience with Docker, Kubernetes, and Helm charts
- Experience implementing observability solutions (Prometheus, or similar)
- Experience with MUI (Material UI) or Tailwind
- Experience writing Node.js and Bash scripts
- Familiarity with computer vision or IoT data pipelines
Why Focal SystemsStrong Values and Mission - We are a tightly-knit team with an ambitious mission and a strong set of core values, which define our approach to business and have successfully guided us since inception.
Exceptional Team - We are a team of hard-working, fun-loving professionals from some of the most eminent universities, research labs, and tech companies of our time. We pride ourselves on recruiting exceptional individuals to help us redefine the state-of-the-art.
Outstanding Partners - We work with 10+ of the largest retailers in the world and have a world-class roster of investors, advisors and partners to support & advise us in our endeavors.
What we offerWe care deeply about the health, happiness, and wellbeing of all of our employees. We offer:
- Competitive Salary & Attractive Stock
- Paid Time Off
- Team Retreats
- Education grants
Note: Our pay bands are driven by market benchmarks in the target geography for hiring. Our posted ranges typically include multiple job levels. A candidate's level is determined by their performance throughout our talent acquisition process including technical screens, behavior interviews, presentations, work samples, and references. We will communicate transparently with the candidate at final stages regarding how we have leveled them, and what salary range that places them into. Placement within range is equally determined by education, general experience in your profession, specific experience in our domain, and your performance in the talent acquisition process. It is rare to receive an offer at the top of the range for a role.
Originally posted on Himalayas
Prepare your application
Use the description above to assess your fit for Focal Systems. This checklist is guidance from Resumize, rather than additional requirements from the employer. Imported listings can be shortened or change after collection, so confirm the complete description and current availability before sending an application.
Match requirements to evidence
Identify the responsibilities and skills the employer explicitly names. For each important requirement, choose one example from your work, education, training, or projects. Explain what you did, how you did it, and what changed as a result. Include a measurable outcome when you can support it. If you lack a requirement, describe related experience accurately instead of adding an unfamiliar skill to your resume.
Put the most relevant examples near the top of your resume. Keep job titles, dates, qualifications, and contact details consistent across your application materials. Use the employer’s terminology when it describes your experience accurately; a copied list of keywords does not explain your contribution. A short, specific bullet is easier to review than a paragraph that mixes several unrelated duties.
Check the working arrangement
Confirm the location, schedule, employment type, and any eligibility requirements on the employer’s site. A remote label does not establish worldwide eligibility or flexible hours. If compensation, benefits, equipment, travel, or contract duration are missing from this listing, write down your questions for the recruiter. Do not assume details from another opening at the same company apply to this role.
Review before submitting
Follow the employer’s requested file format and application instructions. Open your exported resume and check that its text is selectable, its sections read in order, and its links work. Proofread names, dates, and contact information. Share confidential work samples only when you have permission, and use an anonymized example when necessary.
Submit through a trusted employer or recruiting destination. If the original listing has disappeared, search the employer’s careers page for the title rather than assuming the vacancy remains open. Save the application date, job reference, and the version of your resume you sent. Those details help you prepare for a later conversation and avoid submitting conflicting information through several job boards.
Review your resume for writing and readability feedback, or browse other openings if this opportunity is unavailable.