Front-End engineering principles
4 weeks ago
As you will learn working with us, we hold some software engineering principles close to our hearts especially the
separation of concerns.
Respecting these principles allow us to be relatively fast and efficient while building and shipping features but this comes at a price: some constraints are to be respected.
The goal of this document is to explain how we work and the choices we made.
We hope that once you get familiar with the codebase and acquire these reflexes, coding will be as enjoyable as possible for you
File structure
Domains
The front-end code is grouped by
Domains
.
A domain very loosely designates either a
product feature
(available to the user) or a
helper functionality
(a suite of utils fonctions achieving a particular role).
If you find yourself editing a large number of files across multiple directories, chances are
you need to refactor your code into a new domain.
Creating new domains is allowed and
encouraged
Files
Every domain contains very specific files which are the following:
index.ts
: the entry point for every domain
api.ts
: communication with the server
linkedin.ts
: communication with LinkedIn server
logic.ts
: interaction with the pages and complex logic
components.ts
: React components or HTML populated templates
Sometimes
utils.ts
for bits of logic that don’t fit in
logic.ts
Domain Directories as of 1.26.0
Outside of the domains, the files
utils.ts
and
utilsApi.ts
contain small utility functions and are available globally.
What about the rest of the files?
Outside the
/app
directory, other important files are:-
inject.ts
, the starting point of every page reload-
inject.scss
injecting all the styles located in
/styles
-
popup.ts
, code related to the extension popupHowever the large majority of the logic is located in
/app
and this is the primary focus of this document.
Organizing the code by domains is good for grouping related bits together and avoids having to switch across multiple parts of the repository while coding.
Each domain enables a private scope,
index.ts
is the only possible access point from the outside.
This enables us to import functions in the following fashion:
import * as contact from /Contact
And use them in the following way:
contact.get()
,
contact.add()
,
contact.update()
Which makes for cleaner and more readable code.
However, and this is the part when things can get a bit tedious,
you have to manually export your functions in
index.ts
to make them available to the rest of the application.
This won’t be done automatically and is a necessary step for each pull request you will submit.
The exact rules
Files from one domain (including
index.ts
) should only import:
files from its own domain
OR
index.ts
from other domains
OR
types from anywhere
(which basically means you can import from anything you want except “private” files from other domains, ie
logic.ts
,
api.ts
, etc.)
What if I forget to do this ?
We integrated a CI tool called
dependency-cruiser
that will
scream at you
kindly remind you that you’re injecting dependencies the wrong way and fail your pull request.
Resources
Here are some tech talks that go more in depth in the underlying concepts of the decisions we took:
#J-18808-Ljbffr
-
Front End development Foundry QRE
6 days ago
Oregon, United States Intel Full timeFront End development Foundry QRE page is loaded Front End development Foundry QRE Apply locations US, Arizona, Phoenix US, Oregon, Hillsboro time type Full time posted on Posted 2 Days Ago job requisition id JR0262615 Job Details: Job Description: In this position you will join the new Mfg Development QnR organization - Playing a key role in enabling...
-
Full Stack Engineer
3 days ago
Oregon City, United States First USA Full timeFirst is building the operating system for last-mile delivery services - from on-demand hot food, to grocery, meal kits and more! We're looking for experienced engineers to help us develop and maintain products and services that power First's platform between vendors, runners, partners, and operations As a full stack engineer at First, you’ll help...
-
React Native Engineer
4 days ago
Oregon City, United States First USA Full timeFirst is building the operating system for last-mile delivery services - from on-demand hot food, to grocery, meal kits and more! We're looking for experienced engineers to help us develop and maintain products and services that power First's platform logistics platform. As a mobile engineer at First, youll help implement intuitive interfaces and user...
-
Dtech DLP IP Design Engineer
1 week ago
Oregon, United States Nutanix Full timeCompany: Qualcomm India Private Limited Job Area: Engineering Group, Engineering Group > Hardware Engineering General Summary: - 7+ years RTL Design/Hardware Engineering experience or related work experience. Skills/Experience Required - Strong Domain Knowledge on RTL Design , implementation, and integration. - Experience with RTL coding using...
-
Lead Software Engineer
6 days ago
Oregon, United States Lowe's Full timeAbout Lowe’s Lowe's Companies, Inc. (NYSE: LOW) is a FORTUNE® 50 home improvement company serving approximately 17 million customer transactions a week in theU.S.With total fiscal year 2022 sales of over$97 billion, approximately$92 billionof sales were generated in theU.S., where Lowe's operates over 1,700 home improvement stores and employs...
-
Senior Compiler Engineer
3 weeks ago
Oregon, United States NVIDIA Full timeSenior Compiler Engineer – MLIR page is loaded Senior Compiler Engineer – MLIR Apply locations US, CA, Santa Clara US, TX, Austin US, OR, Hillsboro US, WA, Redmond US, Remote time type Full time posted on Posted Today job requisition id JR1973979 We are looking for experienced Systems SW Compiler Engineers for an exciting role in our PTX (Parallel Thread...
-
Backend Engineer
2 weeks ago
Oregon, United States Hyperdrive Full timeBend, OR - Engineering - Full Time Position Want to work on a killer app with a ton of real-time data? Then this isfor you. Our backends handle everything from doing complex low-latencyreal-time telemetry analysis to event indexing and storage to themundane like handling social graphs. Your work culminates into theway we power our front end apps that drivers...
-
Senior Software Engineer
4 weeks ago
Oregon, United States R&K Solutions Full timeR&K Solutions, Inc. is seeking a motivated and experienced Senior Software Engineer to join our growing Information Technology Consulting (ITC) & data analytics team. An ideal candidate will be an expert software engineer with proven expertise working on complex data-driven web applications using Microsoft platforms. Salary will be commensurate with...
-
Oregon, United States InterviewGIG Full timeCompany: Qualcomm India Private Limited Job Area: Engineering Group, Engineering Group > Machine Learning Engineering General Summary: We are looking for an AI Performance System Software Engineer to work on performance and power enhancements into the SW and HW stacks and SW tools of state-of-the-art machine learning solutions on Snapdragon platform. As a...
-
System Engineer
4 weeks ago
Oregon, United States Akina Full timeTS/SCI - Polygraph required 04-8179-SE Description : The program is seeking a Systems Engineer with strong project management skills to provide the engineering and project management for end-to-end data flows in support of the Data Normalization & Automation (DNA) TTO. The successful candidate will be able to demonstrate strong interpersonal and...
-
ASIC RTL Design Engineer
2 weeks ago
Oregon, United States Nutanix Full timeCompany: Qualcomm India Private Limited Job Area: Engineering Group, Engineering Group > Hardware Engineering General Summary: PhD in Computer Science, Electrical/Electronics Engineering, Engineering, or related field.3-5years of relevant ASIC design experience Solid experience in digital front end design for ASICs Expertise in RTL coding in Verilog/VHDL/SV...
-
System Engineer OR Sr. System Engineer
4 weeks ago
Oregon, United States Duck River Electric Membership Corporation Full timePOSTION SUMMARY The Engineering Department is responsible for the short and long-term system planning for the cooperative, as well as day-to-day engineering. This includes general engineering duties as well as special projects of a technical nature. This position contributes to the responsibilities of the department by assisting in planning and implementing...
-
Document Controller
5 days ago
Oregon, United States Nexus Engineering Group Full timeJob DescriptionJob DescriptionJob Summary:The Document Controller will be an integral part of Nexus Engineering Group, positioned directly within the refinery environment to support the document control team. The role's primary purpose is to manage and ensure the integrity of engineering documents, using CAD systems, throughout the project lifecycle. The...
-
System Engineer
4 weeks ago
Oregon, United States Stratum Networks, Inc. Full timeStratum Networks is a rapidly growing information assurance and cybersecurity solutions company that provides high-end network and security consulting to Department of Defense and Intelligence Community clients. We are looking for a talented and passionate candidate who would support one of our clients located in the Annapolis Junction, MD area. CANDIDATES...
-
Senior Design Engineer
5 days ago
Oregon, United States Qualcomm Full timeCompany: Qualcomm Israel Ltd. Job Area: Engineering Group, Engineering Group > ASICS Engineering General Summary: Qualcomm is a company of inventors that unlocked 5G ushering in an age of rapid acceleration in connectivity and new possibilities that will transform industries, create jobs, and enrich lives. But this is just the beginning. It takes inventive...
-
Machine Learning Compiler
5 days ago
Oregon, United States Qualcomm Full timeCompany: Qualcomm Canada ULC Job Area: Engineering Group, Engineering Group > Machine Learning Engineering General Summary: Today, more intelligence is moving to end devices, and mobile is becoming the pervasive AI platform. Building on the smartphone foundation and the scale of mobile, Qualcomm envisions making AI ubiquitous—expanding beyond mobile and...
-
Engineer, Senior(SQE)
5 days ago
Oregon, United States Qualcomm Full timeCompany: Qualcomm China Job Area: Engineering Group, Engineering Group > Quality Assurance Engineering General Summary: Job Target: 1. Con-work with OSAT, regular monitoring of assembly related process yield/losses, driving continuously yield/losses improvement at OSATs from mass production to ensure products/process could consistently achieve or exceed the...
-
Structural Engineering
3 weeks ago
Oregon, United States Trachte LLC Full timeStructural Engineer coordinates and exercises functional authority for engineering of structural aspects of our product line to ensure functionality, quality, cost and schedule by performing the following duties as instructed by the Director of Structural Engineering. 1. Reviews product design for compliance with engineering principles, company standards,...
-
Structural Engineering
4 weeks ago
Oregon, United States Trachte LLC Full timeJob Description Job Description Structural Engineer coordinates and exercises functional authority for engineering of structural aspects of our product line to ensure functionality, quality, cost and schedule by performing the following duties as instructed by the Director of Structural Engineering. 1. Reviews product design for compliance with engineering...
-
Oregon, United States Softcom Systems Full timeJob DescriptionJob Description Responsibilities: Help the Product Owner, Scrum Master and team translate business needs and design requirements into actionable items to help develop new products. Leverage operational judgement, technical expertise and leadership skills on turbine machinery design / product development to understand a true problem that needs...