C++ job search embedded or x86

Go To Last Post
11 posts / 0 new
Author
Message
#1
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Hello guys. I am looking for a job, England based. I program c++. Started around 15 years ago. Since then I succesfully programmed on x86 gaining experience in opengl, assimp, freetype, opencv in computer graphics, file conversions, algorithms, decoders and object programming. Last 1-2 years I have spent in embedded chips. Have studied 328p and 2560 both from perspective of avr/io.h, datasheets and arduino enviroment. Some of the developed code is on my github, for example extension of Adafruit's graphics library button functionalities for tft screens, graphical polynomial regression for embedded chips as a very cool sensor calibration methode, and there is also some early work like mp3 encoders quality comparator, that was actually entirely writen on android's cxx droid, yet runs on windows and linux too. There is also a software developed for cnc control XY table.
Whether you want to see how I code or check the code itself best way to look at is my github: https://github.com/63n0m3 and youtube, where I made a few coding tutorials https://m.youtube.com/channel/UC...
Part of my experience is also related to cg graphics. Many projects I made required designing buttons, textures or many different objects. Whether procedurally generated or exactly modeled, shaded or sculpted many of this was possible due to my long experience with blender. I am fluent in blender enough to model any real world non living object. I am also familiar with KiCad. If you think I would fit into your company projects, send me a pm with more info:)

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Over the years I've employed something like 50 different software engineers and have interviewed hundreds. Do you want some honest feedback? (be warned it may not all be positive).

Last Edited: Thu. Nov 18, 2021 - 03:06 PM
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 1

Just say it.

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 5

OK well I had a look at the code in your github and on the basis of that I'm sorry but you haven't got the job.

 

Take a look at some other stuff in github. Maybe some of the Arduino code and it's libraries and compare that to your code. In many projects like that it's well documented and well formatted, a joy to read and easy to understand. Then turn to your own code. This for example

 

https://github.com/63n0m3/mp3ext/blob/main/96cutfixed.cpp

 

The indentation is all over the place, the variables don't have meaningful, descriptive names but, most of all, apart from the odd file with a couple of lines of comments at the top most of your source is almost entirely devoid of comments. Now if you wrote this for yourself as a "quick solution" you might just get away with it but in a professional environment you should always be writing code on the basis that someone else may need to take over at any moment (you got covid or accepted that other job offer or whatever).

 

So code should be so obvious and so we'll documented that after a cursory glance pretty much any engineer can get a good grasp of what's going on. It's not just for the benefit of the maintenance engineer but will benefit you when you come back to something after 12-18 months and have to try and work out WTF was I doing here.

 

You may have the greatest of knowledge internally but if you can't convey that to others you may not be a lot of use in a team/group environment.

 

Sorry for the brutal appraisal but apart from interview questions a good way to judge a candidate is on the basis of code examples from their previous projects so you want to be sure you have an impressive portfolio before you approach a potential employer.

 

Oh and please surround operators with white space. This

 

if (i==(gran1a/8)-n_offset+header_size){

 

is much easier to follow as

 

if (i == (gran1a / 8) - n_offset + header_size) {

Last Edited: Fri. Nov 19, 2021 - 03:04 PM
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 1

I used to hate going to design and code reviews.......

   until I realized after they were done, I came out a better engineer/programmer as a result! 

Don't take what Cliff said personally, but instead, take it as a way to self improvement, both your future self and your future employer will benefit!

Good luck with your search.....

 

Jim

PS: During an interview, I was asked to write a simple C program by hand with paper and pencil, maybe 6-8 lines of code...

I was hired because the interviewer said I was the only candidate out of many to begin the example with a comment block describing what the code would do, what it's input/outputs were!

 

Keys to wealth:

Invest for cash flow, not capital gains!

Wealth is attracted, not chased! 

Income is proportional to how many you serve!

Lets go Brandon!

Last Edited: Fri. Nov 19, 2021 - 03:19 PM
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

clawson wrote:
please surround operators with white space.

especially with a line like this:

return (isbit(byte_pointer,bits+11)+(2*isbit(byte_pointer,bits+10))+(4*isbit(byte_pointer,bits+9))+(8*isbit(byte_pointer,bits+8))+(16*isbit(byte_pointer,bits+7))+(32*isbit(byte_pointer,bits+6))+(64*isbit(byte_pointer,bits+5))+(128*isbit(byte_pointer,bits+4))+(256*isbit(byte_pointer,bits+3))+(512*isbit(byte_pointer,bits+2))+(1024*isbit(byte_pointer,bits+1))+(2048*isbit(byte_pointer,bits)));

surprise 

 

Or, better yet, divide that up into some intermediate steps!

Top Tips:

  1. How to properly post source code - see: https://www.avrfreaks.net/comment... - also how to properly include images/pictures
  2. "Garbage" characters on a serial terminal are (almost?) invariably due to wrong baud rate - see: https://learn.sparkfun.com/tutorials/serial-communication
  3. Wrong baud rate is usually due to not running at the speed you thought; check by blinking a LED to see if you get the speed you expected
  4. Difference between a crystal, and a crystal oscillatorhttps://www.avrfreaks.net/comment...
  5. When your question is resolved, mark the solution: https://www.avrfreaks.net/comment...
  6. Beginner's "Getting Started" tips: https://www.avrfreaks.net/comment...
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Thanks guys for all the answers! I hoped you wouldn't catch up to this old example. mp3ext is the first pice of code I wrote that was actually usefull. I also consider it horribly written, I have done there some honestly overcomplicated things like the strings trick, instead of just using vectors.

Last piece of code from me is the polynomial regression one, which presents my current style. Is there a way to make it obvious for headhunters to just look at the latest code instead of the early one? Should I hide it from public until my search is over?

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 1

Go back to your "old" code and tidy it up.    Then you have nothing to be ashamed of.

 

Code Beautifiers require no time or effort.    Choose more "intuitive" names for your identifiers.

Add appropriate comments.    For you and future readers.

 

David.

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Remember also that a "project" usually consists of specification, requirements, documentation and source so when you are first planning a software solution don't be afraid to jot down some notes and either include that as comments in the main .h or as separate docs in a /doc/ directory. Probably an idea to learn "markdown" as that's popular. Also if you know things like Doxygen, CMake, perhaps even Python there all skills that make you more attractive to an employer. Knowing how to use git also helps so the very fact you maintain repos on github already works in your favour. 

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Perhaps at Microchip offices ? I’m just saying It.

www.tokopedia.com/madagang cheap and free worldwide shipping with discount

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

You can take a look here: Mavenir - Careers

I think we've got some jobs around RAN (5G), FPGA's, PCB design and also many more... So you might find some position that suits you.

Anyway for a last year and half I've been in the office for about 6 days total (just because I wanted to :D) - but I'm c++ developer, so I don't have to be there.

Computers don't make errors - What they do they do on purpose.

Last Edited: Fri. Nov 26, 2021 - 10:31 AM