Sr. Software Engineer (Remote) in Seattle at Vaco

Date Posted: 11/16/2020

Job Snapshot

Job Description

ABOUT YOU:

You care about quality software development. You understand that there is more to software engineering than just getting it to work -- that keeping it working continuously while extending new functionality is a greater challenge. You believe good software development is not just a technical exercise. Great software teams are composed of people collaborating directly with clients and each other to find the best solution.

This is something you strive for and seek to facilitate in the teams you have joined. You want to share your experience, judgment, and wisdom with up-and-coming developers. You care about clear communication with the business and your team to make sure you are building the right thing in a reasonable time frame. You are interested in full-stack development. You want to have an impact on the entire application stack. You follow the activities and opinions of other developers through books, blogs, podcasts, local communities, and social media. You want to work with people that you can learn from, and to learn from other colleagues.

You may have one or more side-projects in various stages of completion. You enjoy the challenge of migrating a codebase from its current state toward something better over time Maintenance We support the software we have written to run our organization, but are committed to encompassing new technologies to extend and scale our existing portfolio to meet increasing demands. We document issues and provide analysis for future actionable improvements. The challenge we face is to add or change features in an existing architecture that makes measurable improvements without breaking existing functionality. To accomplish this, we rely heavily on automated testing and deployment.

TDD We are committed to test-driven development as an integral part of our development process. Continuous integration we believe that "it works on my machine" is not good enough. Many software problems for organizations are deployment related. We minimize these issues by being sure to build and test our software using automation to continuously improve our processes. Software Craftsmanship We are committed to being a learning and teaching organization. We have an internship program in which we teach college students how to be professional developers. We share knowledge and ideas through pairing, weekly developer meetings, and one-on-one conversations. Your manager is your mentor and will spend one-on-one time with you every week talking about your career and your aspirations. Mentorship We are committed to improving the development team we have through the sharing of knowledge and ideas.

As a Senior Engineer, you are an example to your peers on how to do things. You model the behavior and attitudes you wish your peers to emulate. As a leader, you will ensure that your team is clear about what they're building and why. You communicate best practices, ensure clear communication, and foster a collaborative and inclusive culture. Leadership and Vision: As a senior engineer, you should have experience leading teams and projects. You will be the point person on a team, learning and understanding the business requirements. You will often be responsible for the design of solutions to problems. With this comes the requirement to effectively communicate your decisions, designs, and work with your team, the business, and everyone involved in the project.

The role:

  • Our average team consists of two developers, 1 QA representative, and business contact.
  • The business is in control of feature prioritization and scheduling.
  • The technical team estimates work and decide how the features will be implemented.
  • The whole team signs off on the software before it is released using our automated processes.
  • You'll pair with developers and testers to write unit and integration tests and to implement features. You'll have your changes tested in a production-like environment with a complete set of services, databases, and applications. In addition, you'll be guiding the design of the software you work on and showcasing professional development practices to others in the group along the way.
  • You will be looked at as a leader in the group.
  • We try to always do the correct thing, however, we're aware that there is room for improvement - things change, technologies evolve.
  • You'll spot opportunities for improvement and efficiency gains, evangelize your solutions to the team, and see them implemented.
  • Your professional growth is important to us.
  • To that end, we foster an open and collaborative culture in our development community and with our business teams.
  • Provide flex-time for engineers to participate in or present at conferences, meet-ups, seminars, etc. Create mentor and mentee relationships and opportunities
  • Send every developer to the conference of their choice each year Provide developers with a Pluralsight subscription

Technologies we use:

We use a mostly Microsoft .Net stack - SQL Server, C#, WPF, Winforms, IIS hosting, Signal-R with RabbitMQ as our transport for distributed processing, along with Github, Teamcity, and Octopus to build and deploy.

Technologies we ARE TRANSITIONING TO We are migrating to the AWS cloud platform:

This includes existing software for portfolio performance, client reporting, market data, and portfolio accounting, as well as software to implement new products and help scale and extend market reach in our existing products. AWS provides managed container services such as ECS and EKS (managed Kubernetes) to orchestrate and deploy micro-services, as well as Serverless compute services such as API Gateway, Lambda functions, and analytic tools over big data like Kinesis, Athena, and Redshift.

Here is a non-exclusive list of technologies we use:

C#, Ruby, Javascript, Powershell, Python, Perl and Powershell Windows 10, Linux Ubuntu, Windows Server 2019 Git, Github, GitLab CICD Visual Studio, VSCode TeamCity, Octopus NHibernate, Entity Framework, ADO, GraphQL SQL Server, Mongo, Couchbase, Redis NUnit, RhinoMocks, Moq, NSubstitute ASP .NET MVC, ASP .NET Web Api, .Net Core 3.1 Kendo UI Node, Grunt, Karma, Jasmine (for Javascript/Typescript unit testing) RabbitMQ React / Angular Terraform with AWS Provider AWS CLI Serverless.com framework AWS Amplify Kubernetes Docker

Requirements:

  • Bachelor's degree
  • 7+ years of development experience Strong .Net, and SQL skills are required, along with experience with AWS development of Serverless applications and/or micro-services deployed on EKS/K8s or ECS.
  • Extensive knowledge of object oriented programming, unit testing, and agile methods
  • Experience with web development and service oriented architecture are a plus
  • Previous supervisory experience a plus
  • Proven project track record using sound development methodologies
  • Strong communication skills
  • Ability to quickly understand complex business problems
  • Test Driven Development Public Cloud C#, SQL NoSQL, MongoDB
  • UI/UX: React, Vue, or Angular presentation framework application Silverlight apps at some point.
  • Python nice to have WinForms, not a must have.