At work, computer scientists build and deploy programs, algorithms, and systems to solve real-world problems. In most tech jobs, they spend the majority of their time working in teams on new software products. Some computer scientists are more research-oriented however, and may spend time developing new algorithms or pushing the boundaries of what academia knows about certain CS questions.
It’s important to understand that most students with a computer science degree become developers or software engineers. Instead of their career being research-focused as you might expect of someone with the “scientist” title, they likely do more implementation (engineering) than theoretical (science) work. This isn’t always that case of course, but it does represent the majority of graduates.
A day in the life of a computer scientist/software engineer
I can’t speak for every developer or computer scientist, but I usually do some version of the following on a daily basis.
1. Drink a black coffee, plop down at my computer and open Hacker News
I usually spend ~20 minutes reading coding news/articles while I sip my coffee. It keeps me up-to-dateish on what’s going on in the industry and stops me from writing really bad code before I’ve had a chance to wake up.
2. Open Slack, respond to missed questions from my team and make sure no emergencies are ensuing
I work as a backend Go developer, so every few months I wake up to a service having issues and needing to be fixed immediately. I typically start my workday by just making sure that the infrastructure is having a good morning.
3. Write code until my team is online/in the office
I’m an early bird, so my workday usually starts about 7AM. I also usually work from an office but during the pandemic we’ve all been at home. As a result, I have a couple hours to myself before the rest of my team of 4 hop online.
4. Standup meeting
Once everyone’s online we have a quick ~10 minute standup meeting to review what we’re doing through the rest of the day and make sure everyone can get the help they need if they’re having particular issues with a project.
5. Write some more code
When I say “write code” during this schedule, it doesn’t literally just mean writing new code. It also means reviewing others code and providing feedback, looking for and fixing bugs, cleaning up existing code, or working on a plan for how we will architect a new system or service.
6. Lunch and Smash Bros
My team really likes Super Smash Bros on the Nintendo Switch. We usually eat lunch then spend about ~45 minutes kicking each other’s asses in SSB. About once a week the company will cater lunch and one of us will present on a technical topic they found interesting to the rest of the team. We call it “Lunch n Learn”.
7. Write more code
The rest of my afternoon is usually just writing more code, with the occasional meeting to discuss product direction or high-level plans. I’m currently in a team lead position, and I do my best to keep meetings to a minimum. The only meetings I have on a regular basis are:
|Company-wide zoom (small company)||weekly||20 minutes|
|One-on-one with team members||monthly||15 minutes|
|One-on-one with CTO||monthly||30 minutes|
|Architecture planning (as needed, not planned)||monthly||60 minutes|
|Product roadmap planning||weekly||30 minutes|
Some key takeaways
So much about your life as a computer scientist will depend on where you go to work. Here are some of the most common benefits.
- Flexible hours. I typically work from 7AM to 4PM. My brother (a developer as well) usually works from 9:30AM to 6:30 PM.
- Work from home. Increasingly more and more companies are open to fully-remote work.
- Good work environment. Many tech companies are able to raise quite frankly insane amounts of capital. Because they’re interested in retaining top talent, they often have cool amenities. For example, I’ve had office ping pong tables, massage chairs, catered meals, gyms, etc.
- Good pay. Companies are still having a hard time finding good talent.
Tools I use as a software engineer
The tools a developer uses will vary quite wildly depending on where they work. That said, I can provide a list of some of the most common tools I’ve used at several different companies.
- Microsoft teams
- Github Projects
Continuous Integration / Continuous Deployment
- Github actions
- Gitlab runners
- Circle CI
- Travis CI
- Kubernetes / Helm
- Docker Swarm
- AWS / GCP / Azure / Digital Ocean
- VS Code
- Jet Brains
- Python (Django, Tensorflow)
- Ruby (Rails)