Donnelley Financial Solutions is a values-driven organization that delivers innovative software and service solutions for essential financial reporting and capital markets transactions. The Senior Software Engineer will be responsible for designing and implementing resilient and efficient frontend and backend services, ensuring high-quality software through automated testing, and addressing technical debt while collaborating with a diverse team.
Responsibilities:
- Design and implement concise, modular, cohesive, frontend and backend services in a distributed system context that are resilient, efficient, and reliable
- Ensure automated tests are highly effective in terms of software quality, refactor flexibility, and integration/delivery speed
- Concurrent and asynchronous software design/development
- Advanced asynchronous and resilient network communications design and implementation
- Extensive usage of all aspects of observability systems from experienced instrumentation of code to well-designed queries, dashboards, and alerts
- Data driven optimization of latency, compute, memory, storage, and network traffic
- Maintain awareness of production system performance, errors, and code usage
- Communicate with clarity with diagrams, documentation, and presentations to other developers, dev teams, SREs, and management
- Optimize build, deployment, and IaC provisioning pipelines
- Rigorous analysis of escaped defects to determine corrective actions with depth of insight
- Design and develop defensively to maintain or increase security going beyond OWASP and zero trust patterns by truly understanding the area of the system being worked on
- Rigorous and proficient review and clear feedback on pull requests by team members
- Keep up with relevant technologies, techniques, tools, and patterns
- Build software with people. Product managers, other developers, SREs, junior engineers, senior engineers, and offshore. Construct software that matters!
- Constantly address technical debt. Shine a light on it, even when it hurts
- Plan, lead, or manage projects when called upon to do so while remaining hands on
Requirements:
- Commitment to your software development, the products you work on, and the firm
- 5-10 years of experience working in full stack distributed systems
- BS in Computer Science or equivalent work experience
- Experience meeting secure coding standards and willing to participate in financial systems security practices
- Ability to explain complex topics to managers/directors, program/product managers
- Strong in C#
- Must be willing to work with C#, Node JS, Typescript
- REACT (preferred), Angular, or other SPA frontend development tech stack
- Azure (Preferred), AWS, and/or GCP
- Distributed systems design patterns and experience
- Concurrency and/or asynchronous operations
- Messaging systems and patterns using tech like Azure Service Bus, Rabbit MQ, etc
- In depth REST API experience
- Build pipelines and ideally IaC such as Terraform
- Typescript/JavaScript
- RDBMS such as SQL Databases such as SQL Server or PostgreSQL
- WebSockets or other push technologies
- Algorithm design/optimization and combinatorial problem solving
- Profiling for compute and memory optimization