8 answers
8 answers
Updated
Jasmine’s Answer
A typical day for a Software Engineer varies depending on where you work, but there are some commonalities. My typical day begins with what we call a “SCRUM”, which is essentially a daily check-in with all members of the team where we talk about what we are working on. We also discuss things that are blocking our work and collaborate to find solutions.
Then we usually branch off to work on our specific tasks, which might involve fixing bugs, writing code for new features, designing new applications, or testing and documenting code we’ve already written. We also often meet with other teams like product or QA to ensure our code is meeting customers’ needs.
Creative problem solving, logic, communication, research skills, and attention to detail are all vital in Software Engineering. In terms of daily struggles, Software Engineers are often faced with solving problems we don’t know how to solve. We must be innovative and be able to work through challenging tasks that may not always have “one right answer”. We also must deliver in tight timelines and must be able to quickly master new coding languages and technologies. It’s important to continually learn and improve your skills, because this industry is constantly changing. That’s what makes it interesting though, and one thing I can say is that a career in Software Engineering will never be boring!
Then we usually branch off to work on our specific tasks, which might involve fixing bugs, writing code for new features, designing new applications, or testing and documenting code we’ve already written. We also often meet with other teams like product or QA to ensure our code is meeting customers’ needs.
Creative problem solving, logic, communication, research skills, and attention to detail are all vital in Software Engineering. In terms of daily struggles, Software Engineers are often faced with solving problems we don’t know how to solve. We must be innovative and be able to work through challenging tasks that may not always have “one right answer”. We also must deliver in tight timelines and must be able to quickly master new coding languages and technologies. It’s important to continually learn and improve your skills, because this industry is constantly changing. That’s what makes it interesting though, and one thing I can say is that a career in Software Engineering will never be boring!
Updated
Wojciech’s Answer
The typical day off for a software engineer depends on their individual work culture and preferences. Some software engineers might use their day off to work on personal projects, attend meetups or workshops, or simply relax and disconnect from technology.
However, in general, software engineers often struggle with the pressure to constantly learn new skills, keep up with evolving technologies, and meet tight deadlines. They may also face communication barriers when trying to collaborate with team members, clients, or stakeholders who don't have a technical background.
Moreover, sitting for long hours in front of a computer screen can lead to physical health issues such as eye strain, back pain, and wrist injuries. Additionally, software engineers may experience burnout due to the intense mental focus required for their work.
Overall, while software engineering can be a rewarding and exciting career, it also comes with its own set of challenges and stressors that must be managed to maintain work-life balance and overall well-being.
However, in general, software engineers often struggle with the pressure to constantly learn new skills, keep up with evolving technologies, and meet tight deadlines. They may also face communication barriers when trying to collaborate with team members, clients, or stakeholders who don't have a technical background.
Moreover, sitting for long hours in front of a computer screen can lead to physical health issues such as eye strain, back pain, and wrist injuries. Additionally, software engineers may experience burnout due to the intense mental focus required for their work.
Overall, while software engineering can be a rewarding and exciting career, it also comes with its own set of challenges and stressors that must be managed to maintain work-life balance and overall well-being.
Updated
Tiffiny’s Answer
So I am going to give you an alternative perspective as I'm not a software engineer but I work with them on a daily basis. I'm an agile product owner
It's my job to bring the business or customer requirements to the software team to be developed.
What makes a great software engineer for me is good communication skills as well as good coding skills. So often as a software engineer you'll be given vague requirements to build. My advice is learn to ask really good questions and keep asking them until you have a really clear picture of what is actually required. Also explore your design side as a developer who also has some creative flair can really make a name for themselves developing really nice front ends/user interfaces. Basically what you see on the screen.
In summary develop your questioning skills look up socratic questioning and dip in to UX design also to be a really well rounded engineer. Check out the book the design of everyday things.
It's my job to bring the business or customer requirements to the software team to be developed.
What makes a great software engineer for me is good communication skills as well as good coding skills. So often as a software engineer you'll be given vague requirements to build. My advice is learn to ask really good questions and keep asking them until you have a really clear picture of what is actually required. Also explore your design side as a developer who also has some creative flair can really make a name for themselves developing really nice front ends/user interfaces. Basically what you see on the screen.
In summary develop your questioning skills look up socratic questioning and dip in to UX design also to be a really well rounded engineer. Check out the book the design of everyday things.
Updated
PRASANJIT’s Answer
Software engineers spend their day solving problems in web applications and programs, writing code, attending meetings, and collaborating with their subordinates. They usually work on several projects at once.
Updated
Charanya’s Answer
Most companies follow a software development methodology called Agile, so in a typical agile team a software engineers day starts with a meeting called standup where all of the team give they updates on what they did yesterday, what will they be doing today and if there is something blocking them from doing their job
After the standup the SFE goes off and starts working on his tasks which are typically development tasks, how do they get these tasks? well every software development team starts with something called a project kickoff where a product owner presents a set of requirements to the team the requirements can be as simple as adding an extra page in their website. Once the project kickoff is done, the SFE team flushes out what are the tasks needed to build this requirement and tasks get created as tickets in a software like Jira which is a place where we add everything to track about a project
Once the tasks have been created, the tasks are estimated on how long it will take for an engineer to complete these tasks to give a tentative date to the product owner. Once the estimation is complete there is an analysis phase where the engineer spends time analysing the requirement further to ensure they have though of everything that needs to be done, in parallel a quality assurance engineer will work on flushing out all the functional and non functional scenarios that need to be considered while testing this project. The Quality engineer and the SFE align on these scenarios and once there is consensus the development process starts,
Once the development is complete the SFE tests the code they have written by witting some automated test and also doing some exploratory testing. Once the SFE thinks the code is perfect it get deployed into an environment where it can be tested end to end, here the Quality engineer, software engineer and the product owner test the built software to find if there are any issues
Once the testing is complete and the team thinks the software is perfect then they release it to the end users. Once the project is complete the team run something called a retro where they talk about what was done well, what was not done well and take up actions to improve for the next project
After the standup the SFE goes off and starts working on his tasks which are typically development tasks, how do they get these tasks? well every software development team starts with something called a project kickoff where a product owner presents a set of requirements to the team the requirements can be as simple as adding an extra page in their website. Once the project kickoff is done, the SFE team flushes out what are the tasks needed to build this requirement and tasks get created as tickets in a software like Jira which is a place where we add everything to track about a project
Once the tasks have been created, the tasks are estimated on how long it will take for an engineer to complete these tasks to give a tentative date to the product owner. Once the estimation is complete there is an analysis phase where the engineer spends time analysing the requirement further to ensure they have though of everything that needs to be done, in parallel a quality assurance engineer will work on flushing out all the functional and non functional scenarios that need to be considered while testing this project. The Quality engineer and the SFE align on these scenarios and once there is consensus the development process starts,
Once the development is complete the SFE tests the code they have written by witting some automated test and also doing some exploratory testing. Once the SFE thinks the code is perfect it get deployed into an environment where it can be tested end to end, here the Quality engineer, software engineer and the product owner test the built software to find if there are any issues
Once the testing is complete and the team thinks the software is perfect then they release it to the end users. Once the project is complete the team run something called a retro where they talk about what was done well, what was not done well and take up actions to improve for the next project
Updated
Matt’s Answer
My typical day as a Software Engineer is very similar to the other answers described above. We follow a practice called the "Agile Methodology", but we use it as we see fit and one day of the week could be very different to another.
A typical Monday for me looks like:
- Log in, get organised and catch up on emails / messages from colleagues.
- Attend a meeting where we either plan the work for the next two weeks, or for every second week we check in our our progress towards the planned work.
- The rest of the day is contributing towards the planned work. For me, being a frontend engineer, I am picking up tasks related to the frontend. We have a block in our calendar for ensuring that no meetings are planned for the rest of the day so we can focus and get a lot of work done.
That is what a typical day looks like, but no day ends up being very typical. This is something that we come to accept in the software industry.
Here are some tasks that end up finding their way into my day.
- Our site goes down or a bug occurs that needs to be fixed ASAP.
- A new project is being planned and a meeting is required to chat through the requirements
- Someone from another team has a question that our team knows the answer to. I need to answer these messages in a timely manner.
- A 1 on 1 meeting with my coach is scheduled. This is where we discuss goals and concerns.
- A meeting is scheduled for the whole company to discuss important matters.
- Writing documentation that I have put off for a long time, because writing documentation is the burden of a software engineer.
I also think it is worth mentioning what Agile is, since a lot of answers mention activities that are part of it.
What is the Agile Methodology?
Agile methodology is a project management technique to ensure projects are delivered on time and at the highest quality. This methodology includes some of the terms mentioned above (Scrum, Standups, Sprints, Retrospectives).
Read more here: https://www.atlassian.com/agile
I hope this helps. If you are thinking of becoming a software engineer then I highly recommend it. It's a great lifestyle and very rewarding. If you find a company with a great culture, they will treat you well and offer a great work/life balance.
A typical Monday for me looks like:
- Log in, get organised and catch up on emails / messages from colleagues.
- Attend a meeting where we either plan the work for the next two weeks, or for every second week we check in our our progress towards the planned work.
- The rest of the day is contributing towards the planned work. For me, being a frontend engineer, I am picking up tasks related to the frontend. We have a block in our calendar for ensuring that no meetings are planned for the rest of the day so we can focus and get a lot of work done.
That is what a typical day looks like, but no day ends up being very typical. This is something that we come to accept in the software industry.
Here are some tasks that end up finding their way into my day.
- Our site goes down or a bug occurs that needs to be fixed ASAP.
- A new project is being planned and a meeting is required to chat through the requirements
- Someone from another team has a question that our team knows the answer to. I need to answer these messages in a timely manner.
- A 1 on 1 meeting with my coach is scheduled. This is where we discuss goals and concerns.
- A meeting is scheduled for the whole company to discuss important matters.
- Writing documentation that I have put off for a long time, because writing documentation is the burden of a software engineer.
I also think it is worth mentioning what Agile is, since a lot of answers mention activities that are part of it.
What is the Agile Methodology?
Agile methodology is a project management technique to ensure projects are delivered on time and at the highest quality. This methodology includes some of the terms mentioned above (Scrum, Standups, Sprints, Retrospectives).
Read more here: https://www.atlassian.com/agile
I hope this helps. If you are thinking of becoming a software engineer then I highly recommend it. It's a great lifestyle and very rewarding. If you find a company with a great culture, they will treat you well and offer a great work/life balance.
Updated
david’s Answer
Hi, Yaritza,
I just read Jasmine's response. She really knocked it out of the park! Great review. I will add that, as a software engineer, there are times when you have sole responsibility for a produce or module, and there may be times when you are working on a small component that must be worked into larger project through active team involvement. I emphasize the team, because any error from one person touches everyone. There are times also when you are on call for systems and problems usually come at 2 am. That's when all that documentation and testing that you did comes into play to resolve the issue promptly. This sometimes puts you in high stress, such as when the failing application is mission critical to the company. Overall, it is a challenging and rewarding profession and, from my experience, software developers are a tight-knit group who tend to support and celebrate each other. All the best in your pursuits.
I just read Jasmine's response. She really knocked it out of the park! Great review. I will add that, as a software engineer, there are times when you have sole responsibility for a produce or module, and there may be times when you are working on a small component that must be worked into larger project through active team involvement. I emphasize the team, because any error from one person touches everyone. There are times also when you are on call for systems and problems usually come at 2 am. That's when all that documentation and testing that you did comes into play to resolve the issue promptly. This sometimes puts you in high stress, such as when the failing application is mission critical to the company. Overall, it is a challenging and rewarding profession and, from my experience, software developers are a tight-knit group who tend to support and celebrate each other. All the best in your pursuits.
Updated
Melissa’s Answer
Hi Yaritza,
My typical day as software engineer is similar to how Jasmine and David has described above. We follow scrum ritual where we do short daily catchup called "standups" and occasionally we have longer team meetings in to start and end "sprints", which is a 2 week period work cycle.
Individually we write and test our codes, doing peer code reviews, and assigned to on call/support duty. To add into this, in my current role, we might also be assigned to do feature leading, which means you'll get to lead and manage the development of a specific feature.
The struggles that I have experienced are when incidents happen, there are high pressures to resolve and mitigate issues that the customers experiencing as quickly as possible while doing the procedure safely so it does not introduce further issues. Additionally tech industry changes rapidly, so you will need to be comfortable with change, be flexible and adaptable to new technology stacks and ways of working.
My typical day as software engineer is similar to how Jasmine and David has described above. We follow scrum ritual where we do short daily catchup called "standups" and occasionally we have longer team meetings in to start and end "sprints", which is a 2 week period work cycle.
Individually we write and test our codes, doing peer code reviews, and assigned to on call/support duty. To add into this, in my current role, we might also be assigned to do feature leading, which means you'll get to lead and manage the development of a specific feature.
The struggles that I have experienced are when incidents happen, there are high pressures to resolve and mitigate issues that the customers experiencing as quickly as possible while doing the procedure safely so it does not introduce further issues. Additionally tech industry changes rapidly, so you will need to be comfortable with change, be flexible and adaptable to new technology stacks and ways of working.