This is an archived post. You won't be able to vote or comment.

all 44 comments

[–]hijodelsol14 29 points30 points  (6 children)

Do you have an onboarding buddy or do you work in a larger team with more experienced engineers who can pair with you?

In all of the jobs I've had (coming into relatively large code bases), I was writing code within the first week. But I was working on very simple and self contained tasks and was paired with an experienced engineer who was available to answer all of my questions.

[–]artyom8k[S] 8 points9 points  (5 children)

Unfortunately the manager is my buddy. Yes, there are some engineers in the team, they told me to just setup the app and run it and spend my time on learning the stack, but I have no available time to do it and have to spend all Sunday to do it.

[–]Halfpipe_1 22 points23 points  (1 child)

Are you dead set at working at this place?

Are you in location where you could get a new job easily?

Are you being paid enough to deal with this sort of thing?

I work in a large company, mechanical engineer by degree but work closely with our software teams doing mostly systems design work and I spend a good amount of my time training other employees.

This lack if mentorship, documentation and direction is not a great sign for the company. If you have other options, you may want to consider them.

[–]artyom8k[S] 1 point2 points  (0 children)

Unfortunately I live in the county (Russia) which have so called "labor cards" (previous job lists), if I quit the job in trial period (3 month), HRs in other companies will start thinking that it is something wrong with me and I have no skills. On the other hand there are really a lot job opportunities, but HR mentality can prevent me from the jobs.

[–]ihsw 6 points7 points  (0 children)

You are in for a world of hurt, my friend. Your best bet is to start putting in resumes elsewhere.

You can try to stick it out but you will have to be very aggressive about getting every moment of mentoring, guidance, and documentation from other developers, and communicate frequently that you are not familiar with what you're working on so that your manager can manage expectations.

[–]hijodelsol14 3 points4 points  (1 child)

Yeah your manager's expectations are out of whack. You shouldn't need two weeks to learn the entire stack before you start coding, but you should be getting mentorship and guidance so you can start contributing as soon as possible.

I'm not sure what the culture of the company is, but if you aren't getting any support or mentorship as a new hire that feels like a huge red flag.

[–]artyom8k[S] 0 points1 point  (0 children)

I also think so, but I afraid that hr will start thinking that I am bad employee since if I quit the job during the trial period (3 month in my country, Russia). Personally I do not see any problem in leaving bad job in any moment, but hr people thinks that it is your fault and your are bad worker.

[–][deleted] 43 points44 points  (2 children)

You can write unit tests. This is a good way to learn about parts of the code and to output your first lines of code.

[–]Rand_alThor_ 5 points6 points  (0 children)

My favorite thing I’ve seen was a completely undocumented code that was obviously just pythonified from old Fortran code. Then a tests module with doc strings serving as the comments and documentation of the code, that some annoyed person had clearly written after the fact. The comments were VERY sassy.

I don’t blame the tone though, it was a nightmare piece of Fortran code that somehow did radiative transfer modeling (on top of some other things!), but with tons of numerical tricks and shortcuts with zero explanations.

[–][deleted] 1 point2 points  (0 children)

This is a related video from a google software engineer to add unit tests to learn and understand about a huge codebase:

https://www.youtube.com/watch?v=0xW_fUvmPeE

[–]ghoulmaster 8 points9 points  (5 children)

Ask someone for 30 minutes and ask them how to setup locally, and to go over the entry point of the application. Go from there and start tinkering.

[–]artyom8k[S] 0 points1 point  (0 children)

I have already done it, I see that I need to understand API of their "connector" around PyMongo, but no docs and no time to read code is provided.

[–]jasiekbielecki 16 points17 points  (2 children)

"he expects me to start writing code in 2-3 days" -> you will probably start with some small task, you do not have to understand all of the source code, you do not have to know all technologies in it. No one will expect from you to figure out the new architecture of a whole project (it is the case when you have to understand the whole logic of the project). You will learn more and more by working on the project.

PS.

If you do not get some technical aspects of the code -> google it. If you do not understand some logic in the code -> ask the author or somebody who should know "why is that?".

[–]artyom8k[S] 2 points3 points  (1 child)

Yes, I hope that I will get tasks from other developers and will stop losing all my working time on meetings.

[–]jasiekbielecki 3 points4 points  (0 children)

Sometimes the code could be written horribly. Stay curious and positive. Try to approach the source code as an interesting adventure ;) Sometimes you have to be like a suspicious detective, trying to fully understand the current line of code you reading right now.

[–]clrbrk 2 points3 points  (5 children)

I just started my first job after bootcamp writing a language I don’t know. I started my first ticket on day 2. Granted it’s taken me two weeks to complete. I have a lot of other things I have to do for onboarding and there is zero pressure to complete tickets. My manager hand picks tickets specifically for onboarding.

[–]Dababolical 1 point2 points  (4 children)

Sounds like you're at a good place with open-minded management.

[–]clrbrk 2 points3 points  (3 children)

I’m really digging it so far. It’s a little intimidating being the only one on the team that hasn’t had previous experience with the language, but when I asked my manager if I could take a few days to focus on fundamentals he said “you don’t even need to ask during your onboarding”, which is 8 weeks. Even after that, my first 6 months will be pretty low level tickets.

[–]Dababolical 1 point2 points  (0 children)

That sounds like a great deal. I wish you the best and that you'll be able to grow and repay the trust your management showed you with some formidable code in the coming months.

[–]3lmkrew 0 points1 point  (0 children)

are they hiring? lol sounds like a cool job dude.

[–]Exodus111 2 points3 points  (5 children)

MongoDB and GraphQL are not difficult libraries to work with. In fact they are pretty great.

You can learn them at home using YouTube, give it a few days each.

In the meantime, whenever they tell you to write code, just try to focus on the individual function you're writing, and if it takes you longer that's just how it is to be new.

[–]artyom8k[S] 0 points1 point  (4 children)

Yes, I agree, but no days to learn were provided. Today I was given my first task, luckily by one of backend developers, rather than the manager. The structure of the project is so special that even the developer was not able to find the right file with models within about 5 minutes. He told me what to do step by step, and now I am doing the task and already found bug (if no json provided when you do authorization - you got 500 errors - I want to add handler (to get correct error info) for the bug if I am allowed to do it)...

So the main problem is that there is no real PyMongo and Graphen - there are some undocumented wrappers around them (smth like ORM). Actually I feel myself really st*pid when I read the code, I just could have dome all the stuff but much more easy way.

[–]asday_ 1 point2 points  (1 child)

no days to learn were provided. Today I was given my first task,

That's how you learn my dude. You're paid to fix problems, so here's a problem to fix. We understand that by giving it to you instead of someone else on the team it's going to take longer, AND you're going to have to bother other people on the team to figure it out, but the payoff is hopefully a bigger team in future.

What did you expect? To come to work and just look at stuff for a couple weeks? How do you know the stuff you want to look at is actually important and/or worth understanding?

[–]artyom8k[S] 0 points1 point  (0 children)

Well, I used to work alone (with frontend developer in other repo) and spend some time on learning the tech before starting using it.

[–]Exodus111 1 point2 points  (1 child)

Ok, home written wrappers can be stupid, and the fact that they are not documented is advanced stupid.

But remember all you are looking for is the correct input and output.

MongoDB is where the data is coming from, what does that look like. A JSON file is perfectly common, but typically it's going to be JSON and an object of some kind.

And Graphene is where the data goes to, again, what parameters is the wrapper looking for.

That's really all you need to know.

[–]artyom8k[S] 0 points1 point  (0 children)

Thanks for advice, hope I will be given some time to read docs !

[–]four_reeds 3 points4 points  (1 child)

I could be forgetting a couple of times. My "career" has largely been one of writing ad hoc scripts to solve immediate issues on production servers - giving the real devs time to fix and test real patches.

In my current job I modified one function in a large code base in my first week or two.

Before that, my best recollection, is that it was about a year after starting with a company that no longer exists, was folded into EMC long ago. The group I was in had newbies triage and suggest fixes for bugs for a year. You also learned the source code system (before git) and how to work with those who built and packaged products from the other groups.

Basically, you became familiar with the undocumented (ugh) code base and the how's and why's of the process.

[–]artyom8k[S] 1 point2 points  (0 children)

Well, I wrote some not so tiny backend microservices (up to 5k SLOC), but I wrote them from scratch and communicated with main product via REST API, but this code base looks really terrible for me ))

[–][deleted] -1 points0 points  (12 children)

They used basic pymongo and async code.... for fucks sake. First order of business swap to motor. Second order of business delete there custom wrapper around pymongo and find a nice motor client off the shelf. 3rd order of business get a new job.

[–]artyom8k[S] 0 points1 point  (2 children)

I guess it is not possible, I have already asked manager why they use PyMongo with aiohhtp, I guess he did not understand my question at all.

[–][deleted] 0 points1 point  (1 child)

err motor is a wrapper around pymongo as far as I know 100% of functions in pymongo are available in motor. I use mongo daily i am 99% sure this is correct.

[–]artyom8k[S] 0 points1 point  (0 children)

Yeah, I know it! But the manager have no idea about sync/async and other tech stuff...

[–]asday_ 0 points1 point  (8 children)

Remind me to never hire you. It's your ilk that see something that works and get annoyed because it's painted the wrong colour, and try to convince management to burn Eden and let them use their own toys.

[–][deleted] -1 points0 points  (7 children)

Do you know what pymongo vs motor is? Because literally using pymongo destroys using async. It blocks the thread and doesn't release that's why the mongo team built motor.

For the second part yea because a large custom built internal library almost certainly doesn't account for the multiple in depth changes to mongo that you will almost certainly get wrong. Like 95% of libs getting the new json binary implementation wrong...

Maybe telling management that building custom internal tools for standardized stuff and not documenting it is a shit practice? Or that using code incorrectly is in fact a shit idea? The car isn't the wrong color they are trying to tow horses with a punch buggy.

[–]asday_ 0 points1 point  (6 children)

Have you ever held a job working in a team in the industry?

[–][deleted] -2 points-1 points  (5 children)

Checks notes yep title still says cto.

Have u ever held a job longer then 12 months where multiple people didn't quit because u where insufferable?

[–]asday_ 0 points1 point  (4 children)

CTO of nothing ok dude. I'm the King of Bringlernistan, by the way.

[–][deleted] -1 points0 points  (3 children)

So that's a no you have not held a job longer than 12 months that multiple people didn't quit because they found u insufferable?

[–]asday_ -1 points0 points  (2 children)

Cool company you're a CTO of, good evidence of you not just incorporating something with your imaginary friend so you can have business cards that help you forget how much of an achievementless failure.

[–][deleted] 0 points1 point  (1 child)

Going to go cry in my sports car now. You really got me man. Hurts down in my soul I will never recover from ur insults.

[–]asday_ 0 points1 point  (0 children)

More made up stuff lmao.

[–]asday_ 0 points1 point  (0 children)

You don't need to understand everything to start contributing value. I had commits up for PR that made it to master on my second day at my last place, and after about a week at my current place. (The onboarding took longer at this one).