Software Engineer
Carbon Five
Job Location
Job Type
Full TimeVisa Sponsorship
Not AvailableRelocation
AllowedThe Role
Joining the Team
You will work on a single cross-disciplinary product development team—engineers, designers, and product managers—working full-time, side-by-side with one of our clients. Together, you will learn the problems they want to solve, get to know the people who are experiencing them, and design potential solutions. You will iteratively develop and release working software using established agile development practices like experiment-driven design, test-driven development, small and frequent releases, and continuous integration and deployment.
Your Role
As a Software Engineer, you will work with the rest of your team to scope, design, build, test, and deliver new features. You will pragmatically advocate for agile engineering practices, including test-driven development, collective code ownership, and continuous integration. You will work at all levels of the stack, sharing your expertise where you have experience and learning from your colleagues where you’d like to grow.
Your typical week may include the following:
- Writing test-driven code while pair programming with other engineers
- Working closely with stakeholders, product managers, and designers to shape product direction and discuss the feasibility of prototypes
- Participating in iteration planning meetings where your team will refine feature definition, estimate stories, and prioritize the highest value work
About You
This job might be right for you if you:
- Prefer collaboration over working solo
- Take a collective approach to problem-solving and decision-making
- Enjoy being given goals and finding ways to achieve them
- Enjoy using your creativity and resourcefulness to tackle unexpected challenges
- Enjoy participating in all aspects of product development, including generating ideas, prototyping and building solutions, talking to users, testing outcomes, and integrating learnings into future work
- Want to learn new languages, paradigms, patterns, and frameworks
To be considered for this role, you will need:
- Strong written and verbal communication skills
- A high degree of empathy for others
- The ability to develop, test, and deploy a complete application using at least one of the following languages: JavaScript, TypeScript, Ruby, Java, Python, Elixir, Go, Swift, or Kotlin
- The ability to address bugs on your own, effectively using developer tools to identify the root cause(s) and define the work to resolve them
- Knowledge of web fundamentals, including the TCP/IP stack, HTTP, the DOM, HTML, and CSS
- Experience with a relational database, including familiarity with common query optimizations (e.g., using joins, eliminating N+1s)
- Experience with a version control system, preferably Git
You’ll receive additional consideration if you have:
- Experience consulting or working as a freelancer
- Experience as a member of a professional agile software development team
- Consistent involvement in the tech community (e.g., speaking at conferences and meetups, mentoring less experienced practitioners, leading or volunteering time to organizations committed to supporting underrepresented groups in our industry)
- A track record of self-directed, continuing education
- Experience with multiple device platforms (e.g., web, iOS, Android), programming languages, programming paradigms (e.g., object-oriented, functional)
- Experience with non-relational data stores
- Experience with cloud platforms (e.g., AWS, GCP, Azure), containerization tools (e.g., Docker), and orchestration systems (e.g., k8s)
- Experience building accessible user interfaces
- Experience implementing visual and interactive designs using advanced JavaScript and markup/stylesheet languages
- Experience with commonly-used back-end frameworks (e.g., Express, Rails, Spring) and front-end frameworks (e.g., React, Angular, Vue.js)
- The ability to architect applications at different scales, from server-side rendered web applications with hundreds of users to service-oriented architectures serving millions to fully decentralized networks usable by billions