What do software engineers do in AI companies?
2022/03/04
⏱ 15mins
entering
📍WHAT DO SOFTWARE ENGINEERS DO IN AI COMPANIES?
THIS IS A QUESTION THAT MANY SOFTWARE ENGINEERS WORKING FOR AI COMPANIES, INCLUDING UPSTAGE, HAVE PROBABLY HEARD AT LEAST ONCE. WE HAVE PREPARED THIS FOR THOSE WHO HAVE DIFFICULTY FINDING DETAILED INFORMATION ONLINE. IF YOU ARE A DEVELOPER WHO IS DRAWING A CAREER PATH TO THE HOT AI FIELD, PAY ATTENTION. WE HAVE PREPARED SOME TIPS FROM SOFTWARE ENGINEERS FROM DOMESTIC AND FOREIGN TOP IT COMPANIES TO CLEAR YOUR DOUBTS AND MISUNDERSTANDINGS REGARDING SOFTWARE ENGINEERS ATTENDING AI COMPANIES.
MISCONCEPTIONS ABOUT THE JOB OF A SOFTWARE ENGINEER IN AN AI COMPANY
IMAGINE AN AI COMPANY IN YOUR MIND. AS A SOFTWARE ENGINEER, DO YOU HAVE THE FOLLOWING QUESTIONS AND MISUNDERSTANDINGS?
👉 We are unlikely to hire developers who are not AI Research Engineers.
👉 SOFTWARE DEVELOPERS ARE UNLIKELY TO OCCUPY AN IMPORTANT POSITION IN AI COMPANIES.
👉 There seems to be no challenging task for the growth of developers.
Our answer is 'no' . Let's explain why with an example of Upstage.
Upstage is developing an AI product called 'AI Pack'. AI Pack is an 'all-in-one AI solution' that helps companies that have difficulties in adopting AI technology to easily apply AI.
AI Pack is not a product that delivers only AI/ML models as it is an all-in-one formula. If only the AI model is delivered, it may be difficult for companies to directly operate, maintain, and update the AI model to meet the changing environment and needs. So, Upstage provides essential systems and tools (annotation tools, serving and data platforms, etc.) to run AI models so that companies can easily internalize AI technology.
Great software engineers upstage are responsible for planning and creating such systems and tools. We have an environment where AI model developers who are in charge of developing AI models and software engineers who are in charge of numerous systems and tools necessary for good performance when AI models are introduced into actual service work together toward a common goal.
[Figure 1] is an image showing brief elements of AI Pack configuration. We introduced earlier because the core of AI Pack is to deliver all elements in one package. Except for the ML Code in the gray box, the remaining boxes are development areas in charge of upstage software engineers. Therefore, the role of a software engineer is very important until an AI product is released.
For a more detailed explanation of AI Packs and the role of software engineers in creating AI Packs, see [Upstage Talks] What do front and backend developers do in AI companies? Check it out!
Now let's answer each of the previous questions one by one.
📍 Curiosity 1. I do not think we will hire developers who are not AI Research Engineers.
👉 NO! Not only AI researchers but also good 'software engineers' are needed to implement AI products, and we are actively hiring people in charge of the job.
📍 Curiosity 2. Software developers are unlikely to occupy an important position in an AI company.
👉 NO! As with any company, everyone counts. They play their respective roles in their respective positions, and work independently but organically from other teams. These values are well reflected in the Upstage Way , the way Upstage works! To create one perfect product, we are working together in a horizontal relationship with AI researchers and developers, as well as product designers and many other related departments.
📍 Curiosity 3. There seems to be no challenging task for the growth of developers.
👉 NO! Developers work together to create products that deliver good value to customers in terms of service. You can achieve personal growth and career growth at the same time by taking charge of various tasks to realize convenient functions and optimal performance of the product.
Q&A DIRECTLY ANSWERED BY SOFTWARE ENGINEERS OF AI COMPANIES
FROM NOW ON, UPSTAGE SOFTWARE ENGINEERS WILL ANSWER QUESTIONS ABOUT THE AI COMPANY'S WORK AND SOFTWARE ENGINEER CAPABILITIES IN A Q&A FORMAT.
📍 Q1. What level of AI knowledge do software engineers need to have in order to create AI products?
👉 It doesn't matter if you have no background knowledge about AI/ML. However, having an understanding of basic terms and concepts will make your job easier. Do you want to apply for an AI company, but are struggling because you do not understand AI and do not have a related background? That doesn't mean you shouldn't hesitate to apply. Even for AI companies, the quality required of software engineers is 'knowledge and proficiency in engineering'. If you have interest and interest in AI technology, you can build up enough knowledge after joining the company. Upstage conducts 'AI studies and seminars that everyone can understand' every week. Developers, strategy teams, and marketing teams are all having fun studying AI together.
📍 Q2. DO YOU HAVE DIFFICULTY COMMUNICATING WITH AI ENGINEERS WITHOUT BACKGROUND KNOWLEDGE ABOUT AI?
👉 We will continue to answer the above questions. When communicating with AI engineers, of course, if you do not have an understanding of AI-related concepts or development processes, you may experience difficulties. This will be the same in any field. In such a case, the most important thing is to have an active attitude to ask questions right away.
FOR THOSE OF YOU WONDERING WHAT KIND OF KNOWLEDGE IS NEEDED IN THE REAL WORLD, LET'S TALK A LITTLE BIT MORE. SINCE WE OFTEN COLLABORATE WITH TEAMS THAT CREATE ML TECHNOLOGY, HOW ABOUT LEARNING SOME BACKGROUND KNOWLEDGE ABOUT WHAT A DATASET IS AND BASIC CONCEPTS ABOUT ML TECHNOLOGY? I THINK THAT COMMUNICATION PROBLEMS WILL BE SIGNIFICANTLY REDUCED IF YOU LEARN THE BASIC CONCEPTS AND ENTER. IF YOU HAVE THE ABILITY TO LEARN AND THE ATTITUDE TO LEARN AND GROW, YOU WILL BE ABLE TO PERFORM YOUR JOB IN THE AI FIELD.
📍 Q3. HAVE YOU EVER FELT THAT A SOFTWARE ENGINEER IS A SUPPORTER WHILE WORKING FOR A COMPANY WHERE AI TECHNOLOGY IS THE MAIN FOCUS?
👉 You don't have to worry and worry. As anyone who has participated in service development knows, it is rare that one team is the main and the rest support the main to complete the product. A good product will come out only when the role assigned to each team is fully performed. Let's take an example of AI Pack. Although the AI model is a core part of the AI Pack, other infrastructures and systems must be served together. In order to deliver the full value of AI Pack, the role of software engineers is very important.
ALSO, THE JOB OF A SOFTWARE ENGINEER IN AN AI COMPANY, INCLUDING UPSTAGE, HAS DONE THE SAME IN OTHER FIELDS. IT IS ALSO SOMETHING WE WILL CONTINUE TO DO IN THE FUTURE. SO, AS AN AI COMPANY, YOU ARE NOT GIVEN NEW TASKS THAT YOU HAVE NEVER ENCOUNTERED BEFORE, OR NEW COMPETENCIES ARE NOT REQUIRED AS A SOFTWARE ENGINEER.
📍 Q4. HOW CAN I MAKE AN EFFORT TO BECOME A GOOD SOFTWARE ENGINEER?
👉 Developers create their own performance or achievements through the activity of coding. So you have to do a lot of coding. It is helpful not only to code to solve the algorithm, but also to try coding that will be helpful in actual work. For example, one way to learn is to try cloning to implement a famous service identically, or to understand the source code through Github tracking by grabbing an open source framework for an area of interest. I think it will be helpful to improve your coding skills by understanding and learning patterns that you did not know through a kind of shadowing learning.
📍 Q5. ARE THERE ANY OTHER COMPETENCIES REQUIRED OF A GOOD SOFTWARE ENGINEER?
👉 Communication skills . Good communication skills are the cornerstone of building trust in co-workers. Clear and smooth communication within the company is very important in any job. When resolving conflicting opinions with team members, when asking colleagues from other departments about unfamiliar AI concepts. It seems that how you deal with various situations may be the criterion for judging whether you are a good developer or not. This is because the amount and quality of information you can obtain can vary depending on how you communicate.
One of the good avenues for improving your communication skills is the developer community . By participating in the community, you can increase your communication skills as a developer by gaining experience in communicating and presenting with various developers. In addition, it will be helpful for personal growth as it moves to and from a variety of high-quality knowledge and information within the community. In fact, many upstage developers are also active in various communities.
Upstage Recruitment Process Selecting Good Software Engineers
📌 Document review
In the document review, we check the history of the project in which the applicant participated, and the history of participation in research and competitions. There are no age or educational background restrictions for new hires. There is no age limit as long as you are legally able to work, regardless of your educational background. Our current colleagues range from undergraduates to seniors with over 20 years of experience.
📌 Coding Test
THE CODING TEST IDENTIFIES THE APPLICANT'S PROBLEM-SOLVING ABILITY, BASIC CODING SKILLS, AND UNDERSTANDING LEVEL OF DATA STRUCTURING ALGORITHMS. QUANTITATIVE SKILLS ARE ASSESSED THROUGH ASSIGNMENTS. IT'S A TEST SIMILAR TO MOST IT COMPANIES TO SEE IF YOU'RE A GOOD SOFTWARE ENGINEER.
📌 Colleague Interview
IN A PEER INTERVIEW, WE WANT TO FOCUS ON COMPUTER SCIENCE (CS) KNOWLEDGE. WE ALSO HAVE CONVERSATIONS ABOUT PREVIOUS PROJECTS OR CS-RELATED EXPERIENCES. YOU WILL ALSO SEE THE PROBLEM THE APPLICANT HAS SOLVED AND WHETHER YOU CAN COMMUNICATE THE LOGIC AND METHOD TO SOLVE THE PROBLEM WELL. ADDITIONALLY, IF YOU ARE A JUNIOR, YOU MAY ALSO HAVE SOME BASIC CS UNDERSTANDING QUESTIONS ABOUT HOW COMPUTERS WORK.
📌 Whiteboard Interview
The questions given to the whiteboard interview are given similar or easy questions to the second level of coding. What we are curious about is the process by which the applicant solves the problem. During the problem solving process, you will check your communication skills with the interviewer and your approach to the problem . This is in line with the qualities of a software engineer with good communication skills discussed in the previous question, right?
In addition, I'd like to briefly address some questions related to system design testing. First of all, there may be differences between applicants. Although it is becoming common in foreign countries, it seems that the concept is still unfamiliar in Korea. So, in the second whiteboard interview process, I sometimes ask questions about 'whiteboard coding + system design'. In the case of juniors, please note that there is a difficulty in evaluating competency, so the test is decided by considering various histories and competencies.
📌 Final Interview
The final stage is a culture interview and a representative interview. If you are a senior, ask about your project leadership experience and peer management experience. The applicant's technical competency and the project involved will be focused on whether he or she can manage the entire team , as previously identified. You can think of it as a place to check whether Upstage is suitable for the desired talent and culture, whether it can contribute to the growth of Upstage, and the fit between the company and the applicant.
(The interview process may be different for each applicant. The description is for reference only to help you understand the rough process)
concluding
SO FAR, LET'S TAKE A LOOK AT WHAT SOFTWARE ENGINEERS DO IN AI COMPANIES AND WHAT THEY SAY ABOUT SOFTWARE ENGINEERS THROUGH Q&A WITH UPSTAGE SOFTWARE ENGINEERS. EVEN IN AI COMPANIES, WE HOPE THIS WAS A GOOD OPPORTUNITY TO CONFIRM THAT SOFTWARE ENGINEERS PLAY A VERY IMPORTANT ROLE AS A MEMBER OF A COMPANY. AS LONG AS YOU HAVE ENGINEERING SKILLS, COMMUNICATION SKILLS, AND A WILLINGNESS TO LEARN, THE DOOR TO AI, UPSTAGE, IS ALWAYS WIDE OPEN.
위 콘텐츠는 업스테이지 토크 <업스테이지 토크 Vol. 20 프론트, 백엔드 개발자가 AI 회사에서 뭐 해요?>를 통해 영상으로 확인할 수 있습니다. 블로그에서 미처 확인하지 못한 업스테이지가 만드는 AI Pack에서 소프트웨어 엔지니어가 담당하는 일, 프론트엔드와 백엔드의 역할 구분, AI 회사에서 사용하는 개발 및 공유 툴, 업스테이지 소프트웨어 엔지니어가 추천하는 책과 콘텐츠, 업스테이지의 채용 기준 등 더욱 풍성한 내용을 함께 알아보세요.