About Learning Tapestry
Hi! We're Learning Tapestry. We're a 25+ person all-remote, global organization dedicated to making digital learning "just work" for educators and learners alike. We solve hard problems in complex education technology environments. We’re a triple bottom line company: we make a profit like any good business; our work makes the world better (“social impact”); and we strive to create a healthy internal work environment for everyone who works here. For our staff we believe in flexible work locations and working arrangements. We empower all of our team members to manage their schedules and adjust as necessary. We're focused on results and impact, not locations and hours. We hire people with great technical ability, but we also expect everyone at Learning Tapestry to have strong character and solid communication skills. We highly value effective software architecture, test-driven development methods, and good project management methodology. We believe in having a strong CI and deployment pipeline that enables us to focus on writing good software.
What We're Looking For
You’re an exceptional professional software engineer with at least 8 years of software engineering experience. You’re comfortable in multiple languages, but in particular you are strong in backend coding using Ruby or Node.js, and frontend engineering React (or you are expert in an alternative frontend framework and are willing to learn/use React for some projects). Our ideal candidate is available 30-40 hours per week, with at least 4 hours overlapping with business hours in the US Eastern time zone, and at least 1 hour overlapping with business hours in the US Pacific time zone. We ask everyone who works here to be fluent or strongly proficient in written and spoken English, and easily understood by US-based speakers (we ask for this to allow everyone in the company to be able to communicate with each other, rather than having to go through intermediates). Please read through this entire job description before applying, as there is critical information about how to apply included. Please do not apply by reaching out to other emails or individuals.
Required Skills and Experience
- At least eight years of Software Engineering Experience, with a minimum of five years doing senior engineering work such as solution design, architecture, code review, full stack engineering, or similar tasks..
- You have very good written communication skills, fluent written English, and comfortable, clear spoken English.
- Must have availability that overlaps with our clients at least 4 hours/day in New York (UTC -5) and at least 1 hour/day in California (UTC -8)
- You can write in multiple languages fluently, efficiently, and reliably, and are expert in writing in Ruby or Node.js, and React (or similar modern JS framework).
- Help maintain professional standards for the entire organization.
- Has deep, substantial expertise in multiple programming environments.
- Capable of running and directing small teams of engineers for substantial projects.
- Capable of executing projects across multiple technical domains (“full stack,” data architecture, devops, etc).
- Has an interest and ability to learn new technical subjects when you need to solve new types of problems.
- Can pursue investigation and problem solving into issues to resolve them, and can also recognize when it’s more efficient to ask for help vs push forward to solve a problem. Believes that all technical problems are solvable with enough effort.
- Has humility and kindness with regards to others and their own abilities. Seeks to help others; seeks to share what they know; wants to see their work have impact in the world.
- Substantial, practical expertise in implementing:
- SQL-based databases
- Can design complex data structure implementations.
- Can write SQL queries and make performance optimizations.
- Can implement standard connectivity to/from SQL servers.
- DevOps
- Deployment and CI/CD
- Has a solid knowledge of designing and implementing devops pipelines, using tools such as docker, kubernetes, or related systems.
- Can design basic, secure (cloud) networks for web server type systems.
- Can develop strategies for managing cached data to optimize performance, using tools like Fastly, Cloudfront, Cloudflare, other CDNs, Varnish, or Redis.
- Can develop or integrate coding projects with cloud-based architecture such as AWS API Gateway, Route66 (and DNS generally), SSL certificates, cloud-based private network routing, etc.
- Understands basic infosec principles to design, evaluate, and operate systems securely.
- Solutions Design / Systems Architecture
- Can work with business analysts, product managers, and senior executives to understand the business problems and propose, adapt, and design technical solutions to meet those needs.
- Can translate technical concepts to non-technical audiences and simplify complex concepts without oversimplifying.
- Ability to explain technical issues in actionable ways to non-technical people.
- Can design and configure/operate the technical systems required to implement a technical solution.
- Understands cryptography and security enough to design systems that use existing login/identity standards securely (OAuth2, JWTs, etc).
- Avoids overly complex technology solutions, preferring complexity levels based on the needs of specific projects.
- Recognizes that the best technical solution is not always the best business solution, and can negotiate with stakeholders accordingly.
- Is not overly enamored with brand new technologies, and has the maturity and experience to evaluate new technology against existing solutions objectively.
- Can write clear, simple specifications to reflect how a system will be built.
- Testing and Reliability Engineering
- Understands TDD vs manual QA Engineering, and where each is appropriate in developing software.
- Insists on building automated testing frameworks when necessary for software pipelines, and knows how to implement “enough testing” without relying on a “test everything” approach.
- Can design functional monitoring solutions for uptime management.
- Capable of implementing test automation using tools such as Cypress, Postman, Swagger/OpenAPI.
- Can write developer docs for a project to assist a new engineer in learning to develop in a codebase.
- Can define uptime failure recovery documentation: what to do when a system fails.
- Can debug and analyze production systems for faults.
- Can use conduct performance testing using K6, New Relic, Skylight, JMeter, and similar tools to find performance issues, design faults, and system optimizations.
Bonus Skills
- Experience in Ed Tech Field (Education projects)
- Experience with Project Management tools, such as Github boards, Trello, Asana, or Jira. (We generally use Github boards.)
To Apply
Apply with your resume and a cover letter. In order to be considered for this role, please specify in your cover letter the hours and times that you expect to work in this role. Please specify these days and times as US Eastern time zone times.
About You
You’re comfortable in a remote work environment, with team members from different time zones. You manage your own time well and are a self-starter. You have a distraction-free place you can use for work that offers reliable Internet access (suitable for voice/video calls and development uses), either in your home or a local co-working facility.
You are experienced and well-versed in the productivity tools we use, like Google Apps & Hangouts, Slack, and Harvest for time tracking.
You’re fluent in written and spoken English.
Please do not hesitate to apply if you do not match these requirements exactly but think you could be a good fit for this position.
Equal Opportunity
Learning Tapestry is an equal opportunity employer and encourages individuals of all ethnic and racial backgrounds, sexual orientations, and gender identities to apply. We are also particularly interested in individuals who have lived in or worked with underserved communities such as low-income, gender nonconforming, disabled, or indigenous peoples.