Living as a Software Engineer in the US (Part 2)
Categories:
This is my second article published in the January 2013 issue of Micro Software. I am reposting it on my blog with some additions and corrections that were omitted at the time due to length constraints.

Article published in Micro Software, January 2013
A Paradise for Software Developers
Living as a Software Engineer in the US (2)
Since I was 20, I had dreamed of working in the US, where many global IT companies leading the world’s technology are located. Although I came to study in the US at the late age of 31 and majored in computer science, crossing the threshold of local companies as a foreigner was not an easy task. However, with a mindset of starting from scratch, I sent out about 1,300 applications, went through dozens of phone interviews, and finally got a job at a local IT company in Texas, USA, where I have been working as a software engineer since 2011. Having experienced the life of a developer in both Korea and the US, I would like to talk about what the life of a software engineer is like in the US, often called the heaven for software engineers, and share advice from my actual experiences in the hope that it will be helpful to Micro Software readers preparing to advance overseas.
Stan Lee | stanley.s.lee@gmail.com
After graduating with a Master’s degree in Computer Science from Yale University, I am currently working as a software engineer at Dell headquarters in Texas. Leveraging my background in Electronics and Computer Science and my experience as a hardware and firmware engineer, I am developing BIOS and UEFI for Dell computers. Life in the US is still unfamiliar, and every day is a challenge, but I am living with the joy of experiencing a new world.
Experiencing a new world is certainly one of the few opportunities one can have in life. However, it also comes with the risk of having to abandon familiar things and adapt to a new world.
After majoring in electronic engineering in college and working hard as a developer in Korea, I vaguely thought it would be good to work in the US, the paradise for software developers. However, I had many doubts about whether I could work properly there when my English was not good, and there was no one to advise me on what process I should go through. Looking at related study abroad bulletin boards and books, many people said that the probability of international students graduating and finding a job in the US was so low that it was almost impossible, so it is true that I had many doubts even while going to study abroad. However, as I actually took on the challenge and went through the processes one by one, I learned that although it is difficult, it is not impossible. Of course, there were many difficulties such as language problems and cultural differences while preparing for studying abroad and finding a local job, but I also succeeded in finding a local job, and I learned that many international students who came to study computer science get jobs at local IT conglomerates in the US.
The most standardized process for finding a job in the US is to come to study, obtain a degree locally, and then challenge for local employment. People with US permanent residency or citizenship have no problems working in the US, but foreigners must resolve their status issues before working in the US. The method most people choose is to obtain a bachelor’s/master’s/doctoral degree in the US through studying abroad, start working after receiving OPT, which allows them to work in the US for a certain period without a work visa, and then receive a work visa. Of course, it is not impossible to work in the US without going through the process of studying in the US. If you are a talent that a US company absolutely needs, they may hire you while waiting for the few months it takes to apply for and receive a work visa.
I have summarized the points that are helpful when preparing for employment, which I felt while preparing for employment in the US and heard a lot from people around me. Since I was born and raised in Korea and built my first career in Korea, I was not familiar with American culture and language while preparing for studying abroad and local employment, so I made many mistakes when preparing for employment. However, in the process, I met grateful people who gave me a lot of help and advice, and as I tried constantly, I was able to become more familiar and bold with the things needed to get a job as a software engineer. Looking back now, what is a bit regrettable is that if someone had taught and organized these things, I could have saved more time. This is why I started writing this series for Micro Software.
Now let’s look at what to watch out for when looking for a job in the US.
10 Things to Keep in Mind When Looking for a Job in the US
1. Clear Settlement of Status Issues
Since the 9/11 attacks in the US, the US government has begun to apply unprecedentedly strict standards to the status issues of international students. Not only has it become more difficult to obtain student visas and work visas, but there have also been cases where people could not return to the US just because they violated regulations slightly. Since no one but yourself is responsible for visa regulations, you must first know the visa regulations and policies well and act according to the restrictions. In the case of studying abroad, the school’s international office often has relevant regulations well organized, so as soon as you arrive in the US, take care of the necessary items so as not to make mistakes.
If you obtain a degree and graduate in the US, you can apply for OPT. This OPT is a program that allows foreigners to do job training through a workplace for one year if they obtain a degree in the US. If you graduate from a computer-related department, the STEM program applies, adding a period of 17 months, giving you the right to work in the US for a maximum of 29 months. Finding a company that can support a work visa during this period can be said to be the primary goal of those looking for a job in the US. If you can receive H1-B, one of the work visas, you can work in the US for up to 6 years. If you want to continue working in the US after that, you can apply for and obtain permanent residency.
2. Apply Without Being Picky.
The most common mistake made when coming to the US to study computer science and finding a job is applying only to the field you want. When applying as a software engineer, the most common job types are engineers who develop software and engineers who test software. For example, Microsoft divides them into Software Development Engineer (SDE) and Software Development Engineer in Test (SDET), and Google divides them into Software Engineer and Software Engineer in Test.
If you want to be a software engineer in the US, please apply even if it is a test engineer. Even graduates of local Ivy League universities find it difficult to get a job, and as a foreigner who lacks English and has to find a job within a set time (within 90 days set by OPT), you are not in a position to be picky. If it is a job where keywords such as Software or C/C++, Java appear, please apply for all of them. If you receive an interview request, it is a good opportunity to practice from phone interviews to onsite interviews, and furthermore, if you receive a Job Offer, you have a choice. For reference, if you get into a large US company, moving within that company is relatively easier than applying for that job type for the first time. Even if you joined as a software test engineer, there is a high possibility that you can switch to a software development engineer a year later. Even if you are a C/C++ engineer, please apply for jobs that require Java or other languages. If you graduated from computer science, you will have most of the basic knowledge of programming languages, and since there are many questions focused on algorithms and data structures during interviews, they are often not heavily dependent on a specific language.
I also sent resumes to US IT conglomerates and small and medium-sized enterprises without making a big distinction, and applied unconditionally if it was a place recruiting software engineers. In the meantime, I had phone interviews and programming interviews with companies that contacted me, supplementing my shortcomings and finding a job. I didn’t think of coming to Dell from the beginning. One day, I remembered that there was a company called Dell, went to the company’s website, and sent resumes to all places recruiting software engineers. And about 3 months later, I was contacted, went through the process of phone interview and onsite interview, received a job offer, and came to Texas. When I first interviewed, I didn’t know much about the BIOS (Basic Input/Output System) and UEFI (Unified Extensible Firmware Interface) fields I work in now (of course, before the onsite interview, I studied this field on the internet). I think Dell also gave me a job offer by highly evaluating my potential, having majored in electronic engineering and computer science and worked in hardware and firmware, although I had no direct experience in this field.
3. Target Large US Companies If Possible
While looking for a job for local employment in the US, I often heard that I should place more weight on getting a job at a large US company if possible. Of course, you should put your resume in companies where you can apply without being picky, but prioritizing large US companies has advantages in many ways later. There will be many differences by company, but if you get a job at a large company, there is a lot of room to solve status issues first. You start working in OPT status after graduation, but applying for H1-B and furthermore permanent residency costs the company thousands of dollars additionally, so companies with sufficient funds are more active in the status issues of foreign workers. In fact, looking at the list of companies that applied for H1-B and permanent residency the most, large companies such as Microsoft and Oracle account for a large number.
4. Please Investigate More Carefully If the Owner Is Korean or If It Is a Small Company with Many Koreans.
This is a very ironic part. There is an expectation that if you go to a place run by a Korean in the US, it will be more family-like and they will treat you better because you are Korean, but if you go to job bulletin boards for Koreans in the US, they are often decorated with bad stories. The reason is that they make you work in the Korean style. They demand overtime and weekend work, do not guarantee necessary benefits, and often give low salaries. At the same time, since making such demands and treatment to Americans working together is likely to cause legal problems, they make more demands on Koreans who are caught up in status issues. It is a very unfortunate thing.
Of course, there are many good Korean bosses, but when you hear various stories or see posts on bulletin boards, it is necessary to check once more what the working culture is like when going to a company where the owner is Korean or there are many Koreans.
5. Be Careful When Writing Resume and Cover Letter.
When applying to a US company, you will use a resume showing your career and a cover letter showing your motivation for application. The reality is that there is a big difference in document screening depending on how you write your resume and cover letter. Sometimes when juniors or acquaintances ask me to look at their resumes, it is quite regrettable that they overlook basic items. Please pay attention to the following items.
Do not record personal information such as race, gender, age, height, weight, etc.
In the US, discrimination based on race, gender, age, etc. is a big social issue, so this information is not recorded on the resume. People from Korea are used to resumes, so they sometimes fill in this information and attach photos, but such resumes are likely to go straight to the trash can.
Submit the resume format as a PDF file unless there are other requirements
Most word processor programs these days will have an option to convert to Adobe Acrobat’s PDF format. This PDF file has the least change depending on the viewer program, allows documents to be viewed consistently on other platforms, and is most widely used because the viewer is free so anyone can easily view it. If there is no requirement for the file format when submitting a resume to the company website, submit it in this file format.
List mainly work-related items on the resume
Sometimes, people who have just graduated from college list a lot of volunteer activities or hobby activities because they have no work-related experience. If you have no work-related experience, write down your educational background and leadership-related experience, and exclude experiences unrelated to work. And if you have projects conducted during the semester, internship-related experience, research experience, etc., and they are related to work, record them in more detail on the resume. Filling one page of the resume with only necessary information is also a consideration for the hiring manager.
Look for many resume forms available as samples on the internet
There are many resume forms circulating on the internet that look neat and give a good impression. However, to fit yourself and package your career well, you need to look at various resume forms and combine them appropriately to create your own composition. A resume is like your face. How to give a good impression and list your career details well requires a lot of thought and time.
When writing the country name, write South Korea instead of Korea
Many Americans cannot distinguish well between North Korea and South Korea.
Put about 3 people who can talk about you in the Reference section
When hiring, Americans sometimes call the people in the Reference section, who can tell what kind of person this is. You can get permission from a professor who knows you well and write it down, or you can write down the contact information of your former boss. Since Americans may call, it is better to write down people who can communicate in English if possible.
Never exaggerate your career details
Since the US is a society that revolves around trust, if there is a lie in your career details, it can be a big problem legally as well as for employment. Please do not make the mistake of exaggerating your career in Korea, asking how they would know your career in Korea. Many US companies conduct thorough investigations before joining using career investigation companies with international contact networks. I also sent all documents related to my career in Korea and went through verification by a career investigation company before joining the current company. This process is repeated when applying for a work visa and permanent residency, so never exaggerate your career details.
If your Korean name is hard to pronounce, choose an American name
Many Korean names are hard for Americans to pronounce and take time to get used to. I initially used the Korean name “Seung Hun Lee”, but there were two problems. First, many people mistook “Hun” for a middle name and frequently made mistakes on important documents. And most Americans couldn’t pronounce “Seung” properly, so they asked for my name several times. As these problems continued to occur, I eventually used the English name I originally had on my resume. I was worried that there might be a problem later when joining the company because it was different from the name on my passport, but there has been no problem so far. In fact, there are many cases where Americans also have different names registered as legal names and names called by others, so it was not much of a problem to use a name that is not a legal name at the company. However, for credit cards or legal documents, you must use your legal name.
6. Apply to the Company You Want to Go to Most Later If Possible.
The most common mistake international students make while looking for a job in the US is applying to the company they want to go to most first. Even if you have obtained a degree from a US university or graduate school, it is true that your English is lacking compared to native speakers. And it is also true that the first phone interview while preparing for the new challenge of employment is trembling and difficult for anyone.
If you have your first phone interview with the company you want to go to most, you will be nervous and unable to answer questions well even though your English is not good, and you are likely to make many mistakes even on familiar programming problems. In fact, this is natural for us as foreigners.
So what I suggest is to postpone submitting your resume to the company you want to go to most if possible. Also, even if you receive a phone interview offer from here, postpone it as much as possible and practice a lot before doing it. First, please apply to small and medium-sized enterprises or companies you are not very interested in to get interview opportunities and have many opportunities for practical interview training. Since these are not companies you prefer, you can do it with a comfortable mind, and if you go through many interviews, anyone will be able to grasp the main questions that appear frequently in interviews.
And if you received a job offer from a company you didn’t prefer and signed and sent it because no other place gave you a job offer within the deadline, you are not legally bound. To be honest, the company that gave the job offer may cancel the job offer due to situations such as internal layoffs, and the person who received the job offer can also cancel even if they signed. However, if you apply to the team of the company that gave the job offer again, it will be difficult to expect good results.
If you receive a job offer from at least one place, you will avoid the situation of returning without finding a local job after graduating from studying abroad. And there is quite a bit of time left until you actually work (in the US, you interview before graduation and receive a job offer, but sometimes there is time left until you actually work, up to 6 months or 1 year), and if you are guaranteed a better opportunity from a better company at this time, you can apologize to the previous company and go to a better position.
7. Create Scripts for Phone Interviews and Programming Interviews and Practice Every Day.
The part I focused on most while doing phone interviews was creating scripts for phone interviews and programming interviews and practicing.
First, in the case of phone interviews, the contents usually asked are fixed. You will be asked to introduce yourself in any phone interview. And if there are special items in your career and they are related to the job of the company you applied for now, focused questions will come in on this part. Also, you should always prepare answers and practice about what your dream is in the future and how you will build your career.
In my case, I collected all the questions I received while doing phone interviews and organized the answers to those questions in a document after the interview was over. Similar questions were collected and organized into common answers, and I steadily increased the database while interviewing in the order of the most frequently asked questions. After doing this for a few months, I reached a level where I could answer quite fluently in English even if a decent question came out. In fact, until then, when doing phone interviews, I displayed the expected interview questions and answers I had organized so far on my laptop and iPad, and pasted the printed papers on the surrounding walls like tiles and practiced. Sometimes, even if I couldn’t remember, I naturally continued the interview while dragging time a little, finding related questions, and looking at the answers to those questions and thinking. If that process continues for a few months, anyone will find it much easier to answer frequently asked questions in English.
The same goes for programming interviews. Programming interviews lead to concept-oriented questions and actual coding questions, and answer practice centered on the script presented earlier can be used together during concept-oriented programming interviews. The fact I learned while doing dozens of programming interviews was that the scope of concept-oriented questions did not deviate from the big framework. I usually asked to be asked mainly about C/C++, and in this case, questions about C++ object-oriented concepts and terms, and questions about C/C++ keywords when actually programming were the main ones. I organized various concepts about object-oriented in English, pasted these contents on the surrounding walls when interviewing, referred to them when necessary, and later reached a level where I almost memorized them. And since these concept-oriented problems are also frequently asked when invited to onsite interviews, please memorize them all.

My interview preparation scripts (Left: Behavior Questions, Right: Technical Questions)
8. Practice and Practice Every Day While Reading Programming Interview Books
Coding-oriented programming interviews will be the most core process and the most difficult process in finding a job as a software engineer in the US. Usually, an engineer from the company you want to go to contacts you by phone and shares the screen to code, or sometimes you solve problems while coding on a whiteboard during the company briefing session or onsite interview. When I interviewed with Google in the past, I first decided whether to code in C++ or Java, and then solved problems while discussing over the phone while sharing the screen using Google Docs (now Google Drive). At this time, you don’t have to strictly follow the grammar of the programming language, and if you explain well how to solve the problem using Pseudo code, the engineers in charge of the interview will be mostly satisfied.
To solve these coding problems well, the basics of computer science must be well established. Data structures and algorithms are the most necessary parts, and related concepts and incidental facts should always be kept in mind. And regardless of the company, there are problems that appear frequently in programming interviews, so please organize them while reading the following books several times.
- Programming Interviews Exposed: Secrets to Landing Your Next Job, 3rd Edition by Eric Giguere, John Mongan, Noah Suojanen

Programming Interviews Exposed (3rd)
- Cracking the Coding Interview: 150 Programming Questions and Solutions, 5th Edition by Gayle Laakmann McDowell

Cracking the Coding Interview (5th)
The first book is a book I read because a graduate school classmate who went to Google told me about it. In the first semester of graduate school, Microsoft came to the school for recruiting and I had a programming interview. Thinking back now, it was a simple problem, but I remember being very flustered because I didn’t know how to approach it at that time. If I had read the first book and practiced in many parts, I feel regretful that I might have obtained better results in the programming interview at that time. This book describes a lot about the problem types and approaches that appear most frequently in programming interviews. It was also the book that helped me the most while preparing for programming interviews.
The second book is a book organized by the author who has experienced Microsoft, Google, and Apple, summarizing her own know-how gained while conducting more than 120 programming interviews. The author also runs a site called CareerCup.com and analyzes what problems are coming out recently, so if you are curious about what problems are coming out these days, please go in and solve them.
If you receive a programming interview or onsite interview request, please find out what problems appear in the programming interview of the company you received the interview request from through Google search. It is difficult for the person conducting the interview to change problems frequently, and problems that have appeared once can sometimes be searched on the internet. If you prepare for the programming interview by finding such problems, coding them yourself, and finding your own solutions as practice, you may be lucky enough to have the problem you solved appear in the actual interview. At this time, do not be too happy, but pretend to be worried and derive the solution. It is more advantageous in the interview to give the impression that you are deriving your own solution while worrying in that situation rather than giving the impression that you solve it easily because you know the problem.
9. Don’t Think About Going to Korea During Vacation, Utilize Internship Opportunities Well
Since I had a one-year degree period, I went straight to job hunting without going through an internship process, but if the degree was a two-year period and there was a summer vacation, I would have definitely looked for an internship process. This is because the process of finding an internship opportunity goes through all the processes of a job interview and is very helpful in the actual job preparation process. In fact, in the company I work for now, I can see many examples of people who succeeded in getting a job after receiving good evaluations during the internship process.
Even if you interview a person for a few days, all you can know is the depth of their major knowledge and understanding, and it is difficult to know their character and way of working. However, if there is an opportunity to work together in one workplace for a few weeks, the company will be able to evaluate the person more broadly and objectively. If you received good evaluations not only in terms of ability but also in character and way of working while working as an intern, you will be able to enter that workplace more easily when you actually get a job the following year (it will be a less risky choice from the company’s perspective as well. Think about it. Even if they know a lot and are skilled, if they are self-righteous and arrogant… no one would want to work with that person). Also, even if it is not the workplace where you did the internship, you may be able to get a job at a better workplace based on that experience.
I often encounter cases where many international students try to spend their vacation period in Korea because they are tired and lonely. Although it will be difficult, I hope you utilize the internship process well during this period and get a job in a better position when you graduate. Because that period is a very important time for job hunting activities in the US.
10. Refer to Job-Related Sites and Bulletin Boards Well
I would like to list the sites most used when looking for a job in the US. If your resume is complete, post it here and wait for recruiters to contact you.
- Career networking site LinkedIn with over 175 million members: www.linkedin.com
- Monster.com with extensive recruiting services: www.monster.com
- Indeed, which searches the contents of company job boards and job information sites: www.indeed.com
- Job site for developers: www.dice.com
If your career is attractive, recruiters’ calls will line up after posting your resume on the sites above. Sometimes they introduce decent positions in large US companies, but most of them will be short-term contract positions. If you have enough OPT period after graduation, schedule interviews based on regular positions as much as possible, and ask recruiters clearly about whether the company supports work visas.
In my case, rather than using these places, going to the Career or Job section of the homepage of the company I wanted to go to and applying directly to the company seemed to be more effective in finding a job. First of all, I could apply to the job type and field I wanted, and looking at the Job Description and Job Requirement, I could gauge whether I could work well in this field.
And to refer to information related to employment, visa, and studying abroad, visit the following sites.
- Site related to employment/immigration/visa for Koreans in the US: www.workingus.com
- US government immigration policy and visa service site: www.uscis.gov
- Employment and salary related information: www.salary.com, www.glassdoor.com
- US study abroad related information: www.gohackers.com, www.csuhak.info
Post your resume on job sites as quickly as possible, and visit related information sites at least once a week to find out the latest information related to employment.
Around the time I graduated from KAIST, I had a lot of conflict about my career path. Whether to go to a domestic graduate school and finish the doctoral course and then step on the threshold of foreign countries as a post-doc course, or just finish undergraduate and work at a company and then go to study abroad. My GPA was insufficient to go to study abroad, and my English was also lacking, so overseas employment seemed too difficult, and I thought going to a domestic graduate school and going overseas later would be the best choice.
However, I wanted to see a wider world at a younger age if possible. As I got older, inertia developed in life, so I was very anxious that leaving the society I had experienced and going to another society would become increasingly impossible. I tried to go to study abroad after finishing my alternative military service, but as various problems such as tuition problems, exams to prepare, marriage problems, and job problems overlapped, the two words “study abroad” seemed to fade away, and the things I dreamed of when I was 20 seemed to become faint.
Everyone has a crossroads of choice in life, and it seems that the branches of future life vary countlessly depending on the choice at that time. I chose the path of studying in the US late at the age of 31, and although I experienced difficulties because the language, culture, and environment were different in a new country, fortunately, I finished all the necessary processes in the shortest possible time and settled in Texas now.
I cannot list them all, but I want to reveal that there were countless times of tears and difficulties in the process. Trial and error became common while starting everything anew in a new world, and embarrassing things coming from differences in language and culture became daily life. However, looking back now, I think all those processes were worth challenging enough. I thought that if I could work with talents gathered from all over the world at the center of the world and grow my own abilities, I could handle a few years of hardship in my youth.
No one told me that overseas employment was possible. In a reality where many international students return to Korea because it is difficult to find a job at a local conglomerate even after graduating from a prestigious Ivy League university, finding a job locally in the US after graduating from a master’s course seemed like picking stars in the sky. Everyone said there was no possibility, but as I went through the processes step by step, I was eventually able to cross the gateway to local employment in the US. Even if others say otherwise, if you are confident in your skills and passion, I hope you listen to your own voice.
From the perspective of majoring in computer science in the US, I want to say that local employment in the US as a software engineer is more open than any other field. While the demand for software engineers in the US is increasing, the pool of necessary domestic manpower is decreasing. This vacancy is now being filled by international students, mainly Indians and Chinese, who are leading key US IT industries. Seeing my graduate school computer science master’s classmates, composed only of international students, all getting jobs in the US, I witnessed this fact myself, and through my own employment process, I became convinced that employment in the US is difficult but worth challenging.
I hope that Korean developers full of passion and spirit who want to experience a wider world and challenge themselves will expand their horizons to a wider world through overseas employment. From my experience, if Korean developers only have linguistic competitiveness, their technical abilities are never behind compared to US developers. I think the US became a software powerhouse because the US IT industry created a system that treats developers well and a good environment where they can focus only on development.