Software Engineer II
Role details
Job location
Tech stack
Job description
Lean Startup or Agile development methodologies What is the work?
- Front-End Development
- Designing and implementing user interfaces (UI) using frameworks like React, Next
js.
- Ensuring a responsive and intuitive user experience (UX).
- Writing efficient interactive web applications.
- Debugging and optimizing front-end performance.
- Back-End Development
- Developing server-side logic using languages like Java Spring boot, Python.
- Designing and managing databases (SQL, NoSQL) for data storage and retrieval.
- Implementing RESTful APIs for communication between front-end and back-end.
- Ensuring security measures, such as authentication and authorization (e.g., JWT,
Oauth).
- DevOps & Deployment
- Setting up and managing cloud services like Google Cloud.
- Automating CI/CD pipelines for code deployment.
- Monitoring application performance and scaling infrastructure as needed.
- Testing & Debugging
- Writing unit, integration, and end-to-end tests.
- Debugging issues across the entire stack.
- Ensuring cross-browser and cross-platform compatibility.
- Collaboration & Agile Development
- Working with designers, product managers, and other engineers to implement
features.
- Participating in Agile methodologies
- Reviewing code, maintaining documentation, and mentoring junior developers.
What are the Responsibilities?
- Works on defined technology projects / tasks with occasional guidance
- Writes production-ready code and tests that meet acceptance criteria, are easily
testable, documented, easily understood by other developers, and account for edge cases, security, and errors.
- Creating, configuring, and supporting build and deployment pipelines.
- Capable of on-call support, debugging, and troubleshooting moderately complex
issues within team services. May seek guidance from more senior engineers for more complex issues.
- Grows technical skills and experience, starting to lead small initiatives
independently.
- Able to collaborate across teams, learning how to influence within the team, and
serve as mentor for more junior engineers.
- Recommends changes to processes and tools at the team level based on industry
standards, patterns, and best practices.
- Able to navigate more complex work that may span multiple systems.
- Able to partially diagnose problems that occur around the scope of work in which
they operate.
- Ensures stories are appropriately sized for accurate estimation, continuous
integration, and incremental delivery with help from the team.
- Seeks out and defines work. Understands and acts according to task
prioritization.
- Identifies and communicates dependencies and blockers within the team.
Escalates any blockers, or delays to their team daily.
- Able to manage appropriate amount of work and works with teammates both to
ensure they understand priority and urgency, and to deliver upon them accordingly.
- Contributes to root cause analysis and gives input on how to remediate future
issues.
- Able to quickly identify who needs to be engaged to help resolve an issue and
escalate issues when appropriate.
- Learns to implement effective system monitoring., shares opinions, feelings, constructive feedback, and gives credit where it is due.
- Connect - Learning to facilitate conversations to make sure all viewpoints are represented, and that bias is understood. Listens to opposing perspectives and works toward the best solution for all. Can you...
- Travel by car or plane with overnight stays
- Work extended hours; sit for extended periods
- Work rotating and on-call schedules, as needed
Requirements
PASSION FOR RESULTS... drive to produce quality results with little direct supervision? What is your background?
- A Computer Science degree or comparable formal training, certification, or work
experience
- 2+ years of experience in software development and in specific area of
assignment
- Experience with common software engineering tools (e.g., Git, Jira, Confluence)
- Strong knowledge of computer science fundamentals such as data structures,
algorithms, and design patterns
- Conversant in the technology stack of the system/services of the team.
- Able to review others' code for the strength of engineering solutions, namely
performance, sustainability, and iterative development potential.
- Strong understanding of coding standards and design principles / patterns and, * High degree of personal accountability to self and team for continued growth
- Ability to operate independently while owning your effect on the organization.
- Resilient and optimistic when faced with the unexpected
- Can manage most ambiguity within scope of daily work
and is willing to learn how to proactively disambiguate requirements.
- Team player - Actively learning the team's domain by asking questions, sharing knowledge with their teammates, and contributing to their team's documentation. Collaborates well with team and partners outside the team (Product Management, Design, QA, etc.)
- Committed to adding value by supporting the team, contributing your
perspective, and committing to the right amount of work.
-
Growth Mindset - Ability to fail-forward, ask questions, apply coaching, and show a genuine desire to learn, grow, and teach. Serves as a model for more junior engineers and consistently demonstrates team, organization, and company values. in daily work.
-
Self-starter - Proactive in seeking out help when unclear about priority and dependencies; take initiative to learn the team, the work, and the business.
-
Impact - Understands area of work and shares knowledge with others. Generously