Software Engineer I, .NET

Hagerty
2dRemote

About The Position

As a Software Engineer I, on the Payment Services team, you will have a critical role as we focus on expanding our API collection to support the needs of our back-office teams, such as Treasury and the Call Center, through reconciliation, digital check processing, and account notifications. Through its user experiences, built upon a set of HTTP APIs, the Payment Services team supports: integration with multiple upstream payment processors to facilitate payments for all internal Hagerty teams supports payments through their entire lifecycle including capture, refunds, reconciliation, and reporting synchronizes changes to customer payment methods to allow stakeholders to react as needed protects customer personal identifiable information (PII) and PAN data Ready to get in the driver’s seat? Join us! What you’ll do Develop maintainable, scalable, secure, and resilient software by: Thoroughly understanding your tasks including the associated business needs, architectural and system interaction designs, and operational need. Such tasks tend to be well-defined and touch only a small portion of a single service. Writing clean, human-readable code. Track and consistently apply the comments received on your code to future work. Helping to develop or improve existing comprehensive and automated unit, integration, and end-to-end tests. Actively reviewing the telemetry (logs, metrics, etc.) produced by your code to ensure it is easy to support. Develop practices that help you view this information the same as other people who didn’t write the code. Own and support features, modules, and products by: Developing a working understanding of your team’s products – its purpose and its capabilities. Understanding how your assigned tasks relate to the feature your team is working to deliver. Actively practice troubleshooting and participate in the on-call support rotation for team’s production services. Comprehending and monitoring the product’s key operational metrics and understanding how your work relates to them. Improve your skills as an engineer by: Carefully researching and deliberately practicing the tools used throughout the software development lifecycle including IDEs, SDKs, source control, databases, operating system tools, deployment tools, logging and monitoring systems, etc. Learning to recognize code complexity and methods for simplifying it. Learning and applying practices such as object-oriented design and design patterns with a special focus on the concepts of encapsulation and coupling. Introspecting on, and seeking feedback of, your current communication and behavioral patterns and actively and continually working to improve them. Contribute to and engage in a collaborative environment by: Being an active participant in all team activities: team ceremonies, banter, troubleshooting, design discussion, work breakdowns, etc. Asking for explanation on concepts, code, and discussions you don’t understand. This is one of the most powerful things junior engineers can do. Asking for help in a timely manner. Balance researching on your own to ask good questions against waiting too long and potentially hurting your team’s chances of completing their work on time. Actively listening. This might describe you Completed some professional training (e.g., college, bootcamps) in software development. Comfortable working and actively participating within smaller (5-10 people) technical groups. Eager to deeply learn, both independently and with help, our technologies and patterns such as: Languages: C#, Typescript Interservice Communication: HTTP API patterns (ReST, RPC, GraphQL), brokered and non-brokered messaging Security: SAML, OAuth 2, OIDC, data encryption, signing, CSRF System Performance: load testing, application profiling, OS profiling Operational Readiness: diagnostic and audit logging, metrics, tracing, monitoring, alerting Deployment: VMs, containers, cloud providers, configuration management, canary deployments Network: TCP/IP, HTTP, Firewalls, load balancers Able to clearly communicate your thoughts and actively listen to and integrate the thoughts and comments of others.

Requirements

  • Completed some professional training (e.g., college, bootcamps) in software development.
  • Comfortable working and actively participating within smaller (5-10 people) technical groups.
  • Eager to deeply learn, both independently and with help, our technologies and patterns such as: Languages: C#, Typescript Interservice Communication: HTTP API patterns (ReST, RPC, GraphQL), brokered and non-brokered messaging Security: SAML, OAuth 2, OIDC, data encryption, signing, CSRF System Performance: load testing, application profiling, OS profiling Operational Readiness: diagnostic and audit logging, metrics, tracing, monitoring, alerting Deployment: VMs, containers, cloud providers, configuration management, canary deployments Network: TCP/IP, HTTP, Firewalls, load balancers
  • Able to clearly communicate your thoughts and actively listen to and integrate the thoughts and comments of others.

Responsibilities

  • Develop maintainable, scalable, secure, and resilient software
  • Own and support features, modules, and products
  • Improve your skills as an engineer
  • Contribute to and engage in a collaborative environment
© 2024 Teal Labs, Inc
Privacy PolicyTerms of Service