Posted on: 
January 22, 2023

Engineering: Senior Front-End Engineer

Job Description

Who You Are

You’re passionate and up-to-date on front-end technologies, obsessed about understanding the needs of users, and thrive on solving their problems by building a simple and engaging UX. You have a proven ability to take product requirements and distill into technical tasks that can be picked up by yourself and other team members. In addition to feature development, you also enjoy collaborating on and influencing broader abstractions and patterns that will improve the code base and the developer experience. You’re a highly motivated self-starter who can drive and lead big initiatives including both product features and improvements to non-functional areas like performance, availability and security.

Your Next Challenge

Over the years, we’ve taken Unsplash from a humble Tumblr blog to a fully-fledged web app supporting tens of millions of users and tons of useful features. But we’re only getting started! Our product and our team are growing, and we’re looking for a Senior Front-End Engineer to join our web team, the folks responsible for unsplash.com, and help us evolve. Whether it’s internationalizing our site, building awesome new features for creators and contributors, optimizing for SEO, or modernizing search as we expand our content library, there’ll be a ton of opportunity to come in and make a big difference to our company, our culture, and our users.

What You’ll be Working On:

  • You will implement new features across the website, working from designs in Figma to produce resilient and composable React components, using techniques such as progressive enhancement.
  • Back-end/Node performance
  • React rendering performance
  • General website performance (e.g. optimizing the critical rendering path and Core Web Vitals)
  • SEO
  • Leading large infrastructure migrations, requiring co-ordination between multiple teams

What You’ll Need

  • Some experience of functional programming, such as using the fp-ts library in TypeScript or general experience in any functional language such as Scala, Elm, or Haskell.
  • An appreciation for static type systems and type-driven design.
  • Excellent written and verbal communication skills.
  • Good technical writing skills.
  • Good organization skills.
  • The ability to learn quickly.
  • Experience jumping into large technical problems, evaluating trade-offs and communicating your findings.

About the Web Team

The Website’s Architecture

The Unsplash website runs on Node and uses React to render both on the server and the client. The HTML we generate via React’s server-side rendering is cached and distributed by our CDN (Fastly) so the user gets a contentful response almost instantly.

We’ve optimized the critical rendering path to ensure there are no blocking resources, meaning we can render the page as soon as the browser begins receiving HTML, without waiting for any other resources to download and execute.

We believe in using techniques such as progressive enhancement to improve the resilience of the website—it’s a myth that JavaScript is always available.

By adopting strict TypeScript and functional programming we’ve eliminated whole classes of bugs. We use finite-state machines and sum types such as RemoteData to make “impossible states impossible”. At the application boundary we use io-ts to decode external data such as API responses, data from local storage and URL query parameters.

Interactive front-ends involve the coordination of many different asynchronous events, and so to deal with this complexity we have adopted functional reactive programming (via RxJS).

For layouts we take full advantage of modern methods such as CSS grid and flexbox. We keep our CSS organized using CSS Modules.

The Web Team

The web team is currently 5 people, distributed throughout Europe and Canada. The web team works closely with the API team (6 people) and the design team (2 people).

We don’t believe in a top-down, shoulder-tapping, 9–5 type culture. You have the autonomy to manage yourself. We don’t work set hours. We respect flow. We believe you should be able to structure your days for what makes you feel the most energized and creative.

When we’re working on a new feature, someone from each team will spearhead the project for that team. Everyone has the chance to be a leader and has the opportunity to influence and push their own ideas.

In-depth code reviews help us share knowledge. We don’t review code just to pick on some style nits—we automate as much as we can so we can spend time reviewing the important things like code architecture and identifying patterns for potential abstractions.

Frequent and smaller code releases help us identify problems early and validate our impact. On an average day the web team alone deploys 3-6 times.

We constantly monitor front-end performance, using SpeedCurve to set budgets and alert us when we exceed them. When there’s a regression in performance we take the time to investigate and fix it.

When a runtime exception slips through the net, we report the exception to Sentry and we take the time to understand what went wrong and to find the necessary steps to prevent it from happening again.

As an example of the work we’ve been doing recently, check out this talk by Oliver Ash about how the web team localized the website, including a look at intlc—a tool we built specifically for the purpose of translating the website without sacrificing type safety and without using any runtime libraries.

The Team

At Unsplash we’re enabling everyone to create by making visuals open and accessible.

Today, Unsplash powers more people and products than any other visual search engine in the world, with more than 100 million images downloaded every month —more than the rest of the industry combined. Our team builds unsplash.com, Unsplash for iOS, and the Unsplash API, directly powering over 10,000+ applications including Medium, BuzzFeed, Facebook, Squarespace, Google, Trello, and Square.

We’re depended on every day as a fundamental building block in the creative process, allowing anyone, from students to award-winning creators, access to high-quality, usable imagery.

Our team is made up of people who enjoy making things people love. We care about details and we care about quality. We do more with less. We’re open and transparent about everything we do, both internally and externally.

Benefits

Available to all full-time employees.

  • Work from home
    We’re a remote-first company.
  • Company retreats
    Team retreats when beneficial.
  • Flexible hours
    You manage your time. You set your working hours.
  • Unlimited holidays
    We recommend taking no less than 3 weeks for good health.
  • Healthcare Plans & Fund
    Full healthcare coverage for teammates in almost every country. If we can’t provide a plan for your country, we make a Healthcare Fund available.
  • Maternal/Parental leave
    Generous leave programs for both parents when expanding your family.

Apply now

More job openings