Front-End Engineering at Customer.io
If you enjoy working on the front-end portion of websites and applications and want to join a remote team solving interesting problems, then Customer.io could be the right fit for you.
In this blog, we’ll outline what the job of a front-end engineer looks like, what to expect working with Customer.io, and tips for preparing for an interview to join our engineering team.
What is a front-end engineer?
A front-end engineer creates, designs, and implements a website or web-based application’s user interface (UI). A front-end engineer’s primary duty is to create a visual and easy-to-use experience for end users using data provided by the back-end engineers.
What’s the difference between front-end and back-end engineers?
Back-end engineers focus on the “behind the scenes” components of the software or application. In contrast, front-end engineers focus on the visual aspects of the website that users interact with and build with the user in mind. A front-end engineer’s job is to bring to life the visual elements of a website or app.
Besides focusing on different aspects of an application, both front-end and back-end engineers use largely different tools and languages. However, it is important to note that the differences between these development disciplines are not particularly marked, and many front-end and back-end engineers overlap some skills.
What does a front-end engineer do?
Front-end engineers flex their creativity and problem-solving skills daily with various day-to-day tasks. Below we’ve listed some of the top responsibilities engineers routinely tackle:
- Create responsive layouts
- Build high-performance UIs that work and scale in multiple browsers on many types of devices
- Ensure the application or website is implementing accessibility best practices
- Routinely ship new features and updates alongside team members
- Work to improve the overall experience of our product
- Collaborate with the product, design, and back-end engineering teams to implement and improve new front-end features
- Learn, document, and share with coworkers through code review, pair programming, team collaboration, and training to help improve our collective knowledge and best practices
What skills do front-end engineers need?
While this varies depending on different aspects of the product, some key skills are necessary for the role.
- Collaborative mindset: Ability to collaborate with others while facilitating the right environment for sharing ideas with team members.
- User-centric: Be able to understand and empathize with end-user needs.
- Systems design: Design system components to meet the product’s needs and match our design system.
- Mindful of best practices and trends: Help maintain clean and reusable code.
- Accessibility: Test components and pages against accessibility standards to create UIs that can be used by as many people as possible
- Performance optimization: Ability to understand how performance can affect the user’s experience. A front-end engineer should be able to monitor, diagnose and solve issues to improve performance.
What type of problems do front-end engineers solve?
Front-end engineers tackle a range of problems, including:
- Implementing new features: Work on integrating new updates and solving user experience (UX) problems by collaborating with designers to develop creative solutions for complex flows, such as campaign creation, message composition, and data visualization. This includes research, determining performance impacts, and analyzing how it impacts areas of the product, how it affects existing customer data, what the front-end needs to implement a feature, etc.
- Fixing bugs and solving technical problems: Solve issues, render large amounts of data, improve UI accessibility, optimize pages, and ensure the extensibility of our design system
- Researching and rectifying customer issues: Engineers rotate through the on-call schedule after they are here for 6+ months or so.
- Troubleshooting issues: Help others on their squad or other squads understand the product/code and solve problems. We are a very collaborative organization and value working together.
What is it like to work at Customer.io?
We are a remote company that is passionate about what we do. We prioritize our people and are proud of our culture and the benefits we offer. Our team members are globally distributed across six continents and over 34 countries. We value synchronous and asynchronous work schedules and offer flexible hours, enabling our team members to choose a schedule that best fits their lives. If you want to learn more about what it’s like to join our team, check out our onboarding process.
“Being part of the front-end team is exciting. I work with people from around the world and keep learning new things from my coworkers daily. The work is never dull, and plenty of challenges keep things interesting – like our drag-and-drop Visual Workflow Builder or message builders. We also work closely with the product team to build the best experiences possible. Our design system and component library are great examples of how important this is to us.” – Kevin Kucharczyk, Front-end Tech Lead
What are the different engineering levels?
At Customer.io, we offer six engineering levels. Each level maintains escalating responsibilities and expectations.
Level 1: You have a broad knowledge of core CS concepts and focus on growing as an engineer. You’re open to feedback and growth in your role.
Level 2: You write correct and clean code with guidance, rarely make the same mistakes twice, and begin to focus on attaining expertise in one or more areas. You can own small to medium features and are working towards becoming self-sufficient in at least one large area of the codebase.
Level 3: At this point, you are expected to demonstrate knowledge of our infrastructure and are able to work in other areas of our codebase with some guidance. You require minimal direction and oversight and deliver complex products that are bug-free.
Level 4: You are a go-to expert in one area of the codebase and can weigh in on technical decisions that impact other teams and the company at large. You regularly deliver software on time, own technical testing, and can self-identify and solve significant problems. You help others improve their skills through code reviews, documentation, and guidance and propose strategies around technical issues.
Level 5: You are sought out for technical guidance and own large sections of our codebase. You have a record of sweeping improvements and are recognized as a prolific contributor to core projects. You consistently deliver and ship large and complex projects; you multiply the effectiveness of others by facilitating cross-team work, and you help set strategic technical direction.
Level 6: You can anticipate changes and challenges, helping Customer.io stay ahead of the curve. You deeply understand our architecture, consistently deliver large systems, are capable of debugging the hairiest of problems, and play a key role in developing multi-year technology strategies. You lead conversations and drive team-wide consensus on adopting this direction. You are seen as a role model and mentor to every technical member of the team.
Advice for engineers looking to join our team
It’s essential to be prepared for your interview and understand our product beforehand. Please take advantage of all the information on our website and social accounts about our company and culture before your interview begins.
“Come to the interview with some questions. We understand that starting a new role at a different company can be a significant life change, so we want to address your questions during the interviews so you can learn if the position is a good fit for both parties.” – Natalie Leon, Technical Recruiter
What makes a candidate stand out when applying for an engineering role at Customer.io?
Communication is critical in a remote company like ours, especially with people working from different time zones. Keeping consistent and transparent communication with your recruiter and interviewers will help us identify this as part of your skill set. We also love to see candidates who show initiative and ask about the problems and issues their potential team is currently solving.
If you think you’d be a great candidate, please apply. We are always hiring! Please take a look at our careers page for open opportunities.