A great job-hunting trick for programmers! A talented programmer writes his resume in C language

A great job-hunting trick for programmers! A talented programmer writes his resume in C language

[[129819]]

This is a resume that is also a readable and compilable C source file. Because of Hacker News, the content of this resume is not much different from my actual resume. This is not a serious document, just to tease people who talk about recruitment and the resume format they accept. It also has some relative representation of my programming style.

Because it's just a thing on Hacker News and reddit...

No, my real resume doesn't look like this. A friend of mine joked that I looked like someone who would make one, so I made one. My actual resume is written in BSD mandoc.

I use a lot of _t in my types, and I apologize for that. I did that for a long time. "System reserved words? I am the system."

Because people kept complaining, I fixed the non-const char string allocation.

The type names I used, however, were entirely intentional.

If you're using an older compiler, you may have problems compiling anonymous units and designated initializers - I think gcc 4.4 requires some extra curly braces to make them work together properly. Newer compilers should have no problems. Clang and gcc (since 4.4) support these features by default.

Due to some friends' advice, I stopped building struct tms and used timestamps instead.

***I have to remind you again that this is just a joke.

  1. #include <stdio.h>
  2. #include <time.h>
  3.    
  4. typedef struct {
  5. union {
  6. const   char *company;
  7. const   char *school;
  8. const   char * project;
  9. };
  10. union {
  11. const   char * location;
  12. const   char * url;
  13. };
  14. union {
  15. const   char * title;
  16. const   char * program;
  17. };
  18.    
  19. time_t started;
  20. time_t left;
  21.    
  22. const   char * description[];
  23. } thing_t;
  24.    
  25. typedef thing_t job_t;
  26. typedef thing_t school_t;
  27. typedef thing_t project_t;
  28.    
  29. #define CURRENT 0   /* I wasn't alive at the Unix epoch, so that'll work */  
  30.    
  31. /* Contact Information */  
  32. const   char * name = "Kevin R. Lange" ;
  33. const   char * email = "[email protected]" ;
  34. const   char * address = "1045 Mission St, Apt 440\n"  
  35. "San Francisco, CA 94103" ;
  36.    
  37. /* Education */  
  38. school_t uiuc = {
  39. .school = "University of Illinois at Urbana-Champaign" ,
  40. .location = "Urbana, IL" ,
  41. .program = "BS Computer Science" ,
  42. .started = 1251158400 ,
  43. .left = 1336608000 ,
  44. .description = {
  45. "Minor in International Studies in Engineering, Japan" ,
  46. "Focused on systems software courses" ,
  47. NULL
  48. }
  49. };
  50.    
  51. school_t hit = {
  52. .school = "Hiroshima Institute of Technology" ,
  53. .location = "Hiroshima, Japan" ,
  54. .program = "Study Abroad" ,
  55. .started = 1274745600 ,
  56. .left = 1278288000 ,
  57. .description = {
  58. "Cultural exchange program "
  59. "Intensive language course "
  60. NULL
  61. }
  62. };
  63.    
  64. school_t * schools[] = {
  65. &uiuc,
  66. &hit,
  67. NULL
  68. };
  69.    
  70. /* Projects */  
  71. project_t compiz = {
  72. .project = "Compiz Window Manager" ,
  73. .url = "http://compiz.org" ,
  74. .title = "Developer" ,
  75. .started = 1201392000 ,
  76. .left = 1264291200 ,
  77. .description = {
  78. "Minor plugin contributor" ,
  79. "Various research projects" ,
  80. NULL
  81. }
  82. };
  83.    
  84. project_t toaruos = {
  85. .project = "ToAruOS" ,
  86. .url = "https://github.com/klange/toaruos" ,
  87. .title = "Lead" ,
  88. .started = 1295049600 ,
  89. .left = CURRENT,
  90. .description = {
  91. "Hobby x86 Unix-like kernel and userspace" ,
  92. "Advanced in-house GUI with compositing window manager" ,
  93. NULL
  94. }
  95. };
  96.    
  97. project_t * projects[] = {
  98. &toaruos,
  99. &compiz,
  100. NULL
  101. };
  102.    
  103. /* Employment History */  
  104.    
  105. job_t yelp = {
  106. .company = "Yelp, Inc." ,
  107. .location = "San Francisco, CA" ,
  108. .title = "Software Engineer, i18n" ,
  109. .started = 1339977600 ,
  110. .left = CURRENT,
  111. .description = {
  112. "Developed several internal tools and libraries" ,
  113. "Provided critical input and design work for Yelp's launch in Japan" ,
  114. NULL
  115. }
  116. };
  117.    
  118. job_t apple_internship = {
  119. .company = "Apple Inc." ,
  120. .location = "Cupertino, CA" ,
  121. .title = "Software Engineering Intern" ,
  122. .started = 1306886400 ,
  123. .left = 1314662400 ,
  124. .description = {
  125. "Built software framework for testing and verification of desktop retina display modes" ,
  126. "Assisted other interns with Unix fundamentals" ,
  127. NULL
  128. }
  129. };
  130.    
  131. job_t * jobs[] = {
  132. &yelp,
  133. &apple_internship,
  134. NULL
  135. };
  136.    
  137. void print_thing(thing_t * thing) {
  138. char started[ 100 ];
  139. char left[ 100 ];
  140. struct tm *ti;
  141.    
  142. printf( "%s at %s - %s\n" , thing->title, thing->company, thing->location);
  143.    
  144. ti = localtime(&thing->started);
  145. strftime(started, sizeof(started), "%B %d, %Y" , ti);
  146.    
  147. if (thing->left == CURRENT) {
  148. printf( "%s to now\n" , started);
  149. } else {
  150. ti = localtime(&thing->left);
  151. strftime(left, sizeof(left), "%B %d, %Y" , ti);
  152. printf( "%s to %s\n" , started, left);
  153. }
  154.    
  155. const   char ** desc;
  156. for (desc = thing->description; *desc; desc++) {
  157. printf( "- %s\n" , *desc);
  158. }
  159.    
  160. puts( "" );
  161. }
  162.    
  163. int main( int argc, char ** argv) {
  164.    
  165. school_t**s;
  166. job_t ** j;
  167. project_t ** p;
  168.    
  169. printf( "%s\n%s\n%s\n\n" , name, email, address);
  170.    
  171. puts( "Education\n" );
  172. for (s = schools; *s; s++) {
  173. print_thing(*s);
  174. }
  175.    
  176. puts( "Employment\n" );
  177. for (j = jobs; *j; j++) {
  178. print_thing(*j);
  179. }
  180.    
  181. puts( "Projects\n" );
  182. for (p = projects; *p; p++) {
  183. print_thing(*p);
  184. }
  185.    
  186. return   0 ;
  187. }</time.h></stdio.h>

<<:  IE abandoned: open source monopoly is a good monopoly

>>:  Weird open source component: Play the "Brick Breaker" game in the pull-down refresh

Recommend

Regarding "user growth", these may be things you don't know

Judging from the current situation, the domestic ...

Before you read this, you definitely don’t understand what real ASO is.

As everyone knows, ASO refers to the search optim...

A terrifying night! More than 30 tornadoes hit the United States

On the evening of the 10th local time, six states...

How can one quickly move into an operations position?

 I have been working in the operation position for...

Year-end review: This year, we pursued our dreams and settled in space

◎ Science and Technology Daily reporter Jin Feng ...

Easily complete the year-end summary, how powerful is Huawei PC Super Terminal?

In a few days, 2022 will say goodbye to us. The c...

Decoding: What’s so great about Alibaba’s operations?

If we ask the operations people a question now: W...

Xiaomi MIUI 6: Lei Jun's dilemma and ambition

Xiaomi released its MIUI 6 in the form of a lolli...

Dealroom: Global AI Venture Capital Report 2025

Global AI Venture Capital In 2024, AI venture cap...

What are some tips for early stage promotion of startups?

Every time when various Internet celebrities shar...

How to quickly achieve user growth through active traffic generation?

Nowadays, not only works of art, but as long as v...

Peng Bin's quadriceps and hamstring theory and practice fitness course

Peng Bin's quadriceps and hamstring theory an...

Are romantic tulips poisonous? Are they suitable for indoor cultivation?

Tulips are a world-famous flower and are widely c...