Senior Software Engineer (JavaScript / Node / React) - remote
Finale Inventory
Posted 2 years ago
What we do
The vision of a smooth running business is what unites the team at Finale Inventory. We’ve worked with small and medium businesses for nearly ten years creating a SaaS inventory management system that is precisely adaptable to the finest details of each customer's processes. Coupled with offering world-class on-boarding, training and support, the solution helps companies get ever closer to the vision of a smooth running business.
We’re a fully bootstrapped company that has built a thriving business grounded on long term relationships with our customers and employees. Not having outside investors keeps us focused on building sustainable growth based on our revenues.
How We Work
Our team has been fully remote since the company’s inception. We make remote work work by trusting each other, collaborating with each other, and focusing on results over process.
- Trust: We hold quarterly meetings to review the product roadmap and the company’s profit and loss statement with the entire team. We trust each other to understand the company’s business goals and the needs of our customers, and then we trust each other to do their best to achieve those goals.
- Collaboration: We work together across disciplines to achieve our goals. We ask questions, answer them, and learn from each other. Everyone has a voice.
- Results: We have just enough process for the size of our company, but no more. We take pride in solving our customers’ problems whether by providing good service or by creating the software that they need. We limit the number of meetings and keep them focused and efficient.
We have team members in North America, South America, and Europe and are headquartered in Northern California. Engineers are responsible for designing and delivering features that delight customers and grow the business, building features end-to-end working directly with customers to make sure they meet our users' needs.
Our engineering environment
We have a disciplined development process that moves quickly but not chaotically. We meet biweekly to plan sprints based on task breakdowns from the person doing the work. We ship code multiple times per day. We deliver quality software by applying multiple best practices including automated unit/integration tests, working in small batches, peer code reviews, and automated deployments. We rapidly revert or fix issues discovered by our extensive alerting and tight integration with our service team. We improve our processes over time using blameless postmortems after serious issues. We invest in developer efficiency by, among other things, ensuring tests complete reliably without intermittent failures and steadily refactoring code for simplicity.
Engineers are responsible for understanding our customers and their problems. They use judgement to design features in conjunction with our business operations team that delight users. To foster understanding, engineers interact regularly with customers when fixing issues and by periodically shadowing our business operations team on sales or service calls.
The major components of our technology stack are Node.js, React, MySQL, Redis, Linux, and AWS. Our JavaScript code uses modern idioms such as functional reactive programming. We also use C++ compiled to WebAssembly and also compiled as a native Node.js module for performance critical code. We use GitHub, Slack, Zoom, and Monday.com for collaboration. We do NOT use Jira.
Who you are
You are an experienced engineer that has previously shipped commercial software using the technologies in our stack as part of a team. You believe that doing is more important than talking, and understand the difference between activity and action. You are familiar with modern software development practices (such as automated testing and continuous deployment) even if you haven’t had a chance to use them in your professional work. Even if you don’t have a degree in computer science, you have learned the essentials of data structures, algorithms, operating systems, databases, networking, computer architecture, and concurrent programming.
You live in North America, South America, or Europe and are able to frequently collaborate with your colleagues between the hours of 9am and 2pm in the US Pacific time zone. English may not be your first language, but you are nearly fluent when conversing about technical or business topics.
What you will do
You will be writing and shipping code on our core product. Depending on your specific skills and interests you will be:
- Adding end user facing features such as Amazon FBA replenishment or built-in business intelligence screens. You will be responsible for building expertise around our customer's needs, based on that experience developing features that delight our customers, and delivering high quality code. This work is mostly in JavaScript using React and Node.js.
- Improving performance and capability of our core engine that calculates stock levels, cost of goods sold, and other business metrics (mostly in C++ )
- Adding capabilities to the system that synchronizes data between our system and external applications the customer is using (e.g. Shopify, QuickBooks, Amazon Marketplace, etc.).
In addition to shipping code, you will use your experience to regularly contribute to the overall engineering direction of the company.
Benefits and Perks
- Work from anywhere
- Competitive salary
- Annual bonus plan based on company performance
- Liquidity event bonus plan triggered by any sale of the company
- Great medical, dental, and vision coverage (US employees only)
- 401k retirement plan with company contribution (US employees only)
- Flexible working hours
- Local public holidays + paid time off
- Computer and software setup
Hiring Process
Candidates communicate directly with Chris Hondl, our co-founder and CTO, during the interview process. Chris will review resumes and credentials of all applicants. Agencies and contracting firms will not be considered. Selected applicants will have between five and seven remote interviews, some of which involve coding using Zoom screen share in an editor of your choice. Interviews are scheduled at the mutual convenience of the applicant and the interviewer. In most circumstances we do not use take home coding challenges. Generally interviews are completed in six to nine business days. All applicants who are invited to interview will receive an email stating whether or not they have been offered a position.