Search

Senior Software Engineer

PublishedPublished: 6/14/2022
Technology

Job Description

ModMed is hiring a driven Senior Software Engineer to join our Platform Foundations team. This is an exciting opportunity to join a fast-paced healthtech company that is truly Modernizing Medicine!

\n


\n

The Role

\n


\n

You'll be building for other engineers, not end users. Our "customers" are internal product teams. This reframes everything: API ergonomics, backward compatibility, and documentation aren't nice-to-haves—they're the core of the job.

\n


\n

Responsibilities:

\n


\n

    \n
  • Own features/libraries end-to-end: design, implementation, documentation, and rollout.
  • \n

  • Design APIs with the consumers in mind, weighing backward compatibility and API ergonomics.
  • \n

  • Develop robust, scalable foundational services (e.g., enterprise-sharding, ema-hub) and maintain the internal Java/Spring Boot microservice framework (nicknamed Ragnarok).
  • \n

  • Debug across service boundaries and provide support to teams consuming the framework.
  • \n

  • Drive technical direction for foundational components and cross-cutting concerns, making architectural decisions with org-wide impact.
  • \n

  • Mentor engineers, raise the bar in code reviews, and lead developer-enablement efforts (patterns, docs, tooling).
  • \n

  • Build strong relationships across teams; explain complex tradeoffs to non-platform engineers.
  • \n

  • Maintain a support mindset, treating unblocking other engineers as a primary responsibility.
  • \n

\n


\n

Skills and Requirements:

\n


\n

    \n
  • Education: Bachelor's or Master's degree in Computer Science or a related field.
  • \n

  • Java: Strong proficiency with modern Java (records, sealed types, streams, concurrency); comfortable reading and reasoning about others' code.
  • \n

  • Spring Boot/Spring: Deep knowledge of auto-configuration, @Conditional beans, starters, and @ConfigurationProperties.
  • \n

  • Library/Framework Mindset: Experience designing clean public APIs, managing semantic versioning, deprecation paths, and mitigating breaking changes.
  • \n

  • Testing Rigor: Strong TDD approach using JUnit and Testcontainers; treats tests as first-class deliverables.
  • \n

  • Distributed Systems: Understanding of idempotency, at-least-once delivery, retries, backoff, distributed locking, and eventual consistency.
  • \n

  • Multi-tenancy: Knowledge of tenant/source-context propagation across HTTP/Kafka/SQS boundaries (relevant to enterprise-sharding).
  • \n

  • Data & Infrastructure:
  • \n

  • AWS (SDK v2): DynamoDB, S3, SQS, Athena, MySQL with IAM auth.
  • \n

  • Kafka: Producers/consumers, consumer groups, DLT handling, Serdes (JSON/Avro/Protobuf).
  • \n

  • Maven: Multi-module builds, dependency management/BOMs.
  • \n

  • Observability: Structured JSON logging, Micrometer/Prometheus metrics.
  • \n

  • Containers: Docker, docker-compose, Jib-based image builds.
  • \n

  • Soft Skills: Developer empathy, documentation discipline (cookbook-style), backward compatibility focus, and excellent communication.
  • \n

\n


\n

Nice-to-Haves:

\n


\n

    \n
  • OAuth2/scope-based authorization, security filter chains.
  • \n

  • Resilience patterns (Resilience4j).
  • \n

  • OpenSearch / Elasticsearch.
  • \n

  • Field-level crypto, ShedLock/scheduled-job coordination.
  • \n

  • Prior experience building internal platforms, SDKs, or developer tooling.
  • \n

\n


Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...