Software Engineer (.NET)
Chicago, IL 60610
Software Engineers are the backbone of modernizing our business processes using a forward-thinking technology strategy to extend our platforms and drive our investment decisions. We leverage cloud-native technologies to drive the execution of both greenfield projects and projects extending the capabilities of our existing platforms and systems. We are constantly looking for opportunities to leverage new technologies to deliver data across the enterprise to vendors and clients globally. We have a strong and evolving use of cloud-based, serverless, distributed technologies including Azure Functions, SQL Azure, AWS Lambda, non-relational databases, and RPA. We have a DevOps culture with a strong focus on automation, testability, and maintainability. The ideal candidate should enjoy working with optimized development processes in an environment that leverages SRE practices including continuous integration and continuous delivery.
The individual will be involved in the following critical activities:
- Design and develop platform features.
- Develop software to enable and further automate the investment decision making, reporting, and analysis conducted by our team members and our clients.
- Work on a team to ensure a consistent technical landscape aligned to enterprise architecture strategy and vision.
- Collaborate with architects and team members to ensure that all technology initiatives are implemented within the framework of our software development standards.
- Provide assistance and technical guidance to Business Analysts, Software Engineers, and others to diagnose and resolve defects identified during testing phases.
- Continue to evaluate our technology platform against industry trends and make recommendations, as appropriate.
- Willingness to wear many hats, work with legacy technologies while still driving innovation, fill gaps in team function as needed, and be a dynamic collaborator.
EDUCATION, SKILLS AND EXPERIENCE REQUIREMENTS
The ideal experience and critical competencies for this role include the following:
- Bachelor’ s Degree in Computer Science, Business or equivalent, relevant work experience.
- 3+ years’ experience with Microsoft .NET/C#, including modern versions of .NET including .NET Core.
- 5+ years of experience demonstrating strong understanding of object oriented design and development principles.
- Working knowledge and practice working in Agile development environment with strong engineering principles (XP, SCRUM etc.) required.
- Experience with serverless tools such as Azure Functions or AWS Lambda desired.
- Solid Experience with Continuous Integration/Deployment tools such as Azure DevOps, AppVeyor, Jenkins, GitLab CI, GitHub Actions.
- Understanding of relational, non-relational, and unstructured database design and development using platforms such as SQL Azure, Microsoft SQL Server, NoSQL solutions (e.g. MongoDB, Cosmos DB, RavenDB) and other high-powered data platforms is a plus.
- Demonstrated experience with automated unit and acceptance level testing. Experience working in a TDD environment is a strong plus.
- Experience with message based and OpenAPI REST based integration a strong plus.
- Experience with DevSecOps and a culture of security a strong plus.
- Ability to adapt within a rapidly changing environment.
- Attention to detail and concern for quality and accuracy of final product.
- Demonstrated team player, self-starter, and independent thinker.
- Outstanding problem solving and decision-making skills.
In terms of cultural fit, the successful candidate will be self-motivated and energized by working amongst a group of thoughtful, smart, fast-paced and successful colleagues. He or she will enjoy being a part of an organization focused on excellence and will be a naturally collaborative individual who enjoys interacting with individuals at all levels. Additionally, he or she will be a strong team player with a proactive approach and the ability to take initiative with discretion and judgment.
At a Glance - GCM’ s Software Engineering Organization
- A modern software engineering group embedded inside of a financial services firm
- Teams follow a contemporary approach to software engineering focusing on test driven development, pair programing, continuous integration, distributed systems and other best practices
- Teams are empowered to deliver product requirements through cross functional team ownership
- A strong team culture inside and outside the office
- Adaptive to change and feedback from team members