9 answers
Updated
1441 views
What are the roles and responsibilities of a computer engineer?
I'm a 1st Computer engineering student and I am genuinely curious to those that are currently in the industry like how do you collaborate with others or teams in your work? What does a typical day look like for you? And what skill do you think are the most important for a computer engineer to have? And finally, what are your primary responsibilities? Its a bit long, but thank you for taking your time to answer :)
Login to comment
9 answers
Updated
Jeffrey’s Answer
Hi Fajardo,
Year 1 in college? Assuming so, you're probably just stepping into some of the initial courses in Math, Physics, Chemistry, and Programming. I focus more on the systems engineering and less on the hardware, but with an awareness of the fast moving pace of hardware and some of the future directions. I'll try to provide a set of responses within the realm of work that I do realizing that jobs can vary quite a bit depending on the scope of work:
Q: how do you collaborate with others or teams in your work?
So, I've held a number of positions in companies across many industries. Collaboration and Communication are priority one. There are plenty of available tools for messaging, connecting, getting assistance, and obtaining help. If you're in the office, the best way to collaborate is face-2-face. If you're remote and/or have to connect with folks in other locations and time zones, then video conferences and content sharing are very effective. I use all the tools that are available and collaborate with colleagues across the globe.
Q: What does a typical day look like for you?
In most companies, you'll likely focus on project-based work (multiple projects and requests). If you're working in manufacturing, you will be focusing on products (product development or product manufacturing via supply chain). Typical days involve meetings, working on project / product development, and responding to requests within your team and sometimes from other teams.
Q: And what skill do you think are the most important for a computer engineer to have?
1. Problem Solving - this is the core of engineering
2. Adaptability - things change faster all the time
3. Communication - discussed earlier
Q: And finally, what are your primary responsibilities?
i focus on systems engineering, knowledge engineering, and product development. I provide full lifecycle development, supporting ongoing operations for the services we deliver, and collaborate with other teams across the company. Can't get into too many details, but hopefully that helps.
Jeffrey
Year 1 in college? Assuming so, you're probably just stepping into some of the initial courses in Math, Physics, Chemistry, and Programming. I focus more on the systems engineering and less on the hardware, but with an awareness of the fast moving pace of hardware and some of the future directions. I'll try to provide a set of responses within the realm of work that I do realizing that jobs can vary quite a bit depending on the scope of work:
Q: how do you collaborate with others or teams in your work?
So, I've held a number of positions in companies across many industries. Collaboration and Communication are priority one. There are plenty of available tools for messaging, connecting, getting assistance, and obtaining help. If you're in the office, the best way to collaborate is face-2-face. If you're remote and/or have to connect with folks in other locations and time zones, then video conferences and content sharing are very effective. I use all the tools that are available and collaborate with colleagues across the globe.
Q: What does a typical day look like for you?
In most companies, you'll likely focus on project-based work (multiple projects and requests). If you're working in manufacturing, you will be focusing on products (product development or product manufacturing via supply chain). Typical days involve meetings, working on project / product development, and responding to requests within your team and sometimes from other teams.
Q: And what skill do you think are the most important for a computer engineer to have?
1. Problem Solving - this is the core of engineering
2. Adaptability - things change faster all the time
3. Communication - discussed earlier
Q: And finally, what are your primary responsibilities?
i focus on systems engineering, knowledge engineering, and product development. I provide full lifecycle development, supporting ongoing operations for the services we deliver, and collaborate with other teams across the company. Can't get into too many details, but hopefully that helps.
Jeffrey
Updated
Julio’s Answer
Hi Fajardo!
Let me try to add some extra details to what has already been greatly answered!
I've been many years in the industry so collaboration has naturally evolved. But the basics are still there. Sometimes we will collaborate in front of a whiteboard, filling it once or multiple times until we believe we have deeply understood the topic and elaborated an action plan that we like. Sometimes we will discuss over a specification document or a patent disclosure using technologies like review in Microsoft Word and similar. I am assuming collaboration will continue to evolve in the near future.
You will usually need to find "focus" time in your daily routine. Disconnect email and instant messaging and work on that topic that requires concentration. Not very different to your current focus time to study. When I was younger, I would usually change my state of mind to the current task, now that I am older I frequently do the opposite: pick the task that works best with my current state of mind. Both work pretty well, assuming you have plenty of tasks to do, which has always been the case for me. Being able to schedule your time is typical for engineering and a big plus in this career.
My roles and responsibilities have changed a lot during my career. At this very moment I take care of quality. We work with very complex systems and large amounts of data, where errors, both from humans and from the system, are frequent. My mission is to develop systems and methodologies to detect errors as soon as possible and fix them before it is too late, and making sure we deploy such systems and methods. It is fun, challenging and rewarding, even though its impact may not be seen by everybody, as it is totally human to not notice when nothing fails :).
Regards,
Julio
Let me try to add some extra details to what has already been greatly answered!
I've been many years in the industry so collaboration has naturally evolved. But the basics are still there. Sometimes we will collaborate in front of a whiteboard, filling it once or multiple times until we believe we have deeply understood the topic and elaborated an action plan that we like. Sometimes we will discuss over a specification document or a patent disclosure using technologies like review in Microsoft Word and similar. I am assuming collaboration will continue to evolve in the near future.
You will usually need to find "focus" time in your daily routine. Disconnect email and instant messaging and work on that topic that requires concentration. Not very different to your current focus time to study. When I was younger, I would usually change my state of mind to the current task, now that I am older I frequently do the opposite: pick the task that works best with my current state of mind. Both work pretty well, assuming you have plenty of tasks to do, which has always been the case for me. Being able to schedule your time is typical for engineering and a big plus in this career.
My roles and responsibilities have changed a lot during my career. At this very moment I take care of quality. We work with very complex systems and large amounts of data, where errors, both from humans and from the system, are frequent. My mission is to develop systems and methodologies to detect errors as soon as possible and fix them before it is too late, and making sure we deploy such systems and methods. It is fun, challenging and rewarding, even though its impact may not be seen by everybody, as it is totally human to not notice when nothing fails :).
Regards,
Julio
Updated
Wong’s Answer
A computer engineer designs, builds, and improves computer systems and devices. They work with both hardware (like chips, processors, etc) and software (the programs that make the hardware work). Their goal is to make computers faster, smaller, and more efficient. Some computer engineers focus more on hardware, while others work on software or how the two connect.
A typical day for a computer engineer usually includes checking project updates, writing or testing code, fixing technical problems, and meeting with team members. Teamwork is very important in this job because computer engineers often work with software developers, designers, and project managers to create or improve a product.
The most important skills for a computer engineer are problem-solving, programming, and understanding how computers work inside and out. It's also important to be good at communicating and working with others since you'll often explain your ideas and results to people who may not be engineers.
Main responsibilities include designing and testing hardware parts, writing software to control those parts, finding and fixing errors, and improving performance. Some computer engineers work in research to create new technologies.
A typical day for a computer engineer usually includes checking project updates, writing or testing code, fixing technical problems, and meeting with team members. Teamwork is very important in this job because computer engineers often work with software developers, designers, and project managers to create or improve a product.
The most important skills for a computer engineer are problem-solving, programming, and understanding how computers work inside and out. It's also important to be good at communicating and working with others since you'll often explain your ideas and results to people who may not be engineers.
Main responsibilities include designing and testing hardware parts, writing software to control those parts, finding and fixing errors, and improving performance. Some computer engineers work in research to create new technologies.
Updated
Alex’s Answer
Hi Fajardo!
Great question--there are so many aspects to computer engineering. Right now you're learning a broad set of skills, a baseline of knowledge so that you can have a good understanding of the basics of computer engineering. Software development, firmware development, hardware design, hardware verification, physical design, basic circuits, processor instructions, interpreters, the list goes on. Eventually you'll likely end up choosing the area that interests you the most. My advice right now is to take your time and consider what kind of work resonates with you. For example, I was an ECE (Electrical and Computer Engineering) major, and what resonated most with me was circuit design and computer hardware, so that's what I ended up doing.
Your decision is going to impact the type of work you do; it will also impact how you collaborate with other teams. For example, Computer Architects work closely with Design groups, Verification groups, and Hardware Validation groups. But they also interface with business leaders and product groups, who may define the specifications for a chip/ rack/ server/ whatever. Other jobs are more isolated in their impact. Microarchitects and designers are more like input->output. They are given a set of specifications (by architects) and are tasked with block level microarchitecture and design and documentation. Even Microarchitects will interface with their verification counterparts, whose job is to test the assumptions and the intent of various designs.
And of course, as you mature in your career and you become a subject matter expert, you'll be relied on for your experience and knowledge. You'll be asked about tool flows and methodologies. You'll be asked about the physical design implications of your work. All that broad knowledge you've acquired early in your learning will come in handy, so don't throw anything away.
It takes a LOT of people to make a chip or build a machine. Sometimes there's this assumption that Engineers are sitting in their little cubicles coding coding coding, but that's not true. It takes a TON of collaboration, sharing of knowledge, joint debugging, whiteboarding. Humans are social creatures by nature and engineers are no exception to this, especially if you want to be a good engineer. :)
A typical day could include:
- Coding (yes)
- Code reviews
- Reading and writing specifications
- Reviewing designs and discussing design intent
- Benchmarking performance
You'll need to know way more programming languages than you think!
Hope this helps!
Great question--there are so many aspects to computer engineering. Right now you're learning a broad set of skills, a baseline of knowledge so that you can have a good understanding of the basics of computer engineering. Software development, firmware development, hardware design, hardware verification, physical design, basic circuits, processor instructions, interpreters, the list goes on. Eventually you'll likely end up choosing the area that interests you the most. My advice right now is to take your time and consider what kind of work resonates with you. For example, I was an ECE (Electrical and Computer Engineering) major, and what resonated most with me was circuit design and computer hardware, so that's what I ended up doing.
Your decision is going to impact the type of work you do; it will also impact how you collaborate with other teams. For example, Computer Architects work closely with Design groups, Verification groups, and Hardware Validation groups. But they also interface with business leaders and product groups, who may define the specifications for a chip/ rack/ server/ whatever. Other jobs are more isolated in their impact. Microarchitects and designers are more like input->output. They are given a set of specifications (by architects) and are tasked with block level microarchitecture and design and documentation. Even Microarchitects will interface with their verification counterparts, whose job is to test the assumptions and the intent of various designs.
And of course, as you mature in your career and you become a subject matter expert, you'll be relied on for your experience and knowledge. You'll be asked about tool flows and methodologies. You'll be asked about the physical design implications of your work. All that broad knowledge you've acquired early in your learning will come in handy, so don't throw anything away.
It takes a LOT of people to make a chip or build a machine. Sometimes there's this assumption that Engineers are sitting in their little cubicles coding coding coding, but that's not true. It takes a TON of collaboration, sharing of knowledge, joint debugging, whiteboarding. Humans are social creatures by nature and engineers are no exception to this, especially if you want to be a good engineer. :)
A typical day could include:
- Coding (yes)
- Code reviews
- Reading and writing specifications
- Reviewing designs and discussing design intent
- Benchmarking performance
You'll need to know way more programming languages than you think!
Hope this helps!
Updated
Sharon’s Answer
Hello! Joining the computer science field is exciting because there are so many areas to explore, and you're sure to find something you love. I work as a Site Reliability Engineer, where I keep our services running smoothly by managing live site configurations and analyzing data. Our team is spread across three time zones, and we often work with global partners. For coding, we use Git, OneDrive, and Azure DevOps, and we communicate through Microsoft Teams and Outlook.
My workweek is varied. On Mondays, I work remotely, handling emails and meetings in the morning, then coding in the afternoon. The rest of the week, I start meetings from home and go to the office around 10 a.m. to avoid traffic. I review past incidents, check our incident queue, and work on tickets. Lunch is often a walk to the cafeteria with coworkers, then back to focused work. I end the day by catching up on emails, preparing for the next day’s meetings, and completing documentation. I save any training for Friday afternoons to ease into the weekend.
My main job is to ensure our services run smoothly and meet all infrastructure needs. If there's an outage, I work quickly to restore service.
Besides technical skills, being able to communicate and explain code to non-technical people is crucial. Communication and collaboration are key skills that are important in any industry, especially here.
My workweek is varied. On Mondays, I work remotely, handling emails and meetings in the morning, then coding in the afternoon. The rest of the week, I start meetings from home and go to the office around 10 a.m. to avoid traffic. I review past incidents, check our incident queue, and work on tickets. Lunch is often a walk to the cafeteria with coworkers, then back to focused work. I end the day by catching up on emails, preparing for the next day’s meetings, and completing documentation. I save any training for Friday afternoons to ease into the weekend.
My main job is to ensure our services run smoothly and meet all infrastructure needs. If there's an outage, I work quickly to restore service.
Besides technical skills, being able to communicate and explain code to non-technical people is crucial. Communication and collaboration are key skills that are important in any industry, especially here.
Updated
Juanita’s Answer
These are fantastic questions! TEAMS is an excellent tool for daily collaboration, whether through chat, phone calls, or creating channels for specific topics. It's also great for organizing project files in folders and managing tasks. While chat is popular, sometimes a direct call leads to a more productive discussion.
I've worked with IT application engineers for many years, and some of the best are excellent communicators. They listen carefully to understand the issues or goals and clearly explain how the application works both for the user and behind the scenes. As a project manager and SAP expert in labels and quality, I hope this information is helpful!
I've worked with IT application engineers for many years, and some of the best are excellent communicators. They listen carefully to understand the issues or goals and clearly explain how the application works both for the user and behind the scenes. As a project manager and SAP expert in labels and quality, I hope this information is helpful!
James Constantine Frangos
SOFTWARE ENGINEER SINCE 1972; NUTRITIONIST SINCE 1976.
7094
Answers
Gold Coast, Queensland, Australia
Updated
James Constantine’s Answer
Good Day Fajardo!
Developing a feeling for what sort of code needs to be written next! The sort of code that's going to solve peoples' problems, not empower a single manager in a corporation. It is like solving a mathematical algorithm.
Writing code that makes artificial intelligence serve people not the other way round. Start getting artificial intelligence to solve global problems that humans experience! But unfortunately artificial intelligence is employed to make corporations billions of dollars.
GOD BLESS!
Developing a feeling for what sort of code needs to be written next! The sort of code that's going to solve peoples' problems, not empower a single manager in a corporation. It is like solving a mathematical algorithm.
Writing code that makes artificial intelligence serve people not the other way round. Start getting artificial intelligence to solve global problems that humans experience! But unfortunately artificial intelligence is employed to make corporations billions of dollars.
GOD BLESS!
Teklemuz Ayenew Tesfay
Electrical Engineer, Software Developer, and Career Mentor
517
Answers
Ethiopia
Updated
Teklemuz Ayenew’s Answer
Computer engineering is an exciting field that blends hardware and software. It offers opportunities to work on projects like developing embedded systems and coding at a low level. Engineers often work in teams, using tools like Git and Linux, and spend their time coding, testing, and solving problems. Key skills include C/C++, embedded systems, and strong problem-solving abilities.
To start your journey as a computer engineer, learn basic programming and system design. Create projects with platforms like Arduino and share your work on GitHub. Get involved in clubs, participate in hackathons, and network on sites like LinkedIn, Stack Overflow, and Dev.to. Expand your knowledge with courses on embedded systems, real-time operating systems, or languages like VHDL. Follow YouTube channels such as GreatScott! and EEVblog, listen to podcasts like Embedded.fm, and read blogs like Hackaday to keep up with the latest trends. Staying curious and eager to learn will help you thrive in this field. If you need more information, feel free to reach out!
To start your journey as a computer engineer, learn basic programming and system design. Create projects with platforms like Arduino and share your work on GitHub. Get involved in clubs, participate in hackathons, and network on sites like LinkedIn, Stack Overflow, and Dev.to. Expand your knowledge with courses on embedded systems, real-time operating systems, or languages like VHDL. Follow YouTube channels such as GreatScott! and EEVblog, listen to podcasts like Embedded.fm, and read blogs like Hackaday to keep up with the latest trends. Staying curious and eager to learn will help you thrive in this field. If you need more information, feel free to reach out!
Updated
vignesh’s Answer
A computer engineer works on creating and improving computer parts and programs. They build things like processors and circuits and make sure software runs well and is safe to use.