Key Duties and Responsibilities
- Create and implement innovative software solutions for the STK Platform team to improve existing products and build our next generation of products
- Design, build, and maintain clean and reliable code
- Participate in planning, architecture, and research at a product level
- Employ best practices and help to maintain them through technical reviews and mentoring
- Identify bottlenecks and bugs. Perform complex bug verification and release testing.
- Develop solutions and collaborate with the QA team to address the issues
- Take concepts from initial requirements through design, implementation, test, deployment, and maintenance in a production environment
- Work independently without direct supervision and may function as a leader and software architect. Act as a technical reference within the team.
- May be responsible for technical leadership of a small technical team in the future but primary duties are of an individual technical nature
Minimum Education/Certification Requirements and Experience
- BS in Computer Science, Engineering, or related field with 8 years’ experience, MS with 6 years’ experience, or PhD with 4 years’ experience
- Demonstrated expertise in object-oriented design, functional programming, algorithms, data structures, and debugging
- Significant experience in C++ and either C# or Python development for commercial applications
- Experience with software configuration management tools (e.g., Git, Perforce)
- Proven track record of crafting robust, readable, and efficient code
Preferred Qualifications and Skills
- Excellent technical knowledge of C++, C#, Python, API development, and software architecture
- Experience developing software in both Windows and Linux environments
- Experience delivering high-quality products in a large-scale commercial software development environment
- Experience with modeling and simulation software
- Solid understanding of unit testing, and familiarity with frameworks (e.g. NUnit)
- Excellent communication and interpersonal skills
- Experience with desktop and/or web UI development
- Proficiency with containerization technologies (e.g. Docker)
- Ability to work collaboratively in a geographically distributed team