The Senior Software Engineer manages web applications including design, development, deployment and maintenance phases to support internal and external business processes and service offerings.
- Work with product team to develop requirements and analyze technical specifications for existing applications and new software developments.
- Adhere to and enforce departmental standards for design, documentation and development.
- Maintain and modify code for existing business applications to meet new system requirements, debug existing applications, and enhance system usability.
- Monitor and enforce the company's ongoing customer service and quality control efforts by participating in peer code reviews and project management.
- Work closely with the Database team to design and develop models to meet application needs.
- Work with quality assurance resources to ensure development meets requirements for security, usability, and requirements specifications.
- Work closely with Business Analysts to resolve client issues in a timely manner.
- Establish good data stewardship practices to ensure that data is being used ethically and care is taken to enrich and protect data belonging to the company or the client.
- Understand and participate in infrastructure maintenance including log maintenance, determining status of running applications, and interconnectivity between applications and their associated resources.
- Identify performance issues and develop solutions to remediate them as well as assess the needs for scaling an application.
- Review and update technology tools and frameworks to keep software current.
- Maintain scheduled jobs.
- Schedule and participate in outage processes.
- Provide peer support and develop new training and/or participate in individual or departmental training sessions to keep current on new technologies and programming standards.
- Maintain and schedule sprints to meet company development goals and ensure employees are not over or under-utilized.
- Establish goals and success indicators for development team and individuals.
- Secondary on-call availability for support and troubleshooting applications.
- Meet or exceed annual goals.
- Comply with all company, divisional and departmental policies and procedures.
- Represent the company to clients and the public.
- Manage time sensitive tasks on a daily basis.
- Work flexible hours, including evenings and weekends, as needed.
- Protect confidential information.
- Contribute to departmental and company goals and objectives.
- Other duties as required.
- 3-5 years experience in a software engineering role
- Bachelor’s degree in a computer or math-related field.
- A high degree of attention to detail.
- Excellent analytical, problem solving, math and communication skills.
- An unquestionable work ethic with the ability to accomplish established goals in a timely manner either independently or as part of a team.
- Experience supervising technical resources, coordinating work efforts with project managers and company leadership to define project scope, doing capacity planning for existing resources, estimate timelines, mentoring/coaching both subordinates and peers, and demonstrated ability to collaborate across teams to accomplish high impact initiatives.
- Strong written and oral communication skills. Experience providing direct training and documentation for adherence to standards as well as promoting consistency and growth.
- Comfort speaking to small or large groups or giving presentations.
- Strong technical documentation skills for creating and developing a shared knowledge base.
- Ability to present highly technical or niche concepts in an approachable and engaging way to non-technical peers. Additionally possesses the skills to address concerns with accuracy or approach in a way that promotes open communication and engagement.
- Ability to collaborate between teams and with team members to analyze and translate specifications into code as well as communicate impediments when they arise.
- Strong understanding of Agile software development.
- Strong understanding of web application interface design, including application layouts and usability studies.
- Strong understanding of object oriented design.
- Ability to manage versioning of production systems, and understanding of how teams work collaboratively using version control, and how to facilitate enterprise level CI/CD used by production teams for proper change management control practices.
- Implement and update automated testing using test-driven development methodology.
- Document completed work and other development processes.
- Fundamental knowledge of a web programming language and the stack involved in receiving and responding to web requests.
- Fundamental knowledge of how databases are built, queried, and used for web applications.
- Fundamental knowledge of the following networking protocols: TCP/IP, HTTP, DNS, SSH, TLS/SSL, FTP/SFTP, LDAP.
- Fundamental knowledge of Windows & Linux Networking.
- Web servers: Apache and NGINX
- Fundamental knowledge of AWS Services: SES, SNS, S3, Lambda, SQS and triggers, ELB and API Gateway, EC2 Instances and auto scaling groups, CloudFormation, Amplify, CloudWatch and EventMachine
- Frameworks & Concepts: MVC, Rails, AJAX, jQuery, .NET
- Service Oriented Architecture: REST, SOAP, Identity Federation.
- Git Version Control (GitLab knowledge is a plus).
- Databases: SQL Server, MySQL.
- Compliance: PCI and SOC.
Employee Referral Bonus
This position is eligible for a $1,000 employee referral
Salary Range Disclosure
The base range represents the low and high end of the Togetherwork salary range for this position. Actual salaries will vary and may be above or below the range based on factors including, but not limited to location, experience, and performance. The range listed is just one component of Togetherwork's total compensation package for employees. Other rewards may include discretionary bonuses, long term incentives, a flexible paid vacation/personal time policy, 6 weeks paid parental leave and more.
US Remote: $65,000 - $85,000 USD per year