Front-End engineering principles

4 weeks ago


Oregon, United States Surfe Full time

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



  • Oregon, United States Intel Full time

    Front 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 time

    First 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...


  • Oregon City, United States First USA Full time

    First 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...


  • Oregon, United States Nutanix Full time

    Company: 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...


  • Oregon, United States Lowe's Full time

    About 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...


  • Oregon, United States NVIDIA Full time

    Senior 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 time

    Bend, 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...


  • Oregon, United States R&K Solutions Full time

    R&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 time

    Company: 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 time

    TS/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...


  • Oregon, United States Nutanix Full time

    Company: 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...


  • Oregon, United States Duck River Electric Membership Corporation Full time

    POSTION 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 time

    Job 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 time

    Stratum 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...


  • Oregon, United States Qualcomm Full time

    Company: 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...


  • Oregon, United States Qualcomm Full time

    Company: 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...


  • Oregon, United States Qualcomm Full time

    Company: 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...


  • Oregon, United States Trachte LLC Full time

    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 principles, company standards,...


  • Oregon, United States Trachte LLC Full time

    Job 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 time

    Job 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...