Software Engineering
Software Engineer II Job Description
A Software Engineer II builds and ships features independently within one team's codebase: a mid-level software developer, one step above entry level and below senior. The title is an employer level rather than a specialty, so it covers backend, frontend, mobile and infrastructure work. Typical duties include writing and testing production code, reviewing teammates' pull requests, taking on-call shifts and mentoring newer engineers. BLS reports no level-specific pay, but its Software Developers occupation, which covers all levels, paid a median of $135,980 in May 2025, with a 10th-to-90th percentile spread of $82,460 to $214,670.
Last updated
Role at a glance
- Typical education
- A four-year degree in computer science, computer engineering or software engineering is the usual path.
- Typical experience
- As a rough guide, two to four years of professional development work.
- Key certifications
- Optional: Certified Kubernetes Application Developer (CNCF and The Linux Foundation) or CSSLP (ISC2).
- Top employer types
- Computer systems design and related services firms and software publishers, per BLS industry wage data.
- Growth outlook
- A March 2026 Federal Reserve paper found coder employment still growing, though much more slowly than before 2022.
- AI impact (through 2030)
- Federal Reserve economists found an occupation-specific slowdown in coder employment around the introduction of ChatGPT.
Duties and responsibilities
- Design and build medium-sized features end to end, from a short design document through code review, testing, rollout and production monitoring.
- Write maintainable code in the team's main languages, with unit and integration tests that cover failure paths as well as expected behavior.
- Review teammates' pull requests for correctness, readability, security and test coverage, and explain the reasoning behind every requested change.
- Break loosely defined tickets into scoped tasks, estimate effort honestly, and flag missing requirements to product and design before coding starts.
- Join the on-call rotation for services the team owns, triage alerts, restore service, and write blameless incident reviews with follow-up fixes.
- Debug production problems with logs, metrics, traces and profilers, then turn each confirmed root cause into a regression test or alert.
- Maintain the CI/CD pipeline, feature flags and deployment scripts for owned services so releases stay small, frequent and easy to roll back.
- Evaluate AI coding assistant output line by line, rejecting suggestions that add hidden dependencies, security flaws, licensing questions or untested behavior.
- Mentor interns and new hires through pairing sessions, onboarding documents and code review comments that teach the codebase's conventions and history.
- Pay down technical debt in owned components by proposing refactors, upgrading stale libraries and deleting dead code during regular sprint work.
Overview
Software Engineer II is a level, not a specialty. The title marks the step after an entry-level role on an employer's individual-contributor ladder: the engineer still works inside one team's codebase, but no longer needs someone to explain how to finish each ticket. Backend, frontend, mobile and infrastructure engineers can all carry the same II title, because the number describes scope and independence rather than the technology stack.
Dropbox publishes its Engineering Career Framework openly, and its IC2 software engineer is a useful reference point even though the company uses IC numbers instead of Roman numerals. The framework sums up the level as "I am prolific at delivering resilient and sustainable software projects from design to implementation and rollout." On scope it says "I execute on defined projects to achieve team-level goals," and on reach it says the engineer works "primarily within the scope of my team with high level guidance from my manager/TL." It also notes that the IC2 engineer "may mentor new hires, interns, or more junior engineers."
A working week
A typical sprint starts with planning, where a Software Engineer II takes a feature that might touch an API, a database migration and a UI change. Before writing code, the engineer drafts a short design note covering the data model, edge cases, rollout plan and what could break. Teammates comment, the plan changes, and then implementation begins behind a feature flag.
The core of the week is the code itself: writing it, writing tests for it, and pushing pull requests small enough that reviewers can read them carefully. The same engineer spends real hours on the other side of review, reading colleagues' changes in GitHub or GitLab and leaving comments that catch bugs, not just style nits. Standups, a backlog grooming session and a few Slack threads with product managers fill the gaps.
When the feature ships, the job is not over. The engineer watches dashboards in Datadog, Grafana or a similar tool, checks error rates after each rollout stage, and fixes what turns up. If the team runs its own services, the engineer also takes on-call shifts and handles pages for those systems.
Tools of the trade
The stack varies by employer, but a Software Engineer II at a product company might write Java, Go, Python, TypeScript or C# on any given day, query PostgreSQL or MySQL, and deploy containers to Kubernetes on AWS, Microsoft Azure or Google Cloud. Infrastructure may be defined in Terraform, and work tracked in Jira or Linear. Where a team uses an AI coding assistant, careful reading of generated code is part of the job.
What the level does not cover
A Software Engineer II owns features and components, not cross-team architecture. Decisions that affect several teams, such as replacing a message queue or splitting a monolith, belong to senior and staff engineers. The II contributes analysis and code to those efforts and learns from them, which is how the next promotion gets built.
Qualifications
Education
A four-year degree in computer science, computer engineering or software engineering is the usual path into the role. Coursework in data structures, algorithms, operating systems, databases and networking maps directly onto the daily work. Candidates without the degree typically need a body of shipped work to point to instead: open-source contributions, production apps with real users, or a prior job where they wrote and maintained code that others depended on.
Experience
As a rough guide, engineers reach the II level after two to four years of professional development work, or arrive there directly from a strong internship record plus an entry-level stint. What counts is evidence that the candidate has carried features to production without step-by-step direction, debugged something hard, and handled code review in both directions.
Technical skills
Expect to need depth in at least one general-purpose language and working fluency in a second. SQL comes up constantly, as do Git, a testing framework, and the basics of HTTP APIs and authentication. Familiarity with containers, a major cloud platform, and CI/CD tooling such as GitHub Actions, GitLab CI or Jenkins rounds out the toolkit. Security habits matter at this level: validating input, handling secrets properly, and recognizing common web vulnerabilities such as injection flaws and cross-site scripting.
System design shows up at a smaller scale than it does for senior roles. A Software Engineer II should be able to sketch a service, choose between a relational database and a key-value store for a given access pattern, and explain where caching or a queue would help.
Credentials
No license is required to work as a software engineer, and certifications are optional. Two that map onto real mid-level work are the Certified Kubernetes Application Developer (CKAD), developed by the Cloud Native Computing Foundation (CNCF) with The Linux Foundation, for engineers who deploy to Kubernetes, and the Certified Secure Software Lifecycle Professional (CSSLP) from ISC2, which suits engineers in regulated sectors where secure development practices are audited. Either is a supplement to a work record, not a substitute for one.
The interview loop
A typical interview loop for the level includes one or two coding rounds, a system design conversation scoped to a single service, and a behavioral round that probes ownership, conflict and learning from failure. Bring stories about specific features you shipped and incidents you resolved, with your own role in each one made plain.
Career outlook
Pay depends on where the code gets written
The Bureau of Labor Statistics does not break out wages by career level, but its May 2025 industry tables show how pay for software developers as a whole varies with the employer's industry. Across all industries the median was $135,980. Among the 173,080 software developers working for software publishers, the median was $164,550. In computer systems design and related services, the consulting, contracting and IT services sector that employed 515,410 software developers, the median was $132,050. In web search portals, libraries, archives and other information services, the median reached $213,520.
Published public-sector class specifications offer another reference point. San Luis Obispo County, California, lists its Software Engineer II classification at $95,118.40 to $127,483.20 a year. That is one county's schedule, not a national benchmark, but it shows what a journey-level government software job pays in one California market.
A slower hiring market for coders
The employment picture has cooled. In a March 2026 Finance and Economics Discussion Series paper, Federal Reserve Board economists linked occupational data from O*NET to the Current Population Survey and found that aggregate employment of coders "decelerated sharply since the introduction of ChatGPT." Using a control for industry-level shocks, they concluded the slowdown was not explained by coders working in slowing industries, "suggesting instead that coders experienced an occupation-specific shock around the introduction of ChatGPT." The same paper is careful to add that coder employment "has continued to grow in recent years, though much more slowly than it did pre-2022."
A St. Louis Fed FRED Blog post from August 20, 2026, summarizing that research, notes that more than 30% of national coder employment is concentrated in the computer systems design and related services industry, and that coders make up 40% of that industry's workforce. BLS Current Employment Statistics data for that industry show a preliminary 2,355.4 thousand jobs in September 2026, seasonally adjusted, compared with 2,370.0 thousand in May 2026.
What that means for a mid-level engineer
None of these studies measures Software Engineer II roles directly, and the Federal Reserve paper describes an occupation that is still growing, only more slowly. For an engineer at this level, the practical response is to make ownership visible: features you designed and shipped, outages you resolved, migrations you completed, and code reviews that caught real problems.
The skills that hold value are the ones a code generator cannot supply on its own: knowing the business rules of a payments ledger or a claims system, reading a production trace and finding the slow query, and judging whether a generated patch is safe to merge.
Where the level leads
Depending on the employer's ladder, the next rung is Software Engineer III or Senior Software Engineer, where scope widens from a feature to a system and the engineer starts setting technical direction for others. From there the ladder splits. Some engineers stay on the individual-contributor track toward staff and principal roles, while others move into engineering management. Lateral moves into site reliability, security engineering, data engineering or machine learning infrastructure are also open to engineers who build depth in those areas while still at the II level.
Sample cover letter
Dear Hiring Manager,
I am applying for the Software Engineer II position on your payments platform team. For the past three years I have worked as a backend engineer at Harbor Logistics, a freight software company, where I own the rate-quote service that carriers and shippers call thousands of times an hour.
When I joined, quotes were calculated inside a single Rails application that slowed to a crawl at month-end. I wrote the design document for splitting the pricing logic into a standalone Go service, worked through two rounds of review with our staff engineer, and led the migration behind a feature flag. We moved traffic in stages, watched latency and error dashboards at each step, and finished the cutover without a customer-facing incident. I still maintain that service and its runbook.
I also take my turn on call. Last spring a malformed carrier file triggered a cascade of failed quotes overnight. I traced the problem to a parser that trusted its input, shipped a fix with tests that reproduce the bad file, and wrote the incident review that led us to add schema validation at the edge.
Code review is a part of the job I enjoy. I review four or five pull requests a day and try to leave comments that explain the reason behind a change, not just the change itself. Two of our newer engineers have told me those comments helped them learn the codebase faster.
Your team's work on ledger accuracy and idempotent payment APIs is exactly the kind of problem I want to spend the next few years on. I would welcome the chance to talk about how my experience with high-volume services and careful rollouts could help.
Sincerely, Jordan Alvarez
Frequently asked questions
- What does a Software Engineer II do?
- A Software Engineer II builds and ships features independently within one team's codebase: a mid-level software developer, one step above entry level and below senior. The title is an employer level rather than a specialty, so it covers backend, frontend, mobile and infrastructure work. Typical duties include writing and testing production code, reviewing teammates' pull requests, taking on-call shifts and mentoring newer engineers. BLS reports no level-specific pay, but its Software Developers occupation, which covers all levels, paid a median of $135,980 in May 2025, with a 10th-to-90th percentile spread of $82,460 to $214,670.
- What are the main duties of a Software Engineer II?
- Core duties include: design and build medium-sized features end to end, from a short design document through code review, testing, rollout and production monitoring; write maintainable code in the team's main languages, with unit and integration tests that cover failure paths as well as expected behavior; and review teammates' pull requests for correctness, readability, security and test coverage, and explain the reasoning behind every requested change.
- How is a Software Engineer II different from a Software Engineer I?
- Public-sector class specs spell the difference out. San Luis Obispo County, California, defines Software Engineer I as "the entry-level position in the series" and Software Engineer II as "the journey-level position in the series," where incumbents "perform complex programming, development and analysis duties" under general supervision. In practice that means the II is trusted to carry a feature to completion, while the I is still learning the codebase with closer review.
- How much does a Software Engineer II make?
- BLS does not publish wages by career level, so the best national benchmark is its Software Developers occupation, which spans every level from new graduate to principal. In May 2025 that occupation paid a median of $135,980, with $82,460 at the 10th percentile and $214,670 at the 90th. Where a mid-level engineer lands inside that spread depends on employer, industry and metro area.
- Is AI hurting job prospects for early-career software engineers?
- The evidence is mixed. A September 2026 NBER working paper using Current Population Survey microdata found that unemployment rates for recent college graduates "did not spike in summer 2026" relative to summer months in previous years, though the authors call the question hotly debated. For a Software Engineer II who uses coding assistants, the job includes reading and testing generated code as carefully as a colleague's pull request.
- What does it take to get promoted from Software Engineer II?
- Promotion to Software Engineer III or Senior means showing wider scope: owning a system rather than a feature, shaping design decisions that other engineers follow, and making the people around you more effective. Keep a written record of projects you led, incidents you resolved and engineers you helped, because a promotion case is built on concrete examples.
- Do Software Engineer II roles include on-call duty?
- It depends on the team. Where engineers run their own services in production, a Software Engineer II takes shifts in the rotation and is expected to triage alerts, roll back bad deploys, and write the incident review afterward, with a senior engineer or manager as the escalation point.
Sources
Salary figures and role details on this page were checked against the following sources. Dates show when each was last reviewed.
- Software Developers, BLS Occupational Employment and Wage Statistics (May 2025)Checked Nov 2, 2026
- Software Publishers: Occupational Employment and Wages, BLS Occupational Employment and Wage Statistics (May 2025)Checked Nov 2, 2026
- Computer Systems Design and Related Services: Occupational Employment and Wages, BLS Occupational Employment and Wage Statistics (May 2025)Checked Nov 2, 2026
- Web Search Portals, Libraries, Archives, and Other Information Services: Occupational Employment and Wages, BLS Occupational Employment and Wage Statistics (May 2025)Checked Nov 2, 2026
- Software Engineer II Class Specification, County of San Luis Obispo, California (2026)Checked Nov 2, 2026
- IC2 Software Engineer, Dropbox Engineering Career Framework, Dropbox (published framework, accessed November 2026)Checked Nov 2, 2026
- AI and Coder Employment: Compiling the Evidence, Finance and Economics Discussion Series 2026-018, Board of Governors of the Federal Reserve System (March 2026)Checked Nov 2, 2026
- Is AI Reducing Employment for Software Coders?, FRED Blog, Federal Reserve Bank of St. Louis (August 20, 2026)Checked Nov 2, 2026
- All Employees, Computer Systems Design and Related Services (CES6054150001), U.S. Bureau of Labor Statistics via FRED, Federal Reserve Bank of St. Louis (updated October 2, 2026)Checked Nov 2, 2026
- The Early Impacts of AI on Employment among Recent College Graduates, Working Paper 35796, National Bureau of Economic Research (September 2026)Checked Nov 2, 2026
- Certified Kubernetes Application Developer (CKAD), Cloud Native Computing Foundation (accessed November 2026)Checked Nov 2, 2026
- CSSLP: Certified Secure Software Lifecycle Professional, ISC2 (accessed November 2026)Checked Nov 2, 2026
Related job descriptions
See all Software Engineering jobs →- Android Software Developer II$98K–$142K
Android Software Developer IIs are experienced mid-level engineers who independently own Android feature development from design through production deployment. They write and review Kotlin code fluently, make sound architectural decisions within established patterns, and mentor junior developers — bridging the gap between entry-level execution and senior-level system thinking.
- Computer Vision Software Engineer$120K–$175K
Computer Vision Software Engineers build systems that extract meaningful information from images and video — detecting objects, classifying scenes, tracking motion, reading text, and analyzing medical scans. They combine deep learning model training with production engineering to deploy CV systems in products ranging from autonomous vehicles and surveillance cameras to medical diagnostics and manufacturing quality control.
- iOS Software Engineer$105K–$160K
iOS Software Engineers build and maintain Apple platform applications at a level that emphasizes system design, cross-team collaboration, and code quality alongside feature delivery. The title reflects a level of engineering maturity — owning technical problems fully, contributing to design decisions, and ensuring what ships is reliable, performant, and maintainable.
- JavaScript Software Engineer$90K–$145K
JavaScript Software Engineers build and maintain web-based applications and services at a level that combines feature delivery with technical ownership — contributing to architecture decisions, driving code quality, and ensuring that JavaScript systems are reliable, performant, and extensible as they scale. The role typically implies greater seniority and broader responsibility than a JavaScript Developer title.
- Machine Learning Software Engineer$120K–$185K
Machine Learning Software Engineers build the infrastructure and systems that take ML models from research notebooks into production applications. They bridge the gap between data scientists who develop models and software engineers who build products — owning model training pipelines, serving infrastructure, monitoring systems, and the deployment workflows that keep ML-powered features reliable at scale.
- Salesforce Software Engineer$100K–$160K
Salesforce Software Engineers build and architect complex Salesforce solutions, applying software engineering rigor to platform development. Beyond feature development, they design scalable architecture, lead technical design reviews, manage org health and governance, and integrate Salesforce with enterprise systems. The Engineer title typically signals higher technical expectations than the Developer title in Salesforce contexts.