DEV Community

Mat Silva
Mat Silva

Posted on

1

What Senior Frontend Developers Actually Care About

Years ago, I completed a take-home challenge that landed me a senior frontend job at LogDNA. Technology has moved on—Playwright is replacing Cypress, SSR frameworks like Next and Remix surpassed single-page apps—but the core principles haven’t changed. Good principles outlast tech trends.

1. Architecture That Scales

Senior developers build code designed to grow. Scalability isn't just about technical performance or user experience; it also involves internal processes to easily onboard new developers and sustain long-term maintenance:

  • Clear Structure: Logical separation between UI and backend, clearly shown in a monorepo structure:
  packages/
    ├── ui/                  # Frontend application
    │   ├── src/
    │   │   ├── api-client/  # API client layer
    │   │   ├── form/        # Form components and state
    │   │   ├── layout/      # Layout components
    │   │   ├── translate/   # i18n utilities
    │   │   └── types/       # TypeScript type definitions
    │   └── package.json
    └── server/              # Backend application
        └── package.json
Enter fullscreen mode Exit fullscreen mode
  • Predictable Typing: Strongly typed systems (e.g., TypeScript) with shared types:
  export interface AlertDetails { message: string; condition: 'HOURLY' | 'DAILY'; recipients: string[]; }
Enter fullscreen mode Exit fullscreen mode
  • Simplified State Management: Reactive state handling with minimal boilerplate (MobX):
  class FormInputState<T> { values = observable({}); errors = observable({}); }
Enter fullscreen mode Exit fullscreen mode
  • Flexible Forms: Real-time, robust validation (Joi schemas):
  const alertSchema = { message: Joi.string().required(), recipients: Joi.array().items(Joi.string().email()).required() };
Enter fullscreen mode Exit fullscreen mode

2. Testing as a Priority

Quality code requires thorough testing:

  • Clear Logic Testing: Straightforward unit tests for components.
  • Real-world Scenarios: Cypress for end-to-end user behavior.
  • Inclusive Design Testing: Axe-core for accessibility.
  • Comprehensive Coverage: Validating both success and error scenarios.

3. Developer Experience

Good developers write readable, maintainable code:

  • Consistent Formatting: Prettier to streamline readability.
  • Logical Organization: Components, tests, and styles grouped logically.
  • IDE Integration: TypeScript catches errors during development.
  • Clear Documentation: Simple, comprehensive README files.

4. Thoughtful User Experience

Senior developers see what others miss:

  • Immediate Feedback: Real-time validation with clear interactions:
  form.validateValue('recipients', emails);
Enter fullscreen mode Exit fullscreen mode
  • Accessibility: Keyboard navigation, ARIA roles, and managed focus.
  • Transparent States: Clear loading indicators and actionable error messages:
  <button disabled={!form.isValid || loading}>{t('form.save')}</button>
Enter fullscreen mode Exit fullscreen mode
  • Inclusive Design: UX designed for all users.

5. Internationalization from the Start

Thinking global from day one:

  • Scalable Translations: Externalize all strings:
  await i18next.init({ fallbackLng: 'en', backend: { loadPath } });
Enter fullscreen mode Exit fullscreen mode
  • Clear Localization: Maintainable file structures by locale.

6. Performance Matters

Performance is prioritized

  • Optimized Builds: Fast-loading, minimal bundle sizes.
  • Maintainable Build Outputs: Cleanly structured artifacts.
  • React Render Optimizations: Using MobX for precise JSX updates, outperforming React’s native state handling in efficiency and clarity:
  <Observer>{() => <TextInput value={form.values.message} />}</Observer>
Enter fullscreen mode Exit fullscreen mode

7. Built-in Security

Security isn't optional:

  • Strict Validation: Sanitized inputs with schemas:
  Joi.string().email().required()
Enter fullscreen mode Exit fullscreen mode
  • HTML Escaping: Preventing XSS by escaping HTML:
  const sanitized = Object.assign({}, request.payload, { message: Hoek.escapeHtml(request.payload.message) });
Enter fullscreen mode Exit fullscreen mode
  • CORS Protection: Configured secure cross-origin resource sharing:
  cors: { additionalHeaders: ['Access-Control-Allow-Headers'], origin: [CORS_ORIGIN] }
Enter fullscreen mode Exit fullscreen mode
  • Data Discipline: Discerns what data presents risks.
  • Resource Handling: Configured secure access policies.

8. Choosing Quality Tools (at the Time)

Quality is in careful selection:

  • Intentional Choices: Tools aligned with clear goals (e.g., TypeScript, MobX, Tailwind).
  • Balance and Pragmatism: Effective solutions, minimal complexity.

What This Means

Senior frontend developers aren’t swayed by trends. They adhere to timeless principles:

  • Maintainability
  • Scalability
  • Usability
  • Reliability
  • Accessibility
  • Global readiness
  • Performance

The Core Idea

Hiring senior developers is about finding those who build on lasting principles. They know it's not just about what to build but how to build it. Solid foundations always matter more than the latest technologies.

Image of Datadog

The Future of AI, LLMs, and Observability on Google Cloud

Datadog sat down with Google’s Director of AI to discuss the current and future states of AI, ML, and LLMs on Google Cloud. Discover 7 key insights for technical leaders, covering everything from upskilling teams to observability best practices

Learn More

Top comments (0)

AWS Security LIVE!

Join us for AWS Security LIVE!

Discover the future of cloud security. Tune in live for trends, tips, and solutions from AWS and AWS Partners.

Learn More

👋 Kindness is contagious

DEV is better (more customized, reading settings like dark mode etc) when you're signed in!

Okay