Ask Experienced Devs Weekly Thread: A weekly thread for inexperienced developers to ask experienced ones
Posted by AutoModerator@reddit | ExperiencedDevs | View on Reddit | 102 comments
A thread for Developers and IT folks with less experience to ask more experienced souls questions about the industry.
Please keep top level comments limited to Inexperienced Devs. Most rules do not apply, but keep it civil. Being a jerk will not be tolerated.
Inexperienced Devs should refrain from answering other Inexperienced Devs' questions.
thirtyist@reddit
Job Hunt Question:
I'm currently employed as a junior dev at a small healthcare company and have about 1.5 years of experience under my belt. I'm a career-changer, so a bit on the older side. The company is sort of circling the drain (desperately trying to crawl out of the current mess they're in though, so I don't know what's going to happen) so I've been casually looking around for other jobs.
Last week I saw a listing from a connection on LinkedIn that's for a coding-adjacent support position. No coding involved, just supporting other engineers. I quickly got an interview request (!) and the interview is today.
I guess my question is...if I receive an offer and it's decent (it's a bit of a pay cut but with free health insurance so IDK how it would even out)...do I take the job and purposely get out of coding? I like software development and do want to continue it in the future. Would I even be able to hop back into it if I have a coding gap in my resume and not even 2 years of experience? I'm hoping to continue coding in some way -- perhaps contributing to open source or working on personal/learning projects since I know I have a lot of gaps in my knowledge -- but I also know that life is currently very busy for me and I might not get around to doing any of that, no matter how high my aspirations are.
Anyway, it's a bit of a brain dump, but I'd love to hear anyone's thoughts on the matter.
Gloomy_Freedom_5481@reddit
How to become a better problem solver? Can one hone out a more general software engineer type of problem solving skills by doing leetcode for example? or solving sudoku? playing chess? if not, then is there any way of actively working on that? Other than just solving real software engineering problems at work.
SagansCandle@reddit
This is a great question.
Software development really is the best way to learn problem solving. Focus on getting better at solving software problems. Learn to use your debugger - it's surprising how many people rely on traces and guessing. Most importantly, don't stop when you solve a problem: always ask yourself these questions:
In my previous lead role, I defined the company process for bug fixes. The highest priority when a bug was encountered was to restore whatever functionality was broken, hack or otherwise. This is common approach to fixing bugs, and a huge source of technical debt because once the bug is solved the issue describing the bug is closed. The bug is not fixed until you understand why the bug occurred in the first place and you've taken steps to keep that bug, or new ones like it, from happening again.
So TLDR: Learn and use your debugging tools, find the root cause of problems, and ensure that you understand how the problem can be prevented in the future. That will build your problem solving skills.
LogicRaven_@reddit
Leetcode is an interview tool. I question the correlation between leetcode and problem solving skills during daily work, but many companies believe in it.
If you want to get better in solving real world engineering problems, then you need to practice solving them. At work is the best because you spend 8 hours a day there. Working together with more experienced engineers, being involved in design discussions can speed up the learning.
If you have appetite for more, then do a side project in your free time, solo or join forces with folks of similar interests.
blisse@reddit
There's no cheating in life. If you do leetcode then you'll only learn how to solve leetcode problems. Go read software engineering books, watch good software engineering talks, and find ways to persevere through problems you've never solved before.
InterpretiveTrail@reddit
I think you can brute force problem solving by solving problems, yes.
But what are you trying to solve? To narrow the scope a little bit to software engineering in general, I've found investments in being a better communicator (written or verbal), learning to be more humble (i.e., don't be an asshole), and becoming a more effective teacher ( "We are uncovering better ways of developing software by [...]helping others do it." \~ Agile Manifesto) to be worth far more than becoming a better programmer. There's certainly a threshold to reach of becoming good enough ...
Let's segue into narrowing the scope to that ... how do you better solve programming problems. I like the one two punch of: Design Patterns and Testing. Design Patterns are extremely powerful when you're building something for the enterprise ... albeit, sometimes they're taking a sledgehammer to a problem. But learning about them and abstracting yourself away from objects and more into the Design of an Application is a place not too many engineers venture, IMO ( https://en.wikipedia.org/wiki/Software_design_pattern#Examples ).
As for testing ... to effectivley test something it's not just about getting code coverage up ... rather it's more abstract "cousin" of business-objective coverage up. That's much trickier to achieve, especially in a enterprise setting. However that's what really matters. Because in a way what's the point of writing tests? It's for Risk Management. To catch an issue earlier in the development process, hopefully. But to effectivley test something, you need to know what it's trying to achieve and hopefully you designed the code to be able to be tested.
Hopefully something there gave you something to chew on. Regardless, best of luck!
NoAdvice7618@reddit
I am trying to improve my data architecture and data platform engineering skills. Some of the system design videos and newsletters I've reviewed only touch on this topic at a very high level and focus more on the application design aspect.
Do you know of any courses, books, videos, blogs, or newsletters that focus more on data architecture and engineering covering streaming and batch? I am currently going through DDIA which definitely falls into this category.
Any help is much appreciated. Thanks in advance!
doom_man44@reddit
I've been asking everyone I know but I feel so alone since I live in an area where software and technology is basically absent (Upstate New York south of Rochester/Buffalo) and while I value everyone's opinions, need freelance developers with experience to help me out here.
I went to a town board meeting in my area and after waiting 2 hours, I offered my freelance software & website development services. I created a preliminary proposal document that outlined the different kind of ideas and projects I would be capable of developing for the town, since I'm entering the proposal blindly (not sure what they want, if anything at all). Some examples below.
After the proposal I believe I gave a good first impression (some members of the board knew me and my family and know I was a top student and good person - not to blow my ego here). They expressed interest and would love to have better technology. We are talking about older folks who are technically incompetent, running Windows 7, using a free cloud storage service that runs full 24/7, USBs everywhere, paper documents everywhere, individual emails instead of board position emails... just a mess, and anyone with experience with something like this knows what I'm talking about.
They asked me what my rates were and I said "I'm working on it" during the meeting and couldn't give a number. I did say I'd probably be working 10-20 hours a week on whatever project they decided they needed. But that is the problem after thinking about it for a few days now.
I'm not sure what to charge if me and them don't know what to buy. I think I'd charge less if they needed a simple .gov registration and hosting, and more for a full suite of features and new website, but I'm not sure on the numbers, given the fact this would be my first client (a low budget municipality), and the range of work I'm capable of doing is quite large.
I am only 22 (and just graduated school last year) but I have been having issues finding a job even as I apply basically anywhere in the world (obviously targeting nearby cities). I started a freelance company because I know I am a competent software engineer from my time at college and the fact I've been coding since I was 11. I'm confident I can rapidly develop almost anything I can think of given enough time for design and needs requirements drafting.
West_Coffee_4463@reddit
I need some advice on figuring out how to further my skillset 4yoe as full stack development but have a stronger preference towards backend development and cloud serverless development. I feel stuck in this highly vendor locked and high abstraction land of web development.
Anyone have resources or advice to further my skills in low level development such as C, C++ and Assembly.
casualPlayerThink@reddit
You can go for some cert at the given cloud provider (even if you are locked, you still can learn things, and many-many solutions pretty much interchangeable between the big ones).
For c++ one if not the best book is the Tour of C++ (don't forget to select the actual version of book for the version of c++ that you working with!)
LogicRaven_@reddit
Are you trying to mobe towards embedded developer, backend developer or else?
West_Coffee_4463@reddit
Hmm, embedded programming has peaked my interest as of late.
ivan0x32@reddit
What are must-read books/materials for a Staff Engineer/Software Architect (but not a security-one) on the subjects of Security in real-world systems?
Also same thing but for Project Management perhaps? I'm basically looking to learn SSDLC, currently going through materials here: https://its.ny.gov/secure-system-development-life-cycle-standard
I'm basically looking for Philosophy of Software Design and Patterns of Enterprise Applications Architecture but for Security. And also incidentally something on Project Management.
casualPlayerThink@reddit
Classic books that points out most of the time the weakest element of the security is the human. Example: "The Art of Deception" from Kevin Mitnick.
Might be interesting to check from the other side, via some pen-test & grayhat books also, because they often highlighting issues and how the attacker might think.
Tomatoies@reddit
Why is working at an early startup usually considered more daunting to junior devs even though it is a small beast to conquer?
LogicRaven_@reddit
Because startups are often chaotic.
They don't have enough money to hire senior people. So they sometimes hire below the experience level needed for that role and let people figure out things as they go.
People do their best, but they make junior mistakes that can lead to instability, difficult debugging and maintenance. Low level of monitoring and alerting can make firefighting more difficult and more frequent, and sometimes outside of business hours.
Fluctuation of people can be high. So as a junior dev, you might need to work on something that was ducttapped together by 5 other juniors before you. Pressure to deliver quickly is high.
Bulbasaur2015@reddit
what are some top reasons you know of why devs lose interest in owning a project or ownership isnt as great as before? i think usually 1) family issues / external issues 2) too much work 3) topic is not interesting
bnasdfjlkwe@reddit
Risk vs Reward. Whether we like it or not, every project has some level of risk and some level of "reward" for completing it. Some projects are just high risk with little reward.
Dread: sometimes you get projects and have to work with people or vendors that are a pain to work with, or have to work with a system or code that is a known pain.
same with what you said, burn out.
LogicRaven_@reddit
Have you asked them about the reasons?
I would say #1 is changes in the environment, often induced by management. Layoffs, reorgs, increasing bureaucracy, unclear promotion criteria, bad hires, lavk of support for skill growth, bad business outlook, etc.
CowboyBoats@reddit
Lose interest? This is my profession. I don't drive projects because they're of interest to me...
The_M0nk@reddit
I got a year and almost 6 months working at a fortune 500 as a software engineer and I want to work for FANG. My company is a bit on the slower side and I thought about learning system design and make an application that is hosted on the cloud and designed for scale with micro services. I also want to get some cloud certifications like AZ-204 and AZ900. I only made some web pages and api's at my current job and I was wondering if my project is a good idea. I've only worked on monolithic architectures but I'm scared that a side project won't really amount to much.
casualPlayerThink@reddit
Getting certificats is always good, try to make your current company pay for it. You can be open with your team/manager about learning, like you are interested in DevOps or learning of Microservices (and be punished for eternity for it :) ).
A side project might be valueless or might be golden, depend on the job descriptions. If it's give you similar keywords and value as the JD, then it will help, other than that, it might be just straight ignored.
FAANG companies usually uses a few rounds of machine led interviews, challenges, tests, tasks, etc. Expect 5+ rounds of interview, and crazy ones too (like at AWS for SRE there is a white board coding on-site event, where you standing near a table for like 2 hours and code there algorithms on a whiteboard. (Yepp, people from far-east will excel in this since they memorize these tests).
You can try every year once their hiring process, but after a step they just will reject you. Most of them has hiring freeze as far as I know, so expect slower response time and less job articles in general.
Tailor your resume, maybe ask the r/EngineeringResumes subreddit for help and opinion.
The_M0nk@reddit
Well I had been focusing on Microsoft due to it still being remote friendly. Currently a lot of what I do is pretty simple but I realized that this project can give me exposure to lots of new tools and system designs that I don't have any experience in. I know right now the market is really rough but I just don't see a current future with my current company.
I do appreciate the advice.
casualPlayerThink@reddit
I have a very practical advice. Update your resume, and start adding things that give you "power" in your CV. It helps you self-reflect and think about the company, what value it gives you in your career (other than money).
Yeah, the market is crazy, very hard to find good job.
One note: do not bet on that, an MS as workplace is remote friendly. Many state it, most of the job description will have it, but in reality, it is ultra-rare, rather than you can have a few home office day per month! (not weekly!). Every time when you will have an interview, ask about remote. Many company provide it, but after just X+1 months of work or as benefit if some kind of measured goal reached....
Two note: all the large company will be able to present huge amount of different tools. Good question is that, you will have the opportunity to work with any that is another part of the deal usually.
CelebrationMinimum50@reddit
How do I negotiate salary on an offer?
So I’ve recently been interviewing for a company which I really like the environment of and it’s in a lcol area. Right now I live in a medium to high cost of living area making about 120k a year in a horrible work environment. On top of that I recently got pipped, so I have lots of motivation to leave and go elsewhere. The problem is this company sent me an offer for 75k a year, this is significantly lower than what I make now even adjusting for cost of living, (the medium salary in this area is 95-100k for someone of my experience).
Now I would really like to work at this company, so how should I go about negotiating for a more reasonable salary in the range of 90-100k?
I have 2 YOE
casualPlayerThink@reddit
What is "lcol area" and "pipped" means? (for non-US ppl)
You can simply say as-is to them: you would like to work there, but the salary is too low, you have this or that number for minimum to maintain your life and family. Most of the company is very understanding and might just give you better opportunity or give you the straight answer as they can not or will not give you that salary.
Also, the real question: your mental health. How long can you survive on a lower wage to not burn out? How desperate are you to leave that horrible place?
LogicRaven_@reddit
Lcol = low cost of living Pipped = put on a performance improvement plan, OP has a high risk of being fired on performance reasons
casualPlayerThink@reddit
Thank you!
LogicRaven_@reddit
What leverage do you have in the negotiation - for example how well you did in the interview, how much they need you, etc.
You can ask in a polite and factual tone. Show the value you bring them. Always keep the door open for discussions.
bnasdfjlkwe@reddit
what's the best way to work with a "selfish" colleague. In this case, we share the same report. We are developers.
The long story short is that this person is , for better or worse, very ownership driven. however, that's only the case if they own something.
What happens is usually
1) You have a task and need the person for something, for example, push review. the person takes an abnormally long time to respond
2) You have a task and need the person for something. for example, quick insight on a small specific behavior they coded in an overall larger ticket. The person "hijacks" the ticket after.
usually i try the "thanks blah blah I can take it from here, I'll let you know if you need anything else" but curious on how others would react in this case.
Missing_Back@reddit
Tips for a productive one monitor setup?
I have 3 monitors at work and it's nice enough, but at home when remoting in I only have 1. It causes a bit of mental friction because I obviously can't view everything at once. Does anyone have any tips for tools/techniques/etc. to have a more streamlined one monitor setup for work?
LogicRaven_@reddit
Do you have specific reasons for not buying more monitors to your home setup?
Missing_Back@reddit
Last time I used multiple monitors for my remote work the RDP software really didn’t seem to play nice with a second monitor
InterpretiveTrail@reddit
When it comes to workflow in general ... be intentional on what you're doing with your tools. Once you realize what you need and where you need it you can see how adjustments can make things better or worse. Rinse and repeat. In other words it's the Scientific method in a way.
For myself, I do all my development in one monitor, but I'm helplessly addicted to virtual desktops to switch between. That way the short cut commands between virtual desktops mean things. Oh I need docs, Desktop 5. I need code, Desktop 3. CLI, 4. etc.
However that's changed between what my day job required of me. My "flow" was different when I was a Feature Developer using Golang vs. a Platform Engineering neck deep in Public Cloud and k8s stuffs. What didn't change, and repeating myself (sorry), was the attempt to be intentional about having regular places to find the tool that I needed at the moment that I needed it.
But I'm also the type of person to: Not have 100s of tabs open at once, keep their inbox to a reasonable number of emails if not completely clean, automate small workstation chores with scripts (applescript is mighty powerful yo!), etc.
Regardless if that helps you any, best of luck figuring out your groove
IHateMyJobAndAmMiser@reddit
I tried to post this as a post but it got blocked due to this being a new account. I don't really post on Reddit so have never had an account.
Hi all,
Bit of a ranty post but I'm interested hear if anyone else is or has been in a similar situation. So, I graduated with a SWE degree 3 years ago and having done fairly well at uni had quite a few job offers. Through my university I was allocated a mentor that gave me the advice that all dev work in my home country (Australia) was going to be offshored to places like Vietnam in 5 years and that I should go into a "DevOps type of role." He seemed like a pretty smart and successful dude so I took his word for it and decided to turn down the other offers I'd received and accepted a role for way less money than the other ones I was up for because it was a DevOps and Automation role.
As it turns out, this DevOps and automation role was an automation tester role at a churn and burn shit kicker testing consultancy that being a naive young guy I didn't realise existed. Their model is to essentially grab people fresh out of uni/off the boat drip feed them salary increases every 6 months and massively underpay them. It wasn't too bad since it was during covid, I did realistically less than 3 hours a day of work and my coworkers were solid dudes.
I stayed there for just over a year before a recruiter approached me about a role and laughed when I told him my current salary. Anyways long story short I jumped ship to a scale up where again I got to work remote with cool people for roughly double my salary. The company and my team were great, every dev team had 1 or 2 testers, and my workload was pretty reasonable. Their test team and test infra was pretty mismanaged as their test lead and 1 of 2 senior testers left about 3 months after I started. Since I saw it was a problem I filled the gap and cleaned up a lot of the infra and my team's area of the automation. Got our automation doing some cool stuff where we're interracting with the kubernetes clusters etc and worked on some of our internal tools.
All in all I was pretty happy there but bored since testing was essentially a solved problem for my team and I went back to the 2-3 hours a day of work because that was all there was to do really. I expressed interest in moving to a dev role at the company and while they were quite interested in me doing that, it just never really amounted to anything. I did a few dev tickets a sprint, but nothing really changed.
I sort of got it in my head that I should probably either leave for a dev job or a test lead role. I was only about 2 years out of university at this time and I was finding it very hard to get my foot in the door for dev roles since there is some stigma around testers moving to developer roles unfortunately (though totally deserved based on the overall quality of test code I have seen). Generally I do really well in interviews, but I was literally not getting looked at because I was pretty new to the workforce and asking maybe for too much money. The market had also cooled down massively in the year since I started there.
Well, I ended up having a recruiter approach me for a senior tester role and after about 18 months of no salary or career growth, outside of the stuff I was inventing for myself to do at my current workplace and the learning I was doing in my free time, I thought fuck it, growth is growth I'll go sit an interview. The company were so impressed with me that they ended up offering me a test lead role. While this was work from office and only really a meagre salary bump relative to what I was on working from home all the time, I decided the career growth was worth it.
Well anyways It's about 6 months later and I am pretty miserable. The company are way more old school than anywhere else I've worked, with a seperate development and testing team (think waterfall). Their dev team are terribly run and their code quality is attrocious. One of their more senior developers didn't know what a git rebase was and I'm regularly mortified when I have to go into their codebase to figure things out.
On the bright side, my testing team are all really happy because I am "teaching them to code" while we're building an automation suite. This is easily the most fulfilling part of my job and I'm really happy with their progress.
I also get on really well with management and after discovering I am a pretty good dev, they have given me the opportunity to build and lead little proof of concept projects where I get to be hands on designing and building stuff they sell to customers. They have expressed interest in me just taking over and leading development but there is just one issue... I am really just super unhappy and stressed working there. I'm gaining weight, having stress related health issues, going through like 2-3 energy drinks a day which are really just an excuse to leave the office for a bit, but most of all I miss working around highly skilled technical people. Their legacy codebase is also this sword Damocles hanging over the company. It's an absolute rats nest and I'm not sure yet if I want to be the guy to take a swing at solving it.
I kind of just want to go be a software developer somewhere in a hybrid or remote role, but very few places will even look at my resume because on paper I am a tester. This is all starting to impact my mental health so I feel like I should probably do something. Should I get out of this role/company or should I just tank it a few years and see what happens?
LogicRaven_@reddit
You want to be a developer. You got a chance to lead a dev project. Sounds like a good fit to move ahead with!
The company has problems with quality and legacy code. That is the story of most companies.
Use the chances you have: - deliver well on the projects, maybe proof of concept will grow into a real project - the more trust you earn from management, the more levearge you will have to decide on ways of working in the project, including quality - you build up a dev profile in your CV
If the proof of concept projects work out, then in practice you get a dev role in the current company.
If they don't work out, then you still improved your CV.
Keep applying in the meantime.
You don't need to drink those energy drinks. You could just go out and walk instead. Maybe a therapist could help with handling the stress while you find yourself a better place - within or outside of the company.
Neither_Biscotti_450@reddit
Here’s a question I’ve been wondering a lot about: why does OO seem to win out as the dominant programming paradigm vs FP?
blisse@reddit
OO and FP are orthogonal ideas, the lie is that we have to choose between one or the other. There are gradients to each side.
Here's a more technical explanation on how to actually think about programming paradigms.
https://webperso.info.ucl.ac.be/\~pvr/VanRoyChapter.pdf
When you write a static function in an OO language, you're actually doing shades of FP. The problem is that most FP languages don't support all the benefits of OO, but all OO languages support shades of FP. So FP languages miss out a lot on what's gained by mutable data and how intuitive "statefulness" is. But OO languages can generally work around the non-determinism that FP provides (or just deal with it).
hooahest@reddit
OO is very intuitive and relatable to real-world scenarios. I take the journal, I write something in it, I put it back on the shelf. I don't take the journal, copy it to another book with the addendum of my new piece, and put both the old and the new journals on the shelf.
Also, FP has gained somewhat of an 'elitist' status because it's 'nice to have' as dmazzoni wrote in the other comment. If it's nice to have, then it's not something taught as a basic requirement like OO.
intercaetera@reddit
Not to be that guy but that's just mutability vs immutability. You can do immutable OO and I hear it's been somewhat popular in Java circles (Vavr?).
The fundamental conceptual difference between OOP and FP is thinking in nouns vs verbs. And there are tools to understand the domain in terms of verbs (event storming is one such example). Once you have an event-based picture of your domain in place then FP becomes much more intuitive.
whossname@reddit
I don't get the elitist thing? FP code is simpler. No mutation/side effects makes it easy to reason about. OO hides important details in layers of abstraction. Makes it harder to reason about and find the relevant code while debugging.
That said, well written procedural is probably the best style. Functional can have performance issues, probably uses too much recursion, and you can't really do anything without side effects.
Functional when possible Procedural when it isn't OO when necessary
hooahest@reddit
I honestly can't articulate why, it's just how it comes off as. (to me at least. I strongly push for it when I review code).
Maybe even just the basic fact that it's not being taught in schools as something required makes it something 'secret'.
sieabah@reddit
Most people hate math and functional programming boils down to lambda calculus.
dmazzoni@reddit
First of all, I don't think it's an either/or thing anymore. Modern languages like TypeScript, Rust and Swift have embraced both OO and FP features. Even Java, the original king of OO, now has tons of FP features and allows functional-style programming.
Fundamentally, though, I think the issue is that FP and OO are trying to solve different problems.
FP improves the expressiveness of code at a small scale. It lets you do more with less code. It lets you create building blocks and put them together to do pretty complex things in surprisingly simple ways.
OO, on the other hand, is concerned with scaling to larger programs with many programmers. It solves the problem of: how do lots of programmers all hack on the same code at the same time without constantly breaking each other's code? How do you make it easier to reuse code and extend code without breaking it?
Given that framing, FP becomes a "nice-to-have" while OO becomes a "must-have" for most complex projects.
Another observation is that some programmers who love FP write clever code that junior programmers have a hard time understanding. What a lot of organizations have learned is that writing the simplest possible code leads to fewer bugs and lower maintenance costs in the long run.
Hovi_Bryant@reddit
OO has so many interpretations... I'm surprised anyone can say that it's designed for scaling. Especially when it's relatively easy for an individual to abuse it provided on the context of their tools and skillset.
whossname@reddit
There's a lot of historical legacy stuff happening here. FP was actually invented first, but computers at the time didn't have enough RAM to really support the paradigm. You don't get a lot of the low-level optimisations that are possible in other paradigms in FP, and back then, that really mattered. FP only really started to become popular about a decade ago when parallel execution became important for performance. This is generally easier in FP than other paradigms.
OO became popular before the internet was really a thing, so programmers at the time weren't aware of all the ideas other people had thought of. Importantantly, the designer of C++ wasn't aware of modules. Modules solve similar problems to OO (encapsulation, abstraction). A lot of OOs popularity is simply because language designers discovered OO instead of modules. Modules aren't even a design paradigm, just a language feature, but they achieve the most useful parts of OO.
From there, it's just a snowball effect. OO is popular because it is popular.
ShoddyWorkmanshipTed@reddit
Posting here as it's not on theme for a whole post:
I am a senior who works with another senior in a team of many. He is extremely opinionated to the point he becomes insulting and aggressive when challenged on anything. I find him incredibly difficult to work with. He needs everything to be exactly how he wants. You will never know how he wants it, as his expectations change by the day. However you implement something, he says he would do it differently.
This isn't about linting or coding practices, this is about the entire design and code structure of every feature. Whatever you do, he wants the opposite. He will argue for things which are clearly worse than the solution on the table, as long as it's his way.
I see him bully other team members into submission in PRs, in meetings, etc. I have tried challenging him and standing up to it when it's about my work but I simply cannot stand the amount of arguing I have to do on a daily basis with someone who's just not a good engineer, and lacks professionalism or good manners. It takes hours out of my day, every day.
He's suddenly taken to having a long slack message in our team channels almost every morning. He will pick something at random to be extremely critical of, saying it doesn't work, it's too complicated,the code is bad, the design is bad and make wildly inaccurate assumptions about how it should work, which shows he doesn't actually understand the feature he is complaining about, at all.
I've raised it to our manager several times now to the point my manager no longer wants to hear me bring it up. They give a stock answer of "try to improve your communication skills" whenever an issue is raised in regards to a problem on the team. i.e. There is nothing for the manager to ever address, it's always a case of the complainer lacking communication skills to solve issues above their control.
Is there any fixing this?
My latest tactic is to just not engage. If he is working on Feature X, I'll work on Feature Y. Except, surprise! He suddenly has extremely strong views and wants to do it his way. So.. I'll go work on Feature Z instead, but no wait! He suddenly has taken a major interest in this feature too. I am simply trying to leave him alone in the hopes he will leave me alone, but to no avail.
blisse@reddit
There's a book called "Crucial Conversations" which I often suggest people read when they want to learn strategies on how to deal with work conflict in more productive ways. Since you describe it as "standing up to it", you've already basically sunk yourself. That's fine, this book should help.
I don't condone their attitude nor your manager's lack of action, but the reality is you can only control your own approach, so eventually you want to develop the skills to engage these conflicts yourself, because that'll be a big part of your professional and personal life.
The tldr is to talk to them about the exact, undeniable outcomes of their behavior (your team is demoralized and annoyed), the exact things that they're doing wrong without judgment (they are providing inconsistent feedback), and really understand their perspective, as well as establish clearly your boundaries and suggestions on what they can do, while being receptive to their perspective.
BonnetSlurps@reddit
Welcome to the reality of having a manager that doesn't care. Most managers don't know/want to solve conflicts, and are just passing information "down" but are not open to receiving any. This is unfortunately the norm, not the exception.
This is when you jump ship.
casualPlayerThink@reddit
Are there any validity in his side?
Communicate this to the leadership. But be prepared to departe. Your mental health does not worth this place. Run a round to try to fix it via leader, but since there is always long discussion points by him, the leaders supposed to already know this.
Start updating your resume, and look for a non-toxic place. This environment will hurt your career, self-esteem, mental health and stress level. Does not worth it (except if you have like 1M+ compensation).
0x53r3n17y@reddit
Sadly, there is no easy fix here. Behavioral issues - aggression, insults, bullying - are something that ought to be directly addressed by leadership. Clearly, your manager is avoiding confronting him, and it's very likely, in part, because of your coworkers' intimidating behavior. Your manager follows suit and shut down someone who's already subdued by the bully, because it's the easier option. Long term, this is untenable. If there's a skip manager, you may consider talking to them. If that's not an option, I'd consider dusting off your resume: don't waste time on a toxic environment which nobody is willing to address.
Ok-Row-6131@reddit
How do I stop myself from losing my composure (ie panicking) when QA is disappointed about finding a large bug, which frankly I should have caught before releasing to them but didn't?
For more context, my company's releases are slow even going from dev to QA.
a27career@reddit
I'm coming up on 4 YOE. I work at a mid-sized Financial Services company. Pay is ok. Work is passable. But satisfaction is really low. I have been trying to change jobs but it's been hard. Somehow I'm constantly feeling like I'm wasting my younger : productive years working on crappy projects and low impact things. How do I fix this mindset? I try to do projects outside of work / try and work on opensource but it gets too much. Like putting in a full 9 hours of work and then trying to do more on the side
BonnetSlurps@reddit
I see two different asks here.
About wanting to work on high-impact things: is there anything at your work that fits the bill? If yes, you gotta try to go in this direction. If no, you gotta either accept or move on, as the company will probably not change for you.
About the "it gets too much": Could it be that care too much about your job? How much do you need to care to keep it safely? Asking because a lot of people care more than they should, especially jobs that suck. This obviously leads to stress. What about working on even lower-impact stuff that doesn't overwhelm you mentally so you can still have energy for those private projects?
One_Board_4304@reddit
Apologies for this basic question, but i'm in a disagreement with my colleagues on this. I'm starting work on a developer experience project and part of my research includes understanding how experienced developers find API, SDK information for new products they are evaluating. Do you search for it primarily in the vendor's docs, do you do google searches, go through community, all of the above...? Do you ever pay or create an account to get access to this information?
LogicRaven_@reddit
The process normally goes like this for me: I have a problem, I do some google searches and random browsing through the findings to understand the landscape: what possibilities are there, what keywords are used for my problem.
Then I do a more targeted search, create a shortlist including checking reviews, review their documentation, compare options, identify 1-2 for prototyping.
I never payed for access to this information. I expect vendors to offer API doc for free and as easy to access as possible.
The whole process is not so difficult or time consuming thar I would pay for a service doing it for me.
One_Board_4304@reddit
Thank you for your reply. This checks out with other responses I gathered as well.
0x53r3n17y@reddit
By and large, I expect a vendor or product website to contain a link in the main menu which reads "docs" and points to either a documentation section or a dedicated docs subdomain. Within documentation, I'd be looking for a dedicated section "developer documentation".
The information structure (table of contents, page / section structuring, navigation) of documentation should be clear enough to led me find SDK infromation, API documentation, OpenAPI references, schema's, etc. etc. Anything you'd need to self-service and work with the product.
Google searches and community become a thing when I have specific questions during oncrete implementation in projects e.g. "I want to create a file upload to S3 but how do I get a fireworks animation going the upload is halfway?"
Paywalling developer documentation would be a red flag in my book. If you are publishing your stuff as open source or as an open service, it wouldn't make sense to restrict access to how to use it. If you sell a proprietary product or service, I'd expect the cost of maintaining documentation to be an intrinsic part of the product pricing, not something that's charged separately.
Fresh-Lie-3735@reddit
What do interviews look like at the 2 YOE mark? The last time I've done recruiting was when I was an intern, and I rememebered a ton of leetcode, and a pretty basic behavioral. I've been working at a local company for 2 years now, and am now looking for a job switch. What should I prep for to pass my interviews? Do FAANG tier companies even hire people with this kind of experience?
bnasdfjlkwe@reddit
Can only speak for experience, but if you are looking for middle roles, expect to be given similiar coding questions and behavioral, and the addition of system design.
For the middle roles, you are more harshly critiqued. For example, for the coding questions you may be asked to solve the initial questions and extension questions, where the lowest role would be just the initial questions.
For the behavioral, you would start to be judged at the higher level. There's more leeway when telling the story at the low level vs medium level.
Then you have system design. You would need to be able to design a system relatively well. Are they looking for perfection? No, but you should be able to get the initial system design well
signedupjusttodothis@reddit
Question about communication:
I’ve begun to notice that communication sent out by our top level division director is not matching certain realities that we are under as a team.
What I mean is my team would, for example, be working on designing new seatbelts for the car my company operates. In standups one developer will say he’s working on the belt straps, I would say I’m working on the clasp and lock, and a third developer would say he’s working on the attachment points.
Our EM would then say he will report this up in his weekly status report to leadership.
But then, when leadership (the director specifically) emails out his biweekly division update, I read the section related to our team and it will say “signedupjusttodothis’ team is working on airbags, and brake cables and have committed to delivering this Thursday”
Except we are unquestionably NOT working on airbags, and never once did we as a team make such delivery promises, we weren’t even promoted to by our EM in any planning call.
It’s also just one example of a problem that is starting to really nag me: my engineering manager plays telephone with information we give him and often poorly relays that to other parts of the business, either forgetting important details that could color things very differently, or just delivering the wrong thing entirely.
It happens kind of often, and we’ve actually missed multiple deadlines that were created in a way that felt very “behind our backs” and when those promised dates loom, suddenly we’re pressured to move faster, skip tests, in order to meet the deadline. Twice in the last six months we’ve had critical projects flat out rejected by SRE because tests failed and components didn’t meet certain standards that were skipped because of the above “rushing to meet a promised deadline”, and one project was straight up canceled by the business and had all funding removed after we communicated one thing to our EM and he communicated something entirely different.
If you were on such a team, would you bring this up? How do you ask your boss to communicate more accurately and not make commitments behind the team without coming across as making accusations or placing blame for multiple failed promises?
LogicRaven_@reddit
Consult your manager before communicating anything about it.
Your director is likely doing their best, given the constraints of the environment and their skills, experience and position strength.
In general, your EM should show the negative impact and the lost time/capacity because of this way of working. If they don't do it or didn't manage so far, then there are reasons for that.
Ok-Connection-6751@reddit
I'm a new hire that was originally going to be a senior dev (15+ yrs exp). I was instead asked to fill in as a team lead position as the company is changing some structure and needed a couple new leads. Essentially a promotion so I said yes. I'm still not sure why they hired in someone new instead of promoting from within an existing team. The team consists of people who are really good at their work and have been on this project for years.
I have almost no domain knowledge or experience with this project yet. I'm a new hire. Learning and onboarding has been fine, but like a strrssful fire hose of information. All meanwhile the team is trying to continue on with their daily work, and I'll somehow have to hit the ground running. It's been pointed out to me how fast other devs (not team leads) have onboarded and are already contributing to the project with completed code work.
I've also come to learn in my first week that I won't be doing much programming at all, which is my favorite part of my career. This is distressing, as I was led to believe it would be more of a 60/40 split of lead/dev work.
I feel way over my head and woefully under qualified as a team lead. But this position will do wonders to advance my career. What do I do? Are there any good resources to learn team lead skills for a giant project where I am a complete newbie? Or should I bite the bullet and admit defeat?
ArkingMLG@reddit
Hello!
Now my situation is a little bit different from what you would normally expect. In the first year of college in my first hackathon I managed to pull some investor to continue our web product, it was an open source learning platform (I mostly did front-end), which reached 3k monthly active users, as the team fell apart so did my love for the project.
In the second half of the second year I got an offer from the same investor to build a robot, strangely enough completely unrelated to my first task, thinking it would be extremely an extremely good path, Ai proof and in the field of engineering which is more related to my degree opening opportunities for master's.
But I couldn't be more wrong. In Romania where I live, there is no much room for growth and opportunity in this line of work, so while busting my ass 60h - 70h a week the whole summer I finally realised it is not for me, because I am more of a dynamic person, resilient in what I do but dynamic.
Feeling a little lost, and since I have to again choose something I "like" and stick to it, I thought of choosing Ai, but I don't know if that grind will fit my dynamic personality yet I see endless opportunities in that direction and I know I can do it. I was thinking maybe db/backend micro services, but what business opportunities that are not saturated do I have in that direction, since I plan on working until I become good enough and start my own thing.
Do you have any advice on what should I do or I would rather say what should I worry about.
LogicRaven_@reddit
With a 60h work week, everything will be a burden and all joy is killed.
You would not be able to pick any field that wouldn't become terrible grind with this schedule.
Building a robot is very good. Exciting, has hw and AI elements.
You could consider sticking to it and reduce your work hours. Take care of yourself - eat, sleep well, hang with friends or family. Pick up a hobby thay is very different from your daily work.
I don't know what "dynamic person" means. If you need a variety of work, then try to pick up something else in this company. How does the marketing funnel look like? How do they sell it? Learning a bit of new domains could help you later when you start your own things.
Building a business is much wider than building some technical stuff.
ArkingMLG@reddit
Thank you for your reply and advice!
JustAnotherGuyn@reddit
How are YOE defined? I'm sure there's an answer somewhere that my reddit search-fu has failed to find.
For reference: I'm coming up on 1 year employed as a full time developer, which came after a year of being part developer/part technical support rep
Both of these are after 4 years of college as a software engineering major, and also for those four years developing and maintaining servers, database infrastructure, websites and tools for a few small open source projects (averaging around 3-5 hours per week of time).
Would I be considered: - almost 1YOE (for my one year as a focused software engineer) - almost 2YOE (for my two years total where software engineering was part of my responsibilities) - almost 6YOE (for my combined time working, schooling, and contributing in my free time weekly to OSS)
I'm guessing it's the almost 1YOE, but I don't want to misidentify myself in comments
casualPlayerThink@reddit
By years that you actually worked. Sometimes you can round a month there-and-there, but that's the only real indicator.
The "engineering was part of my responsibilities" is always questionable, because the immediate question for this: "On what level and how often?"
The open source contribution is nice - especially if its resonates with a job descriptions - altho' does not count as years of experience, BUT should be part of your resume! (check the r/EngineeringResumes wiki for more info about this)
InterpretiveTrail@reddit
It's typically defined by employment only. So you have 1 Year of Experience (YoE).
Yes, extra things outside of your day job can feel like jobs themselves, but typically aren't counted in YoE. Which sucks when you've poured a lot into them.
Some things outside of your direct work experience can really make your resume shine brighter than others, but sometimes it really just comes down to just how many years have you been employeed.
Regardless if that was an answer you wanted to hear, best of luck.
ProgrammingQuestio@reddit
Is it common for people to write poor documentation?
It's odd how many times I'm reading internal documentation and I'm like "this makes no sense. How do I do X? Why does it not explain in further detail how to do X?". An example is docs that say "run foobar.exe to generate blah" and I'm just like: what is foobar.exe? Why are you assuming a reader of this page knows where that is or what the proper usage is? Why not link the docs needed to provide context?
Is this just something some people don't think of? Or am I potentially a dumb dumb who expects to be spoon fed?
casualPlayerThink@reddit
Yes. Surprisingly high amount of IT ppl believe in that a "good code document itself and do not have to write documentation, API doc or doc-blocks or comments".
This is okay until that person is actively maintain the code base, but after he/she left or time passes, nobody will remember for businesses decisions like why did this or that.
Or people think a swagger is good enough to document an API. it could be "okay\~ish" , until the moment, you have to actually implement the client for it, then it is awful and bad.
Also, very bad idea to enforce people to read the actual code to understand what is inside and what was the design. To be frank, 95% of the developer think their code quality is high, but in fact, its like 2/10 poor only. And doesn't matter what kind of company you check, even FAANG companies have pretty bad/nonsense/non-existing documentations.
CowboyBoats@reddit
You're definitely not a dumb dumb, but (since this is a thread for inexperienced devs to ask questions) it's possible that your inexperience is a factor here. Developers frequently write documentation that is arguably decent, but with the failing that it kind of assumes some strong existing knowledge of the topic. Kind of a "doctor's handwriting" situation, maybe? I've gotten along better with the documentation contributed by my coworkers as I've gained more experience.
To take your foobar.exe example, here are a couple of questions I would ask (after asking yours):
rg foobar.exe
(rg is a souped-up grep, worth installing). if that surfaces nothing, searching your company's github for foobar.exe is also worth doing.fd foobar.exe
. (fd is a souped-up find, also worth installing). even if the file just exists in your repo with no other documentation, you can always try running it with-h
/--help
and try your luckfoobar.exe
in the actual code, then your IDE should have some way of usinggit blame
, or you can usegit blame
itself from the CLI, to show what commit introduced that mention. That wlil hopefully give you a developer's name, a Jira ticket, and/or a pull request ID, all of which give you further leads to find out what the hellfoobar.exe
is.Is it ideal for you to have to do any or all of those things? No. However, they do take only 10 or 15 minutes total, combined, and they might well allow you to learn the context of this conversation without needing to spend social capital bothering someone.
azoip@reddit
In my experience writing and maintaining documentation is a difficult problem to solve in most real world scenarios, and there aren't really any one-size-fits-all solutions.
I therefore tend to treat it the same way I do any other difficult engineering problem: figure out what I actually need, separate concerns, do my best to build a modular solution, focus first and foremost on adding value, choosing the right tools, etc. etc. And also, I cannot stress the importance of this enough: don't try to make the people conform to the system, make a system that is built to work with how the people will inevitably behave.
I have a few examples from over the course of my career of where I "solved" specific documentation problems, and it always took a lot of careful thought and iterating on solutions.
People and organizations mostly don't do this, hence your experience.
Which leads to my biggest caveat: sometimes it isn't worth prioritizing documentation. To share a personal anecdote, I work on a widely used codebase with tens of millions of lines of code spanning multiple languages and technologies, some of them invented for this product. Trying to keep it all properly documented, whatever that even means, would be an exercise in futility. In many cases documentation is stale, but gives me a good jumping off point to go read some code and get the information I need. If something is broken, I look for useful log messages and use them as a jumping off point to find and read the relevant code. So in this case for example I'd say it's much more important to prioritize writing readable code than it is to prioritize documentation. This does not mean however that there aren't specific areas of the product or codebase that do need more thorough documentation to be usable.
0x53r3n17y@reddit
Yes.
No.
No, it's a reasonable expectation to have documentation which gives just enough context to understand what a thing does and why.
Poor documentation is a result of many factors including:
LibrarianUrag@reddit
I've grown to hate software engineering, but not sure what to do about it.
I have 5 YOE in data & ML oriented SWE. All of my experience has been at two large tech companies. I wouldn't say I was treated unreasonably at either one and was paid well. I never had any expectation to be able to "enjoy" my job necessarily but at least expected to be able to tolerate it. I don't have issues outside of work (disciplined exercise routine, happy with relationships, hobbies, etc.) However I do detest the workday and it has become more and more intolerable over time. Without clogging the post with unnecessary details I think it could be well-summarized as 1) I have no interest in software systems or improving at the craft, 2) I have no interest in becoming anyone up the line either (managers, more senior engineers, etc.), 3) combining 1 and 2 makes it difficult to deal with challenges and get through each workday, since the nature of software engineering is that one must face new challenges constantly that require non-trivial concentration to solve. Plus managers typically would like to see their reports growing and taking on increasing complexity over time. There's the added layer of charades to pretend I'm invested in the career and not just being dragged by a moving cart.
That all being said, it seems like a poor idea to continue in this career, but the dilemma is how could I know it is even possible to achieve a more tolerable job, it might be a pipe dream. I do have interests in some areas like math but all roads unfortunately seem to lead to software or data science in industry. I'm effectively torn between accepting I will have to hate my career and drag myself through it and try to improve my attitude, or try to select some other profession in which I would have to start over as a junior employee. I don't mind doing this but have no clue how to go about this selection process in a reasonable way.
Just wondering if any others have gone through anything similar. I'm confident it isn't just a phase or whim as I have felt this way for most of my YOE.
0x53r3n17y@reddit
You could stay in tech, but look towards completely different roles. Usability, product design, sales engineering, product training, teaching, advising consultancy, project management,... These are roles where coding isn't the focal point of the job. Those require a different skill set, but a background as an SWE is certainly an advantage here.
But then, if you're really put off by the notion of working on tech related products or services, then your facing the open road. There's a trope that says that every software developer harbors a deep seated wish to become a homesteading farmer or a woodworker. Many do get out and end up doing something completely different. Whether that's becoming a nurse, opening a restaurant or starting a toy company. YMMV.
It might be helpful to step back and reflect in broad strokes on the fundamentals. What drives you? What do you find engaging and valuable? What inspires you? What do you draw energy from doing? It may take some time to find your groove in this respect. Consider it an exploration. The challenge, then, is accepting that you might not have an immediate, clear-cut answer. So, practice some patience with yourself.
Beyond that, you might want to look into people who practice career coaching as well.
adastro@reddit
How do companies get help on specific tech decisions when their programmers are not experienced in that field? Is it common to contact consultants? Would reaching out to the AWS support (as an example) be enough?
a_kassandra_knockoff@reddit
+1 to AWS support. I worked at a startup where our CTO got a higher tier support plan (I think) for someone from AWS to support us for I think a few months when we were figuring out scaling and advised on architectural stuff. They definitely kept all solutions within an AWS system, but if you're not sure what you need, that is probably a good thing.
eggeggplantplant@reddit
Consultants can be a double edged sword. If you get honest, competent ones they can be helpful in situations like these, but cliche, greedy ones can make things worse.
AWS can actually help there, ive seen that twice so far. We would have regular sessions with them in both case to sanity check. I went in very sceptical, but their folks were very competent and helpful in all interactions so far. Especially their DB guys, i can only give praise here.
TLDR Your mileage may vary, but i find AWS Support and Solution Architects to be quite helpful
behusbwj@reddit
+1 to asking support. They will sometimes escalate to dev teams to give you more specific advice on edge cases even. But the timeliness of the response depends on your support plan unfortunately
ConstructionHot6883@reddit
I have around 6 YOE in the industry, and I'm currently in a pretty stable job (I do occasionally wonder about getting a different one that pays more, in the future, maybe.
I have a degree already, and a good one too, but it's nothing to do with software. It's in foreign languages. How much does this matter among experienced developers? When a position opens up for an experienced developer, then how much does "lack of relevant degree" matter, even after some time in industry and with an interesting github?
a_kassandra_knockoff@reddit
I've been involved in hiring and never once cared about which degree a mid or senior level engineer has. If anything, folks with unrelated degrees signal a diversity of interests that bring different perspectives to the team (and are just fun to have as part of the group). If you feel like you're pushing up against a salary ceiling, there are more effective and efficient ways of going about moving it.
AdamBGraham@reddit
I would expect 90% it does not matter. A degree is a signal to an employer, not as much a qualification. It’s a signal that you can commit and finish a rigorous educational program.
CoffeeHQ@reddit
20 YOE here. Same situation, don’t have a relevant degree. It’s an issue to get your foot in the door, but it’s no longer an issue when you’ve got 5+ good YOE (and an interesting github is a nice bonus). That’s been my experience at least as a developer, and more recently as someone who filters/selects/interviews candidates. I’m quite certain that’s not just my opinion.
ElementaryMyDearWut@reddit
Dev at first company, almost 3 years of experience.
We've recently gone on a tech debt push within my team now that work is ramping down. I've always wanted to implement a linter/code style checker/small automatic QA pipeline using Gitlab pipes.
I've spoken to tech leads and they've been told "no" apparently, do you think there's any way I could pitch this within my team to get it done and after seeing it work within my team upper management might be more flexible?
Should I even be pushing this when I have no authority? How would you attempt to make a change here?
I've always struggled with how a large company such as ourselves have no in house style guide, so it's a pet peeve of mine.
LogicRaven_@reddit
You are approaching it from the wrong angle. Your are not paid to run after pet pevees or to implement a linter, because you always wanted.
You are there to solve business problems. So what is the most impactful business problem to solve? What is the most impactful technical debt?
Jump on those. If the most impactful thing needs a QA pipeline, then do that. If not, then do the other thing.
You could still build any pipeline for fun in your free time.
Pitching technical debt items often starts with a business problem - time to market, customer churn because of quality or else. But it always starts with finding the biggest impact.
GoTheFuckToBed@reddit
just do it? I assume you are using pull requests and pipelines, then add a linter check stage for your team
DeltaJesus@reddit
You're not really going to be able to demonstrate it working without actually setting it up, which likely isn't going to be the best idea given that there are costs involved which is probably going to be what management is objecting too.
It's definitely not as good as a proper pipeline but I'd maybe take a look at setting up pre-push hooks to run some of those tools, provided you'll be able to get enough buy-in from your colleagues that you know they won't just constantly skip them with the no-verify flag.
x2network@reddit
Ok I’ll ask a Q. How hard or easy is it to setup an overseas office for dev work. Maybe India or Vietnam.. I’d love a team of 2-3 devs at my disposal..
andreortigao@reddit
I agree with others that it's more of a management question
I'm from Brazil, and I have worked for US companies through consultancies. It's usually recommended to hire a consultancy agency, as they handle vetting, taxes, legal aspects, and offshore payments.
The benefit of using south American developers is the timezone being much more aligned with the US.
Goatfryed@reddit
That sounds like a management question and less like a developer question.
If you'd be interested in experience with on/near/off shore development in terms of work and output, I'd assume that many people here could give you some insight, but if you're interested with the process of setting it up with respect to legal, hiring and such think, I'll probably suggest to ask elsewhere. Think of it that way: Is the setup a task you'd ask even your most experienced your developer to do?
Anyway, I hope someone can give you some feedback, but don't be surprised about some down votes and don't be surprised, if the result is unsatisfying.
x2network@reddit
Didn’t expect down votes.. what the mechanism of down voting anyway? Why do it? Asking the trigger happy campers 😜
DeltaJesus@reddit
I suspect the downvotes are a mixture of the question not really being relevant and a general dislike of that kind of outsourcing.
LogicRaven_@reddit
Your are getting the downvotes mainly because of the low effort question, but maybe also because of the bad experiences many experienced devs have with outsourcing.
Outsourcing has been around for 10+ years. Materials on pros/cons and guides for how to set up in a certain country are widely available. Your question doesn't indicate any prior research you did.
When management approches outsourcing as cluelessly as your question seems to be, then experienced developers often end up suffering from it.
They get tasked to lead a group of clueless "devevelopers" or fix bugs hidden in low quality spaghetti code. Sometimes they get fired based on a vision management has about outsourcing. That vision can turn out to be unrealistic later, but by that time the devs are already fired.
Take a look on r/startup, if you want, where discussions about different development models comes up every now and then.
birdleash@reddit
I have 5 years of professional experience in Rails and I am looking for a new role. A lot of the jobs are requiring code samples/Github links, so I’ve started working on a personal project that has a fairly ambitious scope. Is it better to hold off on applying to these jobs until I have something with my first set of core features fully ironed out, or should I go ahead and push to my GitHub and keep updating as I work?
roger_ducky@reddit
Honestly, when I see review GitHub projects, I’m looking for:
A readme that explains:
What project is for
How to set up project for development
Links to your coding style and expected quality for accepted PRs
Aside from that, having a code base with unit tests, where the tests can be read as documentation
And id hope the thing can run on a build pipeline.
I honestly don’t care if it works or if it’s super simple. Just if you write code like a professional would.
PatternNotRecognised@reddit
I agree: the scope of the project is much less relevant than the quality of the approach. It's cool if you have something novel or challenging in there that you can draw attention to, but get the basics right first.
The only thing I'll add is that "the basics" might vary a bit based on your field, the nature of the project, etc.
If you're worried that the scope of this project is delaying you in applying for jobs, consider making some high quality, small-in-scope examples first, then raising the quality of your existing WIP code to the above standards, and only then putting more energy into the content of the larger project.
An example of a small but complete GitHub project that I happily share when applying for jobs is a minimal proof of concept solution for a problem that occurs when combining two features in a (my) industry-standard library. The example code itself is a few dozen lines, but it's a good example of my code quality, my problem solving skills, and how I communicate.
prolemango@reddit
Keep updating as you work and continue to apply and interview. Whenever I've reviewed code samples I'm usually not looking for complete features or viable product. I'm assessing code quality and development practices
Outrageous_Listen_23@reddit
Working on a C++ sdk For the qt framework as my first job out of college. Been doing this for about a year and a half now. Am I pigeonholing myself if I stay on this project for longer?
dmazzoni@reddit
Only if you never learn anything new.
C++ is incredibly versatile and relevant today. If you become strong at C++ in general (and not only working with Qt) there are many opportunities to work on very different things using C++.
But also, spend some time learning other things. Build an iOS app or make a website using React as a side project - or whatever might be interesting in your next job.
Don't be afraid to apply for a position that uses different languages and frameworks than you know now. Many companies will prefer a strong experienced developer who's new to their tools over a weaker candidate who happens to know their tools.
longiner@reddit
What approach should I take to outsourcing the development of a mobile app?
Our head count is low and we don't want to put the burden of developing a mobile app on the existing team.
One of our partners has give us 2 outsourcing leads for a company in Turkey and one in the Philippines.
What should we expect in terms of hands-off/micro-management when dealing with outsourcing?
I know micro-management is seen as bad and since it is not our own company, I suppose we can't delegate daily tasks for them since we are not their boss. And their company is probably working on multiple projects at the same time so they are probably time-splitting between working on our stuff and other people's stuff. But we've never done this before and don't know what to expect.
Should we ask to be put on their daily meetings? Should we ask to have read-only access to their sprint backlog? Or should we be hands-off and only casually ask for status updates/demos every few days?
LogicRaven_@reddit
It all depends on how the mobile app is part of your product and the quality of outsourcing company.
Some things to consider: - vendor lock-in: once you have an app, moving it to another dev company would be laborous. But still it should be possible. You should own the source, the tools, tests, dev accounts, etc needed to deploy the app. There should be someone internally who is familiar enough with the source code to make a fix and deploy.
quality: outsourcing companies vary a lot in quality. Some of them need to be under tight control, micro-mamagement can be necessary to make the project work. Others can work relatively independently, but you would still agree on how to quality control.
differences in timezone, culture, context, language: outsourced devs will naturally understand much less of your product and needs. Having some overlapping work hours helps.
fixed scope vs time&materials: fixed scope contract means continuous negotiation on scops change, time&materials need high trust with the outsourcing company and self-discipline from you.
If the mobile app is not part of your core product experience, don't change often, then a fixed scope development and maintenance agreement would work and you could be more hands-off. Time-splitting can be ok, but keep tight control on scope, deadlines, quality and ownership of code.
If the mobile app is part of your core experience, then you might want to run the mobile team on the same way as your internal teams. Full focus, no time-splitting, dailies, being involved in scoping and major technical decisions. Time&materials.
What worked best for me for core product development was to integrate the outsourced devs into the existing teams and handle them almost the same as internal devs.
You are going to spend a large amount of money, so you have all the rights to ask for a working model that you believe would fit the project.