Principal Software Engineer (C#/SQL/Azure)
loanDepot · Plano, TX · 5 mo ago
Engineering$170k–$233k/yrFull-time
About the role
This position has an emphasis either on the front-end or backend development focus depending on the placement of the role and team.
Responsibilities
- Develops software: Designs and implements new technologies, frameworks and platform improvements.
- Subject-matter expert for platforms.
- Testing: Expert, builds happy-path and sad-path unit tests. Builds tests which validate key capabilities or fragile code. Builds automated functional and integration tests.
- Works with the team’s graphic designers to obtain usable assets.
- Implements and/or stylizes controls both from scratch and from reference material.
- Participates in UI/UX testing.
- Designs, develops and delivers solutions that meet business line and enterprise requirements.
- Creates enterprise-grade application services.
- Participates in rapid prototyping and POC development efforts.
- Advances overall enterprise technical architecture and implementation best practices.
- Assists in efforts to develop and refine functional and non-functional requirements.
- Participates in iteration and release planning.
- Performs functional and non-functional testing.
- Contributes to overall enterprise technical architecture and implementation best practices.
- Informs efforts to develop and refine functional and non-functional requirements.
Requirements
- Development practices and methodologies: Deep experience with common development methodologies, including the pros and cons of each. Deep understanding of development methodologies including Agile, Spiral and Waterfall. Experience in one or more specific implementations such as Kanban, Scrum or Behavior Driven Development (BDD). Familiar with Agile scaling methodologies such as Scrum at Scale, Scaled Agile Framework (SAFe) and Large-Scale Scrum (LeSS).
- Leadership and Coaching: Creates a network of influence by building solid relationships with others. Proven success driving initiatives across multiple teams. Works with their mentor regularly. Actively mentors one or more colleagues. Helps to drive organizational change and improvement by actively looking for ways to be more efficient and work better together. Regular mentorship of one or more colleagues. Open to coaching, takes direction well.
- Relevant Languages: Expert competence with multiple relevant languages. 7+ years of experience.
- Analysis: Deep experience with advanced methods for analyzing information of almost any kind.
- Tool Knowledge: IDEs, editors, debuggers, open source and commercial alternatives, ORMs, code analysis, containers, VMs, cloud (AWS, Azure) etc.
- Data Structures: Deep understanding of many data structures, including arrays, records, linked lists, dictionaries, heaps, graphs, hashtables, queues, etc. Understands how data structures impact performance, concurrency and other considerations. Knowledge of emerging structures and alternative ways to manage data (filestreams, key/value pairs, blockchain, etc.).
- Algorithms: Deep understanding of many algorithms such as Bubble Sort, Binary Sort, Backtracking, Quicksort, Mergesort, Breadth/Depth First Searches, Divide and conquer, Tree Traversals, etc. Understands how algorithms impact performance, caching, memory utilization and other considerations. Knowledge of advanced algorithms such as Kruskal's Minimum Spanning Tree, Dijkstra's shortest path, Single-Source Shortest Paths, etc.
- Systems: Deep experience of how programming languages work including compilers, linkers, interpreters, threading, sockets, network protocols, caching, garbage collection, memory addressing, scaling, etc. Understands the impact of these on performance, resource utilization, etc. Deep understanding of architectural concepts such as Service Oriented Architecture, microservices, etc. and the performance, maintenance, scaling and other considerations of these approaches.
- Design Patterns: Deep understanding of many design patterns the pros and cons of different approaches. Knows when to apply different patterns and understands performance and maintenance impacts of various patterns.
- Source/Version control: Deep understanding of one or more source/version control systems. Develops branching and merging strategies. Experience with Distributed Source Control.
- Webservices and APIs: Expert, deep and broad knowledge of the entire API suite, knows many from memory. Designs and implements new APIs, directs colleagues in doing the same. Experience building APIs and services using SOAP and REST.
- Code Quality and Readability: Creates code which is readable, clear and concise. Develops and adheres to coding standards based on best practices. Develops guidelines for coding best practices. Builds frameworks for validations and testability. Builds and/or implements tools to analyze and improve code quality. Sets design and coding standards.
- Database: Advanced queries and table design. Understanding of indexing and normalization. Capable of performance tuning queries. Understanding of both DDL and DML. Basic administration. Understanding of all database capabilities (triggers, views, stored procs, etc.). Familiarity with ORM tools. Understanding of datamart and data warehousing concepts including variant schemas (Star, Snowflake). Familiar with big data patterns.
- Responsive design and modern web techniques: Expert in designing best practices for page layout, typography and usability.
- Microsoft tools: Strong experience working with Microsoft (Visual Studio 15, TFS, IIS8) and related tools strongly desired.
- .NET Framework: Expert in developing enterprise level systems on the .NET framework using C#.
- Web Services and APIs: Expert in developing web services.
- Visual Studio: Proficient in Visual Studio 2013/2015 to develop enterprise grade software.
- Service Oriented Architecture: Expert in service oriented architecture design principles, patterns and best practices.
- Object-Oriented Development: Expert in modern object-oriented development techniques.
- Enterprise Architecture: Expert in enterprise architecture principals, patterns and practices.
- SQL and Relational Database Design: Expert in SQL and relational database design.
- Web API, REST, JSON: Expert in designing and implementing new APIs, directing colleagues in doing the same. Expert in building APIs and services using SOAP and REST.
- Unit Testing: Expert in creating unit testing.
- MS SQL Server: Solid understanding of MS SQL Server preferred.
- MS IIS: Solid understanding of MS IIS preferred.
- Web UI Development: Strong experience working with Javascript and Javascript UI frameworks is a plus.
- Continuous Integration: Experience with continuous integration tools and processes is a plus.
Preferred Requirements
- B.S. in Computer Science or B.S. Software Engineering or B.A. in Computer Information Systems or equivalent education or experience.
- Minimum ten (10) + plus years of relevant technology job experience.
- Experience in the Mortgage industry preferred.