TE
TechEcho
Home24h TopNewestBestAskShowJobs
GitHubTwitter
Home

TechEcho

A tech news platform built with Next.js, providing global tech news and discussions.

GitHubTwitter

Home

HomeNewestBestAskShowJobs

Resources

HackerNews APIOriginal HackerNewsNext.js

© 2025 TechEcho. All rights reserved.

Ask HN: Engineering managers, how do you onboard new hires?

87 pointsby CedricTeytonalmost 2 years ago
What are your best practices for welcoming onboard new developers?

19 comments

avinasshalmost 2 years ago
I work in a small startup (&lt;20 developers) and the following is what I am doing for my team:<p>1. A week before their joining, we ship the laptop<p>2. I&#x27;d have a calendar ready for them, which gives an overview of what they will be doing for the next three months<p>3. First week goes into setting up the tooling on the machine. Someone from the product team gives an overview and entire product walkthrough. Next, they spend some to play with the product as a user. This week also involves the initial orientation session.<p>4. We use Golang heavily, however, the people joining might not know it. The second week goes into doing the tour of Go.<p>5. Third week they spend on onboarding tutorial that shows how to write a small service, generate APIs, build, and deploy it in our infra.<p>6. Fourth week they will spend shipping a really small feature to the production.<p>7. Since day one, they&#x27;d have assigned a buddy who becomes their go-to person. Buddy also explains them about the culture, how things typical done here etc. The buddy also creates a new slack channel just for them, where they can interact.<p>8. They pair with the buddy in the initial weeks, where buddy is the driver.<p>9. First three months, they&#x27;d spend working on a feature along with someone which also involves some good amount of pair programming.
评论 #36034159 未加载
评论 #36040076 未加载
评论 #36031001 未加载
评论 #36030168 未加载
ninkendoalmost 2 years ago
The advice so far in this thread is great, but I&#x27;ll add one thing I did back in my former manager life, which was to have a scheduled time block each week of a few hours for general Q&amp;A.<p>Each week I&#x27;d have them pick a topic or area they want to learn more about, and I&#x27;d go in front of a whiteboard and explain things to them in as much depth as they wanted. We&#x27;d go over the codebase, how it fits in with the rest of the organization, historical reasons why things work they way they do... or even just help getting their dev environment set up, reviewing code, etc.<p>Of course, everything was already pretty well documented and explained in other places, but nothing beats actual 1:1 time to help with any confusion they may have. It helps build confidence because they know that time is a safe space to ask any question, no matter how &quot;dumb&quot;, and that it&#x27;s all for their benefit. It&#x27;s also beneficial for there to be multiple hours of time set aside, so that we could actually dive deep and not just leave things as an exercise for later. I was told this was their favorite part of the early months on the job, because it helped build confidence and skill more than any other single thing.
aantixalmost 2 years ago
One of the hardest parts for onboarding is determining which code is relevant.<p>If you&#x27;re dumping a 300K line codebase in your newly hired engineer&#x27;s lap, you&#x27;re failing them.<p>This is one of the reasons why I developed Call Stacking - it records all of the method calls for a given endpoint (trace).<p>This is the perfect documentation for new hires - because they can look at these traces and get an instant idea of what is happening on the backend.<p><a href="https:&#x2F;&#x2F;callstacking.com&#x2F;" rel="nofollow">https:&#x2F;&#x2F;callstacking.com&#x2F;</a>
评论 #36030797 未加载
评论 #36031670 未加载
Tehnixalmost 2 years ago
We&#x27;re a mix of remote, on-site, and WFH, but it&#x27;s roughly similar for most people:<p>- Before you start we send an onboarding plan: As detailed as we can for the first 7 days (e.g. onboarding call, intro to this or that, pairing up with another Engineer), and much more high-level of expectations after 30 days and after 3 months<p>- Everyone has an &quot;onboarding buddy&quot;: This is an Engineer on their team and makes sure the other Engineer feels like it&#x27;s their responsibility to spend time getting the new Engineer up-to-speed<p>- If you&#x27;re fully remote we try to fly you into our HQ (Copenhagen, Denmark) for the first week. We&#x27;ve had overwhelmingly good feedback on how big of a difference this makes in establishing connections and making people feel a lot more comfortable with the colleagues much earlier on.<p>- We focus on giving you a lot of context initially: The organization, the team and their purpose, meeting up with your manager weekly so they can fill in the gaps continuously, intro to the overall tech infrastructure<p>- We dive into the specifics via work: Finding smaller projects that are well scoped to get you into the various corners of the teams&#x27; domain<p>- We knowledge share a lot via PR Reviews: Onboardees always add two people on the PRs to maximize knowledge sharing over speed initially. After a month or two they go down to just the regular 1 person and they themselves also start reviewing code<p>- From then on: We freestyle, but have a continuous focus on learning. At this point, people are so unique and varied that we adjust on to their learning style, gaps, etc.<p>Everyone in the team is quite communicative. One thing we explicitly focus on is for new people to get comfortable asking in public channels instead of via DMs. This comes naturally to some, but not to others and they need some nudging and you showing off how its safe to do.<p>There&#x27;s many more things we do, but those are some of the important parts of the top of my head :)<p>EDIT: Some context around our environment. We have our own CLI tool to quickly setup a dev environment as well as using GitHub Codespaces as a fallback. There&#x27;s strong coverage of CI for checking everything is good, and things are deployed very often. We try to automate most of our flows, at least as much as we can to keep friction low, but also to minimize &quot;things you need to just know&quot;.
Dachande663almost 2 years ago
We build an LMS, so the first thing we do is get them onboard using it. You only get one first impression, so it&#x27;s normally really good to see and for them to feel the product as a new customer would. Take lots of notes, find the rough edges, things that hurt, and then typically pick one of them as the first week task.<p>Then it&#x27;s getting the environment setup. Using lots of boring software means this is typically two docker-compose up&#x27;s and done.<p>After that is the point you start to see what the candidate&#x27;s really like we&#x27;ve found. Oftentimes they&#x27;ll scan through previous commits, see how things are done. We&#x27;ll set them running, lots of pair programming, for those first few days. An extensive testsuite&#x2F;CD pipeline help here. The ideal is push to prod by the Friday. In an ideal world it&#x27;s earlier, if not first day, but the reality is there&#x27;s normally other business bits such as...<p>Because we&#x27;re remote, we try and schedule a couple hour calls with different folks in different roles. We&#x27;re a small company so it&#x27;s much more about people then processes without falling into folksy management talk.<p>Biggest thing is just letting them get a feel for the codebase, people, practices, trade-offs between speed and correctness etc. Everyone&#x27;s unique.
评论 #36029710 未加载
mcqueenjordanalmost 2 years ago
1. Psychological safety is key. 2. Onboarding buddy. Someone good at explaining the systems and not too oversubscribed. 3. Onboarding plan&#x2F;doc&#x2F;reading list. 4. Constant vigilance to keep your systems simple&#x2F;understandable, and discipline to keep good documentation available internally.
评论 #36039797 未加载
revskillalmost 2 years ago
Most of &quot;procedures&quot; i see is a waste.<p>I would just do a pair programming session to explain all the design patterns being in used. THen let the new hires hack on exisiting&#x2F;new features.<p>The onboarding is a failure if you can&#x27;t help new hires get productivity quickly.
malikeralmost 2 years ago
Onboarding is probably one of the hardest parts of the job. Keeping code quality high and documentation definitely help. One thing I don’t see mentioned in the thread yet is mentorship. I try to spend more time with new hires to help them build a plan for contributing and identify gaps in their knowledge and how to fill them. I also look for opportunities for them to work closely with more experienced devs on the team. Besides having another person to learn from to who isn’t their manager, I find the experienced devs appreciate the chance to share what they know.
AnimalMuppetalmost 2 years ago
Step 0: Don&#x27;t be on vacation the week they start.<p>They will need you. They will need to interact with you to ask questions (even if they have a &quot;dev buddy&quot;, they will still need to ask questions of the manager). They will need to interact with you to have you fix problems. They will need to interact with you just for emotional reassurance. And, even if there is no direct interaction, there are things you need to be doing behind the scenes to make everything work smoothly.<p>So, what I said: Their first week, you need to be there.
jokethrowawayalmost 2 years ago
1 day: - Overview of what they will work on - Give some time to install things and play around 2 day: - Ship your first (small) feature<p>I&#x27;m surprised at seeing how long time to production is. I&#x27;d be concerned if they went 2 weeks without shipping anything.<p>We don&#x27;t do physical onboarding as no-one is close to any of the offices, but physical get-together are huge in boosting team building. We try to do them at least yearly. Churn is way higher without them (= people don&#x27;t care about you unless you drink a beer with them)
BerislavLopacalmost 2 years ago
My favourite tip is to assign them a technical buddy, which should ideally be the last person who joined before them on the same team or related group of teams.
olegpalmost 2 years ago
At Toughbyte, our onboarding process looks like this: on the first working day, the new employee has all the necessary accounts set up and receives a document where we’ve detailed how we see their progress after one week, one month, and three months of work. An onboarding checklist helps the new developer navigate the company knowledge base, understand the technologies we’re using, our code base, and the most common mistakes to avoid.<p>We try to get the new employee to write code from the very first day. They start with simple tasks, such as fixing issues on the frontend, adding tests, and working on the business logic. Such tasks help them get acquainted with the code and lower the risk of breaking something critical.<p>The onboarding guide is also useful for mentors. It describes the learning plan for the new developer, as well as how to better organize the learning process itself.<p>More info here: <a href="https:&#x2F;&#x2F;www.toughbyte.com&#x2F;blog&#x2F;how-we-hire-junior-developers-116" rel="nofollow">https:&#x2F;&#x2F;www.toughbyte.com&#x2F;blog&#x2F;how-we-hire-junior-developers...</a>
amichalalmost 2 years ago
Day 1: laptop, credentials, hr and high level security&#x2F;policy stuff. 2-3hr pair programming session to grab an editor, git checkout of their first assignments repo and to push a tiny edit (small bug or doc fix). This ensures they have the tools and access they need to get started. People report it as a long hard day but its pairing and collab so they meet the real people and real work<p>Goal is to ship a real contribution in week 1 if they know the stack. Week 4 if they don&#x27;t.<p>Company culture, business etc goes in parallel at 2-4hr a week of formal meetings for the first month or so. It used to dominate the first week but was too much context to learn in one week.<p>There is an assigned tech buddy all the time and daily scheduled q&amp;a time from a lead for the first month. 3 months in and they count as a full FTE on the schedule. Before that we expect a good chunk of the day goes to learning and understand that goes for the buddy as well.<p>Edit: of course the learning never stops for any of us but this so far for me has been the quickest way to get to learning together while contributing as you go
eb0laalmost 2 years ago
First day at work: - Onboard with HR - Get the laptop, headphones, etc. - Credentials and VPN should work. - Office access (if needed. I insist all engineers MUST BE ABLE to work from the office... if they want, or the neighbour is making renovations, etc).<p>First week is for meeting colleages (we&#x27;re remote), and get rid of as much mandatory training (legal, safety, compliance etc) you can. I expect some training yet to be done still on week 6.<p>The new hire is invited to agile rituals from day 2, but nothing is expected. Just to get used to the vibe. He&#x2F;She might pick up things as they appear with the help of a buddying engineer. But no more than one task at time.<p>After week 2 he&#x2F;she can start writing... words, not code. Code review is Ok, but might be too much for some people. The point is to make sure s&#x2F;he knows where to ask, where are some things...<p>After week 3 should be allowed to code :-)
cybadgeralmost 2 years ago
A lot of what is in this thread is excellent. I&#x27;m actually working on a fairly detailed HOWTO for creating a custom-fit onboarding program (send me an email and I&#x27;ll send you a draft; I&#x27;ll update here when it&#x27;s ready for public consumption). Here are the key principles:<p>1. Know what you want the employee to do, and equip them to do it. (This covers things like shipping the laptop ahead of time, getting accounts set up, planning tasks for them when they start...)<p>2. Help the new employee feel supported. (Item #1 relates to this, but it&#x27;s also things like welcoming them on their first day, assigning a buddy, giving them a tour of your company &#x2F; application &#x2F; industry, making their initial responsibilities clear...)<p>3. Have a plan for bringing them up to speed. They need to get to know the job itself, the company, the people, and that all takes time. Work sequencing is important in building a product. It&#x27;s even more important when it comes to integrating a person into a complex network of activities and other people.<p>In all those items, the ability to put yourself in the new hire&#x27;s shoes is essential. It&#x27;s easy to forget how much you know about the job, the company, etc., that you end up giving them tasks that feel small, but that are daunting to them. That said, taking time with the new hire regularly over their first couple of weeks and building a good working relationship can help calibrate, and help smooth over any potential issues that come up from being miscalibrated.<p>Also, a couple posts I&#x27;ve written about onboarding might be helpful:<p>- <a href="https:&#x2F;&#x2F;www.cybadger.com&#x2F;2022&#x2F;07&#x2F;02&#x2F;a-tale-of-two-onboardings&#x2F;" rel="nofollow">https:&#x2F;&#x2F;www.cybadger.com&#x2F;2022&#x2F;07&#x2F;02&#x2F;a-tale-of-two-onboarding...</a> is a reflection on two onboarding experiences I&#x27;ve personally had<p>- <a href="https:&#x2F;&#x2F;www.cybadger.com&#x2F;2022&#x2F;10&#x2F;11&#x2F;onboarding-gis-technicians-beyond-remote-software-jobs&#x2F;" rel="nofollow">https:&#x2F;&#x2F;www.cybadger.com&#x2F;2022&#x2F;10&#x2F;11&#x2F;onboarding-gis-technicia...</a> is creating a better onboarding experience for a non-developer role, but the principles are the same.
评论 #36189174 未加载
samelawrencealmost 2 years ago
I manage a team of SDETs, and I&#x27;ve written a formal 90-day onboarding plan with 12 weekly sections that include checklists at the end of each week. We store this in Notion, so for a new hire, I just clone the entire page, hand it off to them as their own instance, and let them treat it as a worksheet.<p>Obviously, we also meet for 1:1s and do lots of hand-holding for new hires, but having that template really helps make our onboarding more brainless (for us, not the hire) and seamless (for both parties).
tarrudaalmost 2 years ago
Not an engineering manager, but if I was, I would consider investing some time fine tuning GPT-3 (using OpenAI API) on the company&#x27;s codebase, documentation and processes. Then create a Chatbot which can answer almost any question new hires might have.
评论 #36031139 未加载
评论 #36031226 未加载
lbrineralmost 2 years ago
It&#x27;s a bit tricky for me. Suggestions like &quot;fly them to the office&quot; is great if you have lots of people in an office, we don&#x27;t. I also don&#x27;t agree with &quot;give them the power to fix things&quot; since one person&#x27;s broken is another&#x27;s &quot;don&#x27;t waste time fixing that, it&#x27;s flaky&quot;.<p>I think it depends a lot on the person you hired and at what level. I can trust an experienced Dev more to know how to look at the more important parts of the system whereas someone with less experience won&#x27;t necessarily know this and we don&#x27;t want their first week being keen but everyone else hating them for breaking stuff!<p>Definitely agree with the Dev buddy and I think the pair-programming thing is probably the best way for them to learn quickly and for both them and us to get feedback e.g. are they not the right person for our culture? Are they too strongly opinionated etc.
retrocryptidalmost 2 years ago
I think this is a special case of what the OP was asking, but if you&#x27;re a really big company, this is one way to do it.<p>Way back in the 90s I worked supporting IBM AIX compilers. IBM had an interesting technique for onboarding engineers that started with them being interns. If they liked you, they would hire you as an intern for the summer after your first year and plonk you down in the call center. Part of my job was training &#x2F; orienting the young kids who were the first line of support for compiler issues. We spent a week with cultural indoctrination (the right answer is ALWAYS better than a fast answer) and basic training (AIX, vi, how your phone works, how the issue tracking system works, etc.) Compiler support interns got another week where I showed them how I put together test cases to find corner cases. I also trained the networking tools interns and showed them how to use tcpdump &amp; perl (this was before ethereal.)<p>But the key here is they spent three months learning about AIX, TCP&#x2F;IP and&#x2F;or C&#x2F;C++, FORTRAN and COBOL compilers.<p>In year two they could return to the support trenches if they really liked it, but we encouraged them to take a role in the QA department. There was a similar deal there... a week of indoctrination (a correct answer is PROBABLY better than a fast answer) and training (intro to <i>shudder</i> PROFS, IBM&#x27;s tool for doing everything, custom QA tools people had built, etc.) We also gave them a bunch of example tests to improve &#x2F; modify.<p>So after summer number two, they were trained up on what AIX + Compilers did and a little bit about the internals of several products; advanced interns got to look into the executive... er... kernel.<p>Summer #3, if they came back, they got do do a few coding tasks as junior developers. This is back before the web when we did <i>REAL</i> software: text editors that directly opened &#x2F;dev&#x2F;kmem and read&#x2F;wrote data structures to various kernel queues (system calls? never heard of them), used IOCTLs to write data-structures into the networking subsystem that were only documented on bar napkins, and ksh scripts that emitted LISP compilers written in ksh that compiled to ksh scripts, etc.<p>In summer #3 they were given the secret manual that told them a FAST answer is many times better than a CORRECT answer, but don&#x27;t be afraid to tell other people when you learn the fast answer you gave them was not entirely correct. Also, be aware other people are going to be updating their answers to you.<p>So... IBM tried to get their hooks in young developers early. Started with a summer where they learned what the product did, then a summer where they looked at how the sausage was made and then a summer doing basic coding tasks (almost exclusively in C, sometimes C++.) This was back when IBM had a LOT of job openings, so if they evaluated well in their internship, they would be given a job offer just before graduation, and there were PLENTY of jobs for them to choose from.<p>Usually their first three months was quite structured, but mostly focused on how to use various internal IBM tools.<p>So to recap... if you&#x27;re a REALLY BIG COMPANY... onboarding begins before you hire people. It starts by engaging candidates early so they get an idea for what your company is like and what typical tasks look like.<p>IBM &quot;invested&quot; 9 months of intern pay (which was pretty good for interns in the 90s) to indoctrinate and evaluate potential long-term employees. Its unlikely any business would do that today, but I think there are some good lessons here for every company:<p>a. It&#x27;s a good idea that your engineers know what your product is supposed to do. You might want to give them a little time with the manuals (oh. I&#x27;m sorry. I forgot, your code is self documenting so we don&#x27;t do documentation anymore.) or your test code so they at least know how the API is supposed to be called. (related: if you can&#x27;t explain what your product does to an engineer, in a way that an engineer can understand, you have problems.)<p>b. It&#x27;s at least as important to immerse the new-hire in work culture as it is for the new-hire to demonstrate their technical chops. (if, as you&#x27;re explaining your culture to a new hire, you use the word &quot;meritocracy&quot; or &quot;wholistic,&quot; you probably have problems. consider reading anything by Isaiah Berlin.)<p>c. Nowhere in this comment did I say IBM ever listened to anything the interns said. Don&#x27;t do this. Schedule a meeting about 3 weeks out and go over the new-hire&#x27;s questions &#x2F; concerns about process &#x2F; culture. Make sure you tell them you&#x27;re going to do this so they can be prepared. (You should do this at least every quarter (I mean a 1-on-1 where you talk about process) but the OP asked specifically about onboarding...)<p>d. Your on-boarding process may be different for junior engineers as experienced engineers. IBM invested time&#x2F;money to teach kids &quot;the IBM Way&quot; so they wouldn&#x27;t have to un-train them later. Experienced engineers always need to be &quot;un-trained&quot; to a certain degree, but you&#x27;ll need to have a good idea for what you want to un-train them on. So for experienced engineers, include a week or two in there where you slowly explain: 1. there&#x27;s a reason we have at least one branch that can be deployed, that&#x27;s part of why we do testing, 2. pair-programming is actually useful, but it&#x27;s hard to explain when you should do it, you just have to learn it along with your team, 3. no. software developers write tests and documentation. 4. it&#x27;s okay to use expletives in the office as long as you&#x27;re cursing at JIRA or Confluence. 5. Markdown is a pox upon humanity, but it&#x27;s a useful pox upon humanity so revel in the sickness until something better comes along. 6. no. we won&#x27;t start using TLA+ until AFTER the whole team understands point-free and functional styles. 7. no. there are good reasons you can&#x27;t use co-pilot. 8. ask questions. but the person you need to talk to might be in the middle of something else so you may have to wait a bit. have a backup task handy. 9. (related to 8) - asking questions about why things were implemented a particular way is not admitting defeat as a senior engineer.<p>Okay... now I&#x27;m ranting...