Your browser cookies must be enabled in order to apply for this job. Please contact if you need further instruction on how to do that.

Internal Application: Front-End Engineer

Engineering | San Mateo, CA | Full Time

Job Description


On average, U.S. students are with substitute teachers for 5% of the typical school year. That means our students have substitute teachers for more than six months of their K-12 school career. The problem? We're suffering from a national shortage of substitute teachers.

Swing Education is focused on tackling the substitute teacher shortage. We make it easy for great schools and quality subs to find each other. We help schools access more subs and offload tedious work (recruiting, screening, payroll, etc.) and we help subs find jobs, gain experience and build their professional network.

Swing is a revenue generating, Series A, YC company (through ImagineK12).


The Position

The good news - our user`s love our product, but there's definitely a lot of work to be done. In addition to adding key functionality that differentiates us, we will be building a mobile app from scratch. We're looking for our first front-end engineer who is excited to tackle some of our meaty UI/UX and dynamic environment challenges.

Near-term, the work will focus on translating our current mockups to code. Longer term we're looking for someone who can strategically think through design challenges, both from a conceptual and execution/performance standpoint. Our product has a very diverse set of users (with a wide range of tech savviness), and operates in real-time (updates can happen every second).  

Specific Projects:

  • Web front-end (consumer and enterprise side): working primarily in ClojureScript with Flexbox based layouts
    • Engineering responsibilities will include working with Product to digest and translate specs/mockups into implementation plan (including reusable components and performance testing), and working with Engineering and Product to implement front end components
    • Features will include: capacity planning (i.e., reserving sub's schedule in advance), school and sub feedback, school onboarding workflow
  • Mobile front-end (consumer side): especially iOS, but eventually we'll be looking for Android help as well. That includes:
    • Translating our current iOS mockups (built in Invision) into clean, easy to maintain and reusable iOS components (using React Native)
    • Working with the Product team to translate current web functionality / screens into mobile
    • Evaluate and test all components, including for performance pitfalls and improvement
  • Bigger picture revamp of front-end components
    • Working with Product and Engineering to revisit current front end components and identifying opportunities to enhance and streamline (to improve both usability and performance of front-end components)
    • Front-end strategy, including automated testing, cross-platform compatibility (e.g., keeping web and mobile platforms consistent)

Tech Stack:

We write and run Clojure everywhere. Clojure is a pragmatic, functional Lisp that is designed to

interoperate well with the large existing Java and JavaScript ecosystems.

Our data is stored in Datomic, which allows us to treat our current database state as a value and greatly simplifies testing and development and is also capable of calling into Clojure functions we define.

Our front-end runs on ClojureScript (a Clojure-fied version of JavaScript).  It stores data in Datascript (client-side datomic-like database), and uses Reagent, a ClojureScript React / React Native wrapper for building UI components.

Because of our transactional marketplace, we try to ensure that users always have the current state of the world in real-time, and use sente to help manage real-time communication. 


  • BA/BS in Computer Science or related technical field or equivalent practical experience
  • 3-5 + years of relevant professional experience
  • Able to work independently and take initiative, as well as work collaboratively and contribute to an agile team environment
  • Proficient knowledge of Clojure - knowledge or experience in functional languages is a plus
  • Excellent analytical and troubleshooting skills
  • Excellent written and verbal communication skills
  • Strong work ethic and entrepreneurial spirit
  • Design Thinking
  • Hypothesis driven development
  • Agile principles