Software engineers are the backbone of websites and applications we use every day, but what’s going on behind the curtain? What does a day in the life of a software engineer actually look like?
We asked different types of software engineers at various levels and types of companies what a day in their work life is like — from the tasks they work on to the people they talk to, the tools they use, and what they think makes them successful.
What Does a Software Engineer Do on a Daily Basis?
First: what do software engineers actually do? Software engineers work on software, which is the instructions a computer uses. To build software, these professionals use programming skills, platforms, architecture, and other tools. Software engineers are also responsible for the performance of the software, whether that’s speed, optimization, or building a new component.
In a day in the life, a software engineer might:
- Code a part of a software application
- Run tests to ensure the software works as expected
- Review code from another engineer
- Work on optimizing the software speed and performance
- Listen to the client or company to understand what new features they want
- Stay up to date on software technology and upgrades
While software engineers generally work on their code alone, 90% of them interact with members outside of their team at least once weekly, according to Stack Overflow’s 2023 Developer Survey.
Software Engineer Work by Engineer Type
The exact everyday work of a day in the life of a software engineer primarily depends on the type of software engineer you are. For example, some engineers might work more on testing the software to ensure it works, while others will work with designers to make sure the software looks good to the user’s eye.
Different types of software engineers include:
- Front-end engineer: works on the front end of software, or the parts that users can see
- Back-end engineer: works on the back end of software, which is responsible for things like data management, performance, and information processing
- Security engineer: works on the security of the software, ensuring that the system is protected from cyberattacks
- Quality assurance (QA) engineer: works to test and make sure the software works as expected, debugging the software as needed
Cisco Introduction to Software Engineering
Build the technical skills you need to launch a career as a software engineer.
Avg. Time: 4.5-5 hours
Skills you’ll build: React, Git, networking design thinking
Are Software Engineers Happy at Work?
According to Stack Overflow, 70% of software engineers are happy at work. Of the people surveyed, most were happy at work because of salary (60%) and work-life balance (58%).
Of course, salary and work-life balance vary from one company to another, but software engineering is typically a high-paying job that generally sticks to a 9 to 5 schedule. Many software engineer roles also offer remote work options and may include schedule flexibility.
Day in the Life of a Software Engineer: Engineer Manager
Joe Ferrer is an engineering manager at Forage, an ed-tech startup. His work combines conventional software engineering work, like coding, and some management responsibilities that come with a more senior role.
What Tasks Do You Work on Every Day?
Ferrer’s primary goals are to help improve the company’s core product, optimize the site’s speed, and increase site monitoring.
Some of his regular tasks include:
- Reviewing code
- Writing code
- Triaging and fleshing out task tickets with his team
- Exploring engineering improvements for the team and the product
- Collaborating cross-functionally with the product team
Who Do You Work With?
Joe works closely with software engineers, quality assurance engineers (QAs), product managers, directors, VPs, designers, and data analysts. He meets with each group at least once a week, with meeting topics depending on how he’s collaborating. For example, meetings with software engineers might be standups to discuss status updates, while meetings with VPs and cross-functional team members might be more strategy-oriented.
What Tools and Skills Do You Use?
Because there are many types of software engineers, the tools that each engineer uses and the skills they need depend on the part of the software they work on. Ferrer works in the back-end, data, and infrastructure side of software. The tools and skills for this work include:
- Programming languages: TypeScript, Bash, SQL, NoSQL, and a bit of Python
- Libraries and frameworks: React, Meteor, NextJs, and Serverless
- Networking: Cloudflare and AWS services
- Integrated development environments (IDE): VSCode and Vim
- Code management and pipeline automation: Git and GitHub
- Workflow management: Jira
- Working with designers: Figma
- Communicating with team members: Slack, Loom, Email, Zoom, Google Meets
Ferrer has to be exceptionally organized and strategy-focused to manage all of these tools and skills while delivering on goals and leading a team. Ferrer sets a daily, weekly, monthly, and quarterly vision for success and knows exactly what success looks like for himself and the team — including quantifiable metrics.
>>MORE: Find success in the workplace by setting SMART goals.
As a manager with more experience than a junior engineer, Ferrer truly owns responsibility for that success with a focus on continuously improving and iterating. He often reviews how he and the team met (or didn’t meet) goals, seeks feedback, and coaches his teammates.
Day in the Life of a Software Engineer: Data Engineer
Mike LaGrasso is a data engineer at Saatva, a direct to consumer luxury mattress and bedding brand.
What Tasks Do You Work on Every Day?
As a data engineer, LaGrasso’s job is to support all areas of the business by acquiring data, maintaining and storing it, and making data accessible to the team. LeGrasso’s typical day includes three main types of tasks:
- Adding new features: Before anyone else in the business can use data, LaGrasso might have to build a new feature so they can access it. To do this, his work “can range from pulling in new data sources, like ad performance on YouTube, or building a dataset to track sales of our newest products,” LaGrasso says.
- Bug fixes: Addressing mistakes in code or business logic.
- Maintenance: Updating software to new versions of APIs and libraries.
Advanced Software Engineering
Design a database and export and manipulate data to satisfy complex business requirements.
Avg. Time: 3-4 hours
Skills you’ll build: Data structures, data munging, SQL, Python, Java
Who Do You Work With?
To complete these tasks, he works alongside analysts across marketing and operations teams and software engineers.
When he works with analysts, his goal is to make data accessible. He consolidates numerous data sources into a single data warehouse with raw data and curated datasets to do this.
“The analysts have a different challenge for us each week, from tracking how effective our newest ad campaign has been at bringing in new sales, monitoring how well our supply chain is holding up to the demand for new products, identifying the impact of opening a new Saatva viewing room on customers within 15 minutes of it, and beyond,” LaGrasso says. “Each of these goals requires us to identify what existing data we can leverage to answer these questions and what new information we’ll need to pull in.”
>>MORE: What Is Data Engineering?
When working with other engineers, he aims to stay on the same page as them. As the engineers release new features, they collaborate to capture any operational changes in their data warehouse.
LaGrasso spends most of his time doing independent work rather than in meetings; however, there are a few recurring meetings he attends:
- Daily 15-minute standup to discuss what everyone’s working on
- Weekly planning on Monday to discuss the tasks to work on that week
- Weekly check-in with analysts to recap what they’ve worked on and what to work on next
- Bi-weekly look back to self-assess how everyone performed and what process improvements can be made
What Tools and Skills Do You Use?
Unsurprisingly, the tools LaGrasso uses are data-focused:
- Programming languages and libraries: Most of the jobs LeGrasso uses to extract data are written in Python, “using a library called Pandas to manage, manipulate, and format the data,” he says. He also uses some SQL to pull from various database tables.
- Source-code editor: He uses VS code to write his Python scripts.
- Data exploration: He uses PostMan, an API platform, to test API endpoints, and DBeaver, a database administration tool, to explore databases.
Soft skills come in handy, too, especially when LeGrasso is working closely with his team and stakeholders.
>>MORE: Learn what a “stakeholder” is and other corporate jargon you need to know.
“My team has three guiding principles that help lead to our success: look for opportunities to close tickets earlier, pair program as much as possible (even with external stakeholders), and ask better questions,” he says. “These principles lead us to better communicate with our team and our stakeholders, allow us to identify any complications early, and ultimately deliver results much faster.”
Day in the Life of a Software Engineer: Lead Software Engineer
Brad Steiner is a lead software engineer for Dandy Technology, a robotics startup in Boston. The startup’s product is a robot that sprays weeds on your lawn. Steiner’s team works on creating a camera that recognizes weeds from grass and tells the robot only to spray on the weeds.
Train to Work at a Y Combinator Startup
Experience a day in the life working for a hypothetical start up by developing productivity tools for the shipping industry.
Avg. Time: 5-6 hours
Skills you’ll build: Analyzing user data, React, web applications, NodeJS
What Tasks Do You Work on Every Day?
While working at a startup, Steiner’s day-to-day can vary depending on what kind of project he’s working on and how advanced the product is. For example, when he first started, he had to write the initial prototype software for the robot. Then, he spent a lot of time improving the robot and building new features. Now, he optimizes the robot so the team can scale the product.
Regardless of what part of the product he’s working on, as a lead engineer, he spends time working with his team and ensuring they’re working efficiently and strategically. Some of his everyday tasks include:
- Reviewing his team’s code
- Communicating with team members about project progress and updates
- Strategizing and prioritizing upcoming work for the team
“Some days I am debugging a difficult problem and I don’t write a single line of code,” Steiner says. “Other days I am working on a new feature where much of the day is spent writing new logic and integrating components.”
>>MORE: From junior engineer to lead engineer to the chief technical officer, learn what the software engineer career path is like.
Who Do You Work With?
Steiner works within a small company with four other full-time engineers: a lead engineer, two software engineers, and a QA engineer.
The team usually meets once a day, when everyone shares status updates. Sometimes, Steiner will join external calls with potential customers to hear their needs or talk to potential vendors to vet their product.
What Tools and Skills Do You Use?
“Our code is mainly written in C++ and Python and developed for a Linux operating system,” Steiner says. “We use the Robot Operating System (ROS) as a framework for developing our code. ROS is an open-source project that provides messaging and a lot of packages for commonly implemented robot software components. For example, one of the packages can create a local map around the robot based on what obstacles it senses. For someone interested in robotics, I’d recommend learning C++, Python, Linux, and ROS as these are commonly used throughout the robotics industry.”
Steiner’s success comes from maintaining good software development practices and using the right tools, like using source control to track code changes, doing code reviews, adhering to code standards, and documenting code.
Software Engineering
Practice code analysis and code readability as you develop a new feature for the Sims 4 game.
Avg. Time: 5-6 hours
Skills you’ll build: Feature design, object-oriented design, code analysis, data structures, code readability
Day in the Life of a Software Engineer: Senior Back-End Developer
Svyatoslav Artyukhov is a senior back-end developer at FunCorp, an international company that develops entertainment tech products and services (here, the term “developer” and “engineer” are used interchangeably — learn more about developers versus engineers). Artyukhov is currently working on Yepp, an app that rewards users for reading, creating, and sharing memes.
What Tasks Do You Work on Every Day?
While working on Yepp, Artyukhov has developed many different services, including text-on-picture recognition, face swap, and a marketplace for users to buy products in-app.
To make these services possible, he works on a few tasks daily:
- Writing functionality for new services
- Maintaining the functionality of existing services
- Writing technical documentation so every developer understands how the project is structured
- Writing technical specifications for developers to know what they’re working on
- Designing the inter-service interaction of each app’s multiple back-end services
ICG Technology Software Development
Practice your back-end development skills by building a real-time stock market dashboard.
Avg. Time: 5-6 hours
Skills you’ll build: Data visualization, APIs, Java, risk assessment
Who Do You Work With?
Artyukhov works closely with other back-end developers, mobile developers, and a QA team. He also works with the chief product officer and other company leaders outside the software engineering team.
He has a conventional daily standup to discuss team progress and status and uses Jira to manage all the tasks the team is working on. In addition, as a senior developer responsible for more cross-functional team collaboration, he regularly meets with product managers and owners to discuss weekly goals and tasks.
What Tools and Skills Do You Use?
Artyukhov uses various standard back-end software engineering tools to get his work done, including:
- Visual studio code for Python and JavaScript development
- Intellij Idea for Java and Kotlin development
- Compass MongoDB and PGAdmin for administration and development of Mongo DB and Postgres, respectively
The Bottom Line
Even though we spoke to four very different engineers, a day in the life of a software engineer does have some similarities. There are usually daily standups to run through tasks, code writing, testing, and revising, and more opportunities to set strategy as you move up the career ladder. The most significant differences in tasks, skills, and tools depend on what type of software engineer you are, where you are in your career path, and even what kind of company you work for.
So, what is a day in the life of a software engineer really like overall?
- Everyday tasks: Software engineers are known for their programming skills for good reason! Much of the job requires not just writing code, but reviewing it, testing it, and revising it.
- Skills: The skills and tools you use vary greatly depending on what type of software engineering you do. However, most software engineers use one or two main programming languages and tools to test and review code.
- Meetings: Engineering itself usually requires little meeting time, but engineers frequently meet to know who’s working on what.
- Career path: As you move up the career ladder, your everyday work is focused less on independent work and more on strategy and prioritization. (Learn more about the software engineering career path).
Experience a day in the life as a software engineer and practice skills like programming, Git, and React with JPMorgan’s Software Engineering job simulation.
Image credit: Canva