Software Engineer
- Compensation
- Not disclosed
- Location
- Saint Paul, MN
- Work setup
- Hybrid
- Seniority
- Not specified
- Employment
- Not specified
- Experience
- 5+ years
- Category
- Software engineering
- Posted
Skills
Must have
- Bachelor's degree in Computer Science or a related field (or equivalent experience)
- 5+ years experience in full-stack software development with demonstrated technical leadership, preferably in a startup
- Strong proficiency in backend development using Go and/or Python
- Advanced experience building frontend applications with React and TypeScript
- Experience designing, building, and documenting RESTful APIs and microservices
- Solid understanding of software design patterns, data structures, and algorithms
- Production experience with Docker containerization and container orchestration
- Experience running applications in production on AWS (EC2, S3, RDS, etc.)
- Knowledge of relational database design and query optimization
- Excellence in writing clean, maintainable, and well-tested code
- Strong communication skills and experience mentoring junior developers
- Excellent problem-solving skills and ability to work independently in a fast-paced environment
- A proactive attitude with a passion for mentoring and supporting the engineering organization
Nice to have
- Experience with Kubernetes and container orchestration
- Experience with CI/CD pipelines and DevOps tooling (GitHub Actions, Jenkins, etc.)
- Experience building applications on top of AI/Large Language Models
- Understanding of event-driven architecture and message queues
- Knowledge of accessibility standards and practices
- Experience with infrastructure as code (Terraform, CloudFormation)
Full description
Job Overview
Location: St. Paul, Minnesota (Hybrid)
We are seeking an experienced Senior Software Engineer to join our team to architect, develop, and enhance our secure document generation platform. The ideal candidate will demonstrate technical leadership through innovative software design and implementation using Go, Python and TypeScript to deliver exceptional user experiences while maintaining the highest security standards.
About the Role
This position will join our small but growing engineering team focused on building our core product offerings. The successful candidate will have significant autonomy in making software design decisions and implementing best practices throughout our application stack. As we prepare for commercial growth, this role is critical to ensuring our applications are well-architected, maintainable, and deliver exceptional value to our users.
We are particularly interested in candidates who demonstrate a deep understanding of software design principles, patterns, and practices, not just coding proficiency. The ideal candidate should have well-formed opinions about application architecture, API design, state management, and testing strategies, backed by real-world experience. We value team members who can articulate the "why" behind technical decisions and who approach software development as a craft that creates business value.
As a distributed team, we place high value on proactive communication, transparency, and a bias for action. Your ability to communicate complex technical concepts clearly, mentor junior developers, and take initiative on impactful projects are essential qualities for success in our environment.
Key Responsibilities
Application Architecture & Development
- Design and implement scalable, maintainable application architectures across the full technology stack
- Develop robust backend services and APIs using Go and Python with a focus on performance and security
- Create responsive, intuitive frontend interfaces using React and TypeScript following modern best practices
- Optimize application performance and resource utilization throughout the technology stack
- Independently design, develop, and maintain high-performance web applications and APIs
- Architect solutions for scalability and efficiency, ensuring robust backend systems and intuitive frontend interfaces
Technical Leadership
- Lead complex feature development from conception through deployment
- Make sound architectural decisions balancing technical excellence with business needs
- Provide mentorship and code reviews to help junior developers grow their skills
- Champion software quality through testing, documentation, and knowledge sharing