Work Schedule

We trust you to manage your time.

Autonomy is one of our core values. Accordingly, we trust you to use our flexible schedule to manage your own time. Instead of micromanaging and throwing up a lot of controls, we want you to create the environment you need to do your best work.

Our office environment is important to us. It’s full of energy, and you will find team members there no matter when you come in or leave. While we expect everyone to spend most of the week in office, there is freedom to work remotely. We have several engineers who work from home twice a week, and we totally support that.

Our team receives 20 days of PTO a year, 5 sick days, and 12 paid holidays. We also cover up to 5 days of bereavement annually and up to 5 days of jury duty leave. And that is just what is on paper. When life happens, we are here for you. We recently had an employee suffer a terrible jaw injury. The message from every aspect of the company was to take all the time they needed to focus on their health. We know life happens, and supporting you is at the crux of our culture.

We have a great environment for parents. We start by offering 10 weeks of paid parental leave. And with our flexible schedule and high level of autonomy, it’s easy to find a balance between work and life.

  • Flexible schedule
  • Unlimited PTO
  • $300 WFH Stipend
  • $250 Parent Stipend
  • Mental Health Days
Team working in the office

How Our Engineers Work

As a frontend engineer, what are the primary focuses or challenges the teams are facing and what technology am I working with?

We run cross collaboration teams, so here is a snapshot from three of our frontend teams working in different areas.

Team 1: Our primary goal this year is to mature our micro-frontend infrastructure. We're building a component library on top of a shiny new design system. Storybook is the foundation for our FE design system. We're playing some of our BFF (BE For FE) with GraphQL. We're paying extra attention to performance and stability, and building observability and automation with DataDog and Cypress. We rely heavily on React and have little to no FE legacy codebase.

Team 2: We'll be looking to improve our UX across the Platform, and continue adding value to the platform by exchanging manual work we've been doing for our customers with platform functionality.

Team 3: We're working on our Realtime Support platform that connects our customers and our helpdesk agents through chat. We’ll be thinking about how this platform will scale in the future, and improving every component - ticketing, chat technology, identity management, and resolution automation.

Languages
  • Python
  • JavaScript
  • Ruby
  • SQL
  • HTML/CSS
Frameworks, libraries, and tools
  • React.js
  • Node.js
  • Serverless
Platforms
  • AWS
  • GraphQL
  • Heroku
Databases
  • PostgreSQL
  • DynamoDB
  • Redshift
  • Redis
Tools
  • SQS
  • SNS
  • Terraform

Development Process

We run a 2-week sprint and each team can customize the process.

We run a 2-week sprint Scrum. We share best practices and a general framework, but each team can customize their practice based on what works best for them. Our typical cycle is grooming, planning, stand-ups, and retros. Technical debt and platform improvement are baked into our sprint work. It's budgeted on a regular basis, and you don't have to fight for it. About 20% of the work we do sprint to sprint is dedicated to off roadmap work.

Our teams just finished a deep analysis of what was working and not working with our agile processes and we've greatly optimized our process and tooling. Our focus this year is on tighter MVP slicing, and pre-established iteration on all sizable projects, so that we ensure feedback loops have the space, time, and resourcing, to be executed. And, we are experimenting with basic scrum-of-scrums for cross-team communication.

Development Process
  • Agile
  • Scrum
  • Lean
  • Code Review

Testing & Deployment

Teams are in charge of the quality of the components they own.

Our big 3 are unit testing, integration testing, and contract testing. Individual teams are in charge of the quality of the components they own. And, as a company we are working to share best practices, tests, and results.

Contract testing is key for us, and we are working to expand our coverage. The reason why this methodology is key is because one could never cover all the use-cases of each service with automation - it would be heavily time-consuming, and there will always be forgotten cases. But with contract testing we ensure that every use case that is actually being consumed (as opposed to theoretically possible) is covered and protected against regression.

We've also established integration testing with Cypress as a middle ground between unit tests and acceptance tests, allowing us to test business-critical scenarios while still mocking certain elements and keeping to high performance execution.

Teams are free to deploy to Production as they see fit. We trust our feature flagging system to allow for Continuous Delivery, and we work with business teams to expose customers to new functionality as necessary.

Testing & Deployment
  • Unit Testing
  • Functional Testing
  • Contract Testing
  • Continuous Delivery

Interested in working at Electric Engineering?


View Electric Engineering Job Openings
Want to ask an engineer at Electric Engineering a question?
Ask Electric Engineers

A totally anonymous way to ask questions before you apply.