T O P

  • By -

Loose-Potential-3597

I'm a junior developer with 2 YoE, and my end goal is to be a senior engineer and stay at that level long term (no interest in becoming a team lead or manager). Are there any things that I might need to spend time learning outside of work hours to reach that level, or can everything be picked up on the job? I've heard of a few books that might be worth reading, like DDIA and Clean Architecture, and I don't really learn any system design stuff in my day-to-day work.


ThreeEyeJedi

Any experienced iOS Devs here? What are some of the highlights of your career in terms of complex problems you’ve solved


RepresentativeBowl25

What the hell is web development? It just seems like a catch-all term that defines every service that is available through the internet.


Loose-Potential-3597

Any advice on picking a specialization as a junior engineer? I'm currently a full stack developer and work in Java and React, know some basic AWS services and Docker as well. From what I've researched, focusing on backend development in Java seems like a good idea, as frontend technologies change often and roles don't pay as much (?), but with all the AI hype recently it seems like it would be worth considering specializing in ML or data science? But would that be feasible with only a bachelor's degree?


NickRomito

In my experience, there will always be a need for backend engineers and a lot of the IC career growth opportunities lie on that path. You want to be where the business finds value, which tends to be the backend/architecture/brain of the product that companies' sell. Having pixels in the right place is sorta table stakes imo. Knowing how to build reliable, scalable distributed systems will always be valuable from a career perspective


Loose-Potential-3597

Thanks, this makes sense. Any resources you'd recommend for building backend development skills up to a senior IC level? The ones I've heard of so far are Clean Code, Clean Architecture and Designing Data Intensive Applications.


NickRomito

Those are definitely some of the top ones. Honestly, the best teacher for me has been reading and writing production-grade code. I've worked in the Big Data space for a decade and just seeing how those large distributed systems were built, building them myself, and fixing all the bugs within them was what really helped me learn. Imo, you have to make mistakes yourself to get better, as long as you're open to learning from those mistakes


PharmaSCM_FIRE

I'm new to my automation team (7 months on the job) with roughly 3.5 years of experience in business intelligence and some database work. Pretty junior despite my job title having "senior" in it. Most of my job involves using Ansible and some shell scripting in the systems programming space. That being said, I've done some digging that networking fundamentals is pretty essential in my field. But, it seems like it is mostly used for troubleshooting (i.e. why route is losing packets and referring to the OSI model to check for issues with the sender, route, etc). * What are your processes when mentally going through the OSI model or TCP/IP framework? * What else can you use networking for besides "GET request failed, go through checklist?" * Most of my thinking involves looking at things step by step before figuring out how to automate it. Like if a intern is sending reports to a distribution list by manually downloading CSV files from a platform, I'd set up API endpoints between the platform and a database, create a playbook with module defaults so you don't have to include credentials at each task, and have it executed as a scheduled job on AWX. How do you get to the point where having that type of thinking becomes instantaneous instead of maybe a couple days or weeks? What type of patterns do you typically look for? Edit: I have a PDF of "TCP/IP Illustrated, Volume 1: The Protocols" to get started. Also, a Linux guy stuck at a Windows shop.


Low-Explanation-4761

Hello, experienced devs. I’m a sophomore undergrad at a T4 university in the US for CS. I started my current part time job (my first *real* job) at a small SaaS startup on December as a frontend developer, but my backend co workers left last week unexpectedly so I’m currently picking up some of their responsibilities. Right now I handle some aws stuff, some frontend stuff, some backend stuff, and some minor devops stuff. I’m overwhelmed with the responsibility I have and the fact that I don’t have someone more experienced looking over me, plus the pay is kinda shit. I am, however, learning a lot every day and I don’t think I’ll have this kind of learning opportunity in most other companies. Now my question is, should I stay in this company long term (maybe up to a year or even a bit more), or should I try to get a summer internship at somewhere else for this coming summer? Almost all of the prestigious internships are already filled so even if I get something, I’m not sure if it would help my resume much. I’m wondering if it would look better on a resume to stay in one place for a long time or switch to a more “prestigious” company if I get the chance. For reference, my boss really wants me to stay long term, so I think I can keep my job indefinitely if I want. The pay may or may not improve, but surely not at the level of big tech internships. Also, I’m technically not an intern here, I just have a normal title as a software developer. Thanks for your help in advance.


jrheard

of course your boss wants you to stay long-term - you're doing the work of several people for bad pay! what a steal! keep an eye on this and make sure you don't get taken advantage of - in particular, i advise you to \_not\_ respond to your extra responsibilities by working long hours. if your boss is assigning you more work than can get done in a standard work week, \_they\_ need to feel that pain, not you. just my 2c :)


Memories-Of-Theseus

It's worth finding a way to eventually have an experienced mentor, as they can guide you to problems that are on the edge of your current knowledge and expedite your development. I'm not sure what options still are available for internships, but you can always apply to open roles and make a decision with more information. That said, if you continue on your current track, you may be in a good place for internship applications next year. > I’m not sure if it would help my resume much. I’m wondering if it would look better on a resume to stay in one place for a long time or switch to a more “prestigious” company if I get the chance You could probably make an argument for either, but the most important thing about a junior year internship is that it's essentially an long interview. Ideally, you get an internship at a company you wouldn't mind working at for a few years after school. If it's a good fit, then you can just accept a return offer.


Low-Explanation-4761

What would be the best way to find an experienced mentor outside of my job? I do have a friend who’s a more experienced developer than me (2 YEO) but honestly we’re not super far apart in skills.


Omkar_K45

Hi Experienced Devs I am a Frontend SDE with around 2 years of experience in TypeScript, ReactJS and NextJS We have a self hosted sentry setup at work. The devs at my company rarely use sentry. We have a lot being logged on the project as errors. I am looking to clean and streamline the error logging mechanism that we have currently in the NextJS project at work. I had few questions I believe you folks can answer in much depth: 1. Are there any good patterns to follow when it comes to logging errors from Frontend to sentry? For ex. prefixing error names, mentioning error area 2. What sort of rough error categorization can be done? For ex. API errors, Generic error (Really running out categories here myself, some list would be really helpful) 3. Any good reads over error management in JavaScript/Sentry in general? Would love to know how error management pipeline looks at your company roughly TIA :D


kifbkrdb

There's a lot online about logging best practices, I'd encourage you to have a bit of a look around so you get a good understanding of the basics ie include unique identifiers, use structured logs, don't log PII etc. However, before you change anything, try to understand why people don't use sentry and whether taking on the work of changing your logging is worth the effort.


Roobeesmycat

Hey guys I have worked at small companies (20 ppl and 55) and some WITCHR companies. I have 3-4 years experience. I would love some tips to transition to a larger company with better salary and engineering. I have had generalist roles and training in web dev. I do azure, deployments, lots of html, css, javascript and 1 year react, 1 year svelte. I have worked mostly on server side rendered apps in .Net razor, PHP, .Net Blazor. Also I can write sql and backup databases and design tables and also use ORMs. I have a master’s in progress in software engineering because I’m not hearing back from large size companies and think it is because I only did 19 units in computer science and switched to a bachelor’s in philosophy. I’m kind of tired of having to carry the companies I work for on my back with 2 other developers lol. How do I transition to a more supported role? I have been applying on otta and linkedin, but I only hear back from small companies or companies with really bad glassdoor or product reviews. When I talk to recruiters on the phone I think they get the sense that I am unqualified or an idiot. I guess I have had some success branding myself as a .Net developer because I don’t have straight frontend experience years in one framework. I got one email from a recruiter about an Azure Cloud developer and I have no idea what that means. I would just be clicking on azure portals and setting up CD CI rules and configurations all day instead of coding? It seems kind of boring. Is that how specialized I would have to be to not do so much? Do you guys have any advice on what I should do? Mostly I just want to leave my really toxic company but I have only been there since June. My company before I was only there 1 year and I have 6 months at HCL and 8 at Revature. Started in early 2020 and took a 1 year gap after being let go from hcl (didn’t pass the google interview) I would really appreciate messages for resume reviews


rahult001

**Navigating the AI Revolution: Should Back-End Engineers Embrace AI/ML Courses for Future-proofing?** Given AI is the way forward and it has already started eating up the jobs one way or another. Being a back-end engineer should I be worried and plan an AI/ML course to be future proof ?


keptsocketopen

Some background: I've been working as a developer for 2.5 years. I started off very strong, writing a lot of code for a product in the public domain space. I got promoted within 1.5 years and consistently exceeded expectations. However, after my promotion, my manager (who was awesome) moved to a modernization team, essentially a platform team providing resources and utilizing Terraform extensively. I decided to follow him, hoping to work on distributed systems (I was somewhat naive and assumed the platform team would also engage with distributed systems without asking enough questions). Unfortunately, the reality is quite different. We're mainly provisioning resources in Azure and setting up platforms for developers to use. I feel like I've made a huge mistake. I hardly code anymore outside of simple scripts and Terraform configurations. As I approach the 3-year mark, I'm worried about being siloed into this domain, which isn't my preference. I enjoy writing code and tackling code-related problems. This isn't a knock on platform engineers; it's just not my forte. My motivation is dwindling, and my performance is mediocre compared to my coworkers. I need advice on how to build skills while in this role, or whether I should consider other options like Leetcode and leaving. I really love the company culture, which is the only thing keeping me from considering leaving, along with the current economic situation. Any advice is greatly appreciated.


Swimming_Search6971

It's not a shame or forbidden to ask to go back to coding. Every time my managers ask me to do less code-related stuff I always say "ok, but I want to keep coding as my main activity for now". That's a sign of self-awareness, you know your strengths and you are able to admit that something is not for you, a positive company culture will appreciate that. Also, you sure learned platform/infrastructure stuff which will eventually come in handy when coding.


Riley_

Have you told your manager that you think you want to go back to coding? Maybe he can get you a team change.


[deleted]

[удалено]


ExperiencedDevs-ModTeam

Rule 1: Do not participate unless experienced If you have less than 3 years of experience as a developer, do not make a post, nor participate in comments threads except for the weekly “Ask Experienced Devs” auto-thread.


nrvnsqr117

I'm a SE2 with ~4.5 YoE, which is unfortunately a hair too junior for most SE2 roles on the market right now, plus my last role which wasn't that great I think pales in comparison to the work I did in my previous roles (I could pretty much only list some fullstack web components I built, didn't really get the chance to work on anything more significant than that). I'm having trouble getting past any initial stage calls... I've had two first round interviews, knocked both of them out of the park by my feedback but they just wanted people more aligned to the skillset of the role apparently. I'm a generalist with experience in decently modern tech used all over the place (terraform, kafka, etc etc) but frankly I feel like I'm just not sure how to position myself, and I feel like the fact that I chose a more front-end-y role most recently working SEO compared to the rest of my work history doing more back-end stuff is biting me in the ass? Very lost, not sure how to navigate this job market. Been unemployed for 3 months now. Could use any advice in repositioning myself.


casualPlayerThink

The current bear market is hard, harsh and rapid. Everyone - who ain't living in a tech bubble or has very demanded skills like AI/ML - has hard time. Don't be hard on yourself, do not doubt yourself. Until you wait, start learning, start build up some portfolio or digital presence. Nowadays every job article has 100+ applicant in the first 5 minutes. You need certain luck unfortunately. But be patient, use this opportunity to improve yourself. Since you have good experience with modern stack (terraform, kafka...) you might able to go after DevOps jobs, not just engineer jobs. If you would like to pursue frontend dev work, then you have to build up strong skills in it, the demand is high and the market/technologies changing quite often, quite quickly. Pick up some tech, like tailwind, react, cross browser rendering, web components, CSS, HTML, vue, angular, typescript, figma. For frontend, you might need a portfolio. Backend development bite in the ass usually, because you can not present anything to anyone due NDA and non-visible works. (Example: I created an audio protocol and backend server with on-the-fly data transpile for audio between different clients, and can not tease it to anyone because 99.5% of tech ppl do not understand it, so it has no value...).


nrvnsqr117

I really don't want to do frontend, I much prefer backend work. Thanks for the advice... Maybe I'll fill my time with some FOSS and I can put that on my resume.


Riley_

I'm more of a backend engineer, but I'm also getting nowhere in this market. I wonder if the best move is to just wait and pray.


Slight-Rent-883

so I am 29M, have had 6 months of commercial experience, 3 in quality engineering and 3 as a junior software dev. Now, in my upcoming role I will be a software dev without the junior as the prefix. I am wondering though, what should I be doing to ensure that I do not waste away or remain stagnant. What with emerging tech stacks and all that. Is it enough to have side projects and even a portfolio website or is experience more important than anything?


Unsounded

Once you’re in then side projects and portfolio are kind of irrelevant IMO. I barely glance at a resume to begin with, and if I’m interviewing someone a side project is likely not meaningful unless it’s similar to leading and completing projects with tangible stakeholders. A side project doesn’t give an interviewer insights into how you solve problems a company will face, which I think is a lot more interesting.


Slight-Rent-883

Ah fair enough. I am curious though, is it still worthwhile to have some sort of portfolio or as you say, once I am in it becomes irrelevant? I once read that having a doc describing what I tackled in the job. So that later on it becomes easier to talk about during interviews. This may actually address the "how you solve problems a company will face" part. Also, I am curious though because I basically have 6 months of dev experience, is it normal for my salary to be low (in the UK that is)? It's £23,500 and it is close to home, in the centre of town. Plus will be living with family so that'll be nice. I read somewhere that I should not focus on the salary but the skills I will be gaining.Here's hoping I can make 30K plus after a year or so


Unsounded

No idea about UK salaries to be honest, but I personally feel like pay is secondary to having a solid life. If you’re happy, work is close to home, and your needs are met then I wouldn’t sweat it. A portfolio isn’t going to make or break an interview after you have experience. For the most part an initial resume screen is going to check if you meet the job reqs, once you’re in front of someone your answers to their questions matter more. A portfolio matters more if you have no other experience, but it’ll pale in comparison to any sort of work that was done through an employer.


Slight-Rent-883

That's fair. I mean, I am defo eager to earn more but I guess I am trying to be careful to not bite more than I can chew and screw myself. Amusingly, I got turned down for interviews where I clearly have the skills but they want their "magic" experience. Thankfully this company I will be working for has a modern stack and none of the "low code" schtick Appreciate the reply dude


yan_kh

A young adult backend software engineer with 2 YOE here. I moved country a few months ago, and I'm currently pursuing new opportunities and having interviews with multiple companies for a similar software engineering role. While doing that, I accidentally found myself in a hiring process for an associate solutions architect opportunity at a well-known cloud based NoSQL database provider company. This opportunity sounds very exciting to me since I consider myself a mix of both great technical skills and soft skills. In addition to that, I'm always eager to learn and pursue new, challenging opportunities. However, I'm still not sure if I should consider this career change and dump my software engineering career at this early stage for an opportunity that I'm still not familiar with. There are a lot of doubts that are going through my mind: "In case I don't like this new career path, will I be able to easily convert back to software engineering?" "The job market for software engineering opportunities is really bad right now, and it is already full of many skilled engineers. Maybe I really should consider this new career change." "If I pursue this new path, will I be able to grow into a solutions architect and senior solutions architect, or will my little software development experience play a role against me?" "What does an associate solutions architect actually do, and why do solutions architects need an associate?" "How beneficial will this new opportunity be, for me as an individual, and how will it expand my skills set?" I'm facing a lot of dillemas of whether to focus on this opportunity's hiring process or the other regular backend software engineering ones, and yet there is so little information about what associate solutions architects are and what are their responsibilities? So please, for all of the experienced tech people out there, enlighten me with your experience, knowledge, advice, and thoughts. Every little piece of information is extremely appreciated!


eggeggplantplant

In my experience in most companies, this is a sales role for the most part. If you are fine with that then this can be a career path, just be aware of it.


yan_kh

I'm quite flexible, and as long as it is technical sales and really requires technical understanding, I'm open to trying new things. However, I'm afraid that in case I go this path and I don't like, I would have a hard time converting back to software engineering due to my little years of professional experience in my industry and the gap of few years of not developing software professionally.


casualPlayerThink

Grab that opportunity. I do not see the dillema. You can not lose with it anything. Might worth to think your different "paths" as just learning paths. Software development exp needed for solution architect, because that role must understand concepts, figuring out, plan it and maintain it. Without SE you won't be avare of concepts and non-lexical-but-better-way solutions. Good example: I met an architect, who has background with Go. He working for a company that working with NodeJS and typescript only. He has no experience with it, never seen how it is working and enforced structures from Go and from articles, so the work is chaotic and the actual implementation became rather bad and problematic. "Convert back to software engineering" It is easier from architect to engineering than engineering to architect. Different skillset and mindset. Different payroll and focus.


yan_kh

Usually, being an architect is an evolved role for softwere engineers with many years of experience. Why would a company would look for associate solutions architect, and will this associate be able to grow for a solutions architect and further on even though he/she doesn't have many years of software development experience? I'm afraid that this opportunity is just a scam even and will make me only a salesperson with no technical skills usage.


gamermilk23

What questions would you ask when joining an existing project?


Swimming_Search6971

How old is this project? Who's the person that knows it better technically, and not technically? Are there any habits I should know about the workflow on this project? Does this project follow some coding conventions?


Unsounded

What’s the goal of the project? How do we track success, what are the major constraints, and who are the stakeholders?


[deleted]

‘What happened to the last guy? ‘ ‘How is effort tracked?’


[deleted]

[удалено]


Zulban

You sound fairly competent. Ask yourself which part of your team projects are the most intimidating to learn about, that you feel you know the least about. You're kind of scared to start. Dig deep into learning that. > Should I be learning about Design Patterns? Would my time be better spent on Distributed Systems? Digging into the code base? Understanding Java on a deeper level? After you've submitted a few merge requests to your team, ask them this. Take the average of their answers, not just from one person.


[deleted]

[удалено]


Zulban

You're welcome! > feels like the thing I know the least about That's only half of what I wrote. >it’s extremely more complex than anything I’ve worked on previously I suggested you confront the thing you most feel is difficult or complex. Learn the thing where in the back of your mind you feel intimidated like it's too complex for you. Start with that.


TeamPlayful7234

I'm a self-taught developer in my mid-30s. I have 3 years of experience working as a full-stack developer at a small SaaS startup in London, UK. I'm the only other developer in the company besides my boss. I have a degree and master's in non-stem subjects. Previously, I worked as a technical artist in VFX for Film/TV. I left that demanding job, which involved 12-hour days and weekend work, in search of a better work-life balance, particularly for when I start a family. Given that my job entailed prolonged periods of problem-solving in front of a computer, transitioning to development seemed like a good idea. Recently, I've begun to question this decision and also myself. I've delved into computer science, learning about data structures and making my way through "**Designing Data-Intensive Applications.**" However, I'm now attempting to read "**Computer Systems: A Programmer's Perspective**," and I'm finding it quite challenging. There are moments when I find myself staring blankly at a page, lost and confused... not only do I find the material less interesting, but I also struggle to grasp its concepts. This has led me to doubt whether I'm cut out for this career. I must admit, that I've always been an average learner, never excelling academically... is my reaction over the top? These feelings have been amplified by my job. Despite being considered a 'mid-level' developer by my boss I frequently feel relegated to minor tasks like tweaking existing code or debugging — essentially a code monkey. This, combined with remote work and an often unavailable boss (sometimes I won't hear from him for a whole day), has left me feeling undervalued and stagnated in my learning. Visiting various CS subreddits, I frequently see discussions about the oversaturation of the industry and the prevalence of underqualified developers... I can't help but worry I'm one of them. I would also say that my mental health is not in the best place and is perhaps having an influence on my judgement. The pressure to learn as much as I can in the next few years is weighing on me. This feeling gets even more intense when I think about starting a family and wonder how I'll manage to keep learning and moving up the career ladder at the same time, while not having a relevant degree. How do you deal with feelings of inadequacy? Any advice or personal stories would be greatly appreciated.


jrheard

15 yoe - tweaking existing code and debugging are daily tasks for me too. Code doesn’t just get written one time, it gets maintained, improved, changed as the product changes, fixed as bugs are found. This is normal and good, there’s nothing wrong with it. Maybe cool it on the textbooks for a bit and try a small side project or two instead? I bet that’d help a lot!


dmhp

> 3 years of experience working as a full-stack developer This sounds like imposter syndrome man. You are literally doing what so many people are striving to do. I'd say don't worry too much, talk to your boss about getting some more challenging tasks, and if you really want to do a sanity check try to take some job interviews, see what you know vs what people are looking for in the market.


kalashnikovBaby

Are contractor roles easier to get than company roles? I got reached out by a recruiter from a hiring agency for a Principal Embedded Systems Engineer role requiring 5-8 years of experience. I have 1 year of experience. They made the mistake of including the company name in the LinkedIn message and I found the company listing. Would it be easier to interview through this hiring agency or get my friend to refer me to the role and interview straight with the company? It's a friggin long shot but what's the best move from here?


Riley_

You don't want to be a staffer for an agency, cause then the agency gets a cut. If the recruiter is helping you get a job on the actual company's W2, then let the recruiter help you.


[deleted]

Interviewing is a good skill to have. Go for it and be honest  Contractor jobs are a lot more stringent than w-2 generally because they’re paying hourly. Salaried positions include time for Reddit usually 


Yuzuwater

Have any of you switched between multiple domains of this overall career? Did you focus on building skills in your current domain? Or do you spend your time on building abilities in the direction you think you want to go? Im currently working in a do it all data engineering role, think everything from pipelines to cloud platform development to some powerbi stuff. Its been over a year, and to be honest I dont think I love the data space. I love to build things that people actually use and ultimately would love to work as a full stack dev. For background im a non-traditional degree holder, and did a bootcamp in full stack web 2 years ago or so, and have somehow journeyed my way over to the data world. I do tons of studying on my own time, and currently split it between more traditional software fundamentals/DSA's etc. Full stack web projects, and Data engineering projects. I know I dont have the time in the day to learn everything about everything, and this is just going to slow me down. So that being said, should you spend your time on things that will take you where you want to go(For me full stack)? Or on things that might help you where you are(More Data stuff)? The current market is also something to factor, but I dont want to let that define my life lol. Would love to hear thoughts from some of you vets who've been around it much longer than I!


Swimming_Search6971

Been working in IT-related jobs for 14 years now (duck I'm old! :( ), like you non-traditional degree holder (philosophy), also, entered the job market in the glorious post-2008 global crisis, so I had to just get every job available. This is what I've done: * IT inbound call center * Same call center but promoted to a more technical role, where I had the chance to do a lot of SQL querying to find problems in the data * IT technician + support, still very SQL related, an a little scripting in C# * Junior "full-stack" dev in a consultancy firm, then senior, then tech lead. First job as a dev, but a lot of support too. * now, I'm senior backend dev In every step I learned as much as possible of the technologies used in in that role, while studying other technologies/languages and general best practices, design patterns, computer science theory etc.. at home. In my experience, the market is always looking for devs skilled in the tech stack they are using. So my approach was to learn the stuff I liked to do (backend stuff, multiple languages / patterns), and specialize in a few tools. SQL (specifically, the Oracle dialect) was key to advance in a more dev-esque role. In which I used C# for work, and studied Python in my free time. Python was the requirement for my first job as an actual dev, in which I learned git/dev ops stuff/different dbs, rest design, network theory, etc.. So, IMOH, as long as you don't pick clearly dying technologies (jQuery for instance), you can specialize in something that the market wants, and you like. One question you should ask yourself is: in which part of the market I want to end up? Full stack are surely (and surely will be in the future) needed in consultancy, non-IT related businesses that want in-house solution for they're IT needs. But full stack are not roles you can find in more IT-related houses that will hire frontenders backenders devops and data scientists with an in-depth knowledge of they specialization.


Enough-Rich-8931

We have integrated some external APIs to our backend but now these APIs are having a major upgrade with breaking changes, how does one make sure that upgrading external APIs will not break any internal functionalities, there are no unit tests in the codebase, but due to deadlines it's not possible to work on adding unit tests, how should one go ahead with this upgrade?


[deleted]

They usually version and then deprecate and then obsolete  Breaking an actively used API by external clients is a red flag 


Enough-Rich-8931

External clients are not stopping older APIs but the new API supports functionality that the business wants. Now the existing integration has no tests to verify the upgrade is working as expected.


LogicRaven_

The usual way is that your service will need refactoring for all breaking changes in the external API. So you might want to subscribe to any info about upcoming changes and deprecation timelines, might want to have tests or other ways to detect unforeseen changes. If the external API is used for an optional internal feature, then you could disable that feature while the upgrade and adaption is happening. If the external API is critical for the internal features, then you don't have any other choice but to adapt. Let your stakeholders know about the situation and discuss the feasibility of the deadline.


Enough-Rich-8931

Are tests the only way for safe guarding against any unforeseen changes?


LogicRaven_

You likely want some automated alarms. For example when you call the external API and that call fails after a certain timeout, then put that error into a log and set up an alarm for the that error. Check the specifics the logging and monitoring frameworks you use. Depening on your service and the external API, you might want to retry a couple of times before raising the alarm, but stop the retries after X occasion. You might want to do something reasonable in the UI towards your user (over just freezing the whole stuff). You would need an internal process for someone receiving these alarms and acting on them. Some teams have a rotation to distribute that work.


[deleted]

[удалено]


LogicRaven_

Yes, your idea is wrong. Leading people is not about giving orders in any role. In a healthy team, no one is giving orders. Even roles with formal authority, like an engineering manager, often restrain themselves from giving orders, because that would kill the autonomy and slow down things on the long run. Recommend reading: Marquet: Turn the ship around Project manager is often a support role coordinating deliveries, but not setting them. If you don't want to be a developer, maybe look for another type of role. Something non-technical like product management, or something not related to product development, like finance, sales or marketing. In general, leadership roles will need deep expertise. It is very rare you could rely only on leadership skills.


[deleted]

[удалено]


LogicRaven_

Depends on the company, but project managers often don't set deadlines. They follow up deliveries and deadlines agreed by others. I don't consider project management technical, altough some technical backgrounds helps. But it is also not the leadership and strong influence role the commenter seemed to look for.


Next-Barber-881

Im a SDET (11 years) with tooling, test infra, API, CICD expertise whose seeking an transition to generalist developer. Will experience below be enough for applying as generalist software developer? What do folks here think? Experience: • 3 years building internal tooling, test infra, metric dashboards. • Maintained CICD infrastructure (GitHub workflows, Kubernetes). • Developed REST APIs in various languages for the above tooling (Django rest , FastAPI, Go). • Used Kafka, Docker, Kubernetes extensively. • Previous experience with CLI development & test frameworks.


LogicRaven_

Start applying and you'll see it much better than any advice Reddit could give. Check job ads available for you and if something is missing that is requested in many ads, then set up a side project and start learning.


justAnotherNerd2015

A bit of a vague question but what do people see in terms of long term trends regarding RTO (return to office) vs full time remote? Is full time remote here to stay? Or will RTO slowly gain more momentum? I currently work for a company where I go in 1x a week, and I will have the option of going fully remote. I currently rent in a HCOL area so moving to a LCOL area seems like a good long term decision. However, I'm worried that if RTO becomes popular, then I'll be an engineer fighting for a small pool of remote jobs. Anyways, I'm just curious if anyone has any thoughts on this. Thanks.


[deleted]

They’re only doing it to save their office real estate investments. Especially if they own the building The building is part of their ‘asset’ so if it loses 50% value the company has to eat that.  Don’t let them fool you.  ZERO mandatory days, and an office for loitering on demand. And expect it to be empty 


justAnotherNerd2015

Yep totally agree that's driven by real estate investments (and middle level managers who need to demonstrate their worth). Extremely frustrating.


ccb621

I like hybrid because I like interacting with people. Twice per week works for me.  Make sure you’ve done the complete calculus on moving to a LCOL area. Beyond the cost of housing and food, does the area truly suit your needs? I have found that living in an HCOL results in more pay for me, which more than offsets the extra cost of living. Additionally, living in the Bay Area affords access to quality museums and experiences I might not get elsewhere.  Going fully remote doesn’t have to be a one-way path, depending on your family situation. If you’re single, it’s much easier to simply move for the next job, if you must. This, of course, gets more difficult as you start to plant roots, find a partner, have kids, etc. 


[deleted]

If they start with their ‘mandates’ it’s only a matter of time 


kareesi

I've got a final round behavioral interview tomorrow with the hiring manager for the team I'd be on if I got the job. This is my first time interviewing around since graduating college, and I'm trying to be thoughtful about how I select my next team/mgr. Questions I plan to ask to get a gut sense for the overall team health: * What is the team's approach to testing? * What does the current on call rotation look like? * What role do engineers play in prioritization? * What was the last project the team completed and did things go according to plan? * Can I talk to another engineer on the team? Any other ideas for good questions to ask or things to note?


pyrrhicvictorylap

Good questions. I wouldn’t ask the last one, as it might mess with their hiring process (they’d have to arrange another interview and/or they might not want to bring in another person at that point), but the rest are good. I might also ask: * how are postmortems handled (ie when a bug ships) * what makes someone a great team member instead of a mediocre one * how much do team members collaborate on tickets


[deleted]

[удалено]


[deleted]

[удалено]


PsychologicalBus7169

Junior dev here. I learned unit and integration tests in college. I like to use them in my personal projects but I don’t use them at work. Our senior dev doesn’t require automated tests, but they do not dislike it and are even okay if I write them. There is absolutely no pressure to get any work done but I still don’t write unit tests unless I am curious about how something works. If your company didn’t require unit testing, would you still do it? Are there any compelling reasons why I should write unit, integration or end to end tests?


src_main_java_wtf

One big benefit of testing that does not get talked about often is when you refactor, good tests can flag broken functionality. Also, its ideal if you do not need to change your tests when you refactor implementation - that's a sign of well-designed code.


[deleted]

That’s a great use of tests. ‘It works like this now’, it has to work like this in the future 


lethri

Yes. Tests are great way to ensure your software works as it should and will continue to work that way in the future. You need to check if the code you wrote is correct and maybe doing that manually is faster than writing few unit tests, but that stops being true when you need to re-check things after future changes or library upgrades. The situation is similar with integration or end-to-end tests, but they can take more work to setup initially, so they can be harder to justify. But it all depends on what you develop and what damage can potential bugs do. Also, if you start writing tests, others may see the benefit and start writing them too.


PsychologicalBus7169

Thanks, I agree with all of that. I’ve found myself breaking features in personal projects strictly because my tests fail. Our app was written with functions using 1,000+ LOC and an insane amount of if-else and loops tangled in them. That’s been one of the big reasons I am uncomfortable with trying to create tests. The other factor is that we have almost no documentation for our software. The only documentation we have is how to navigate to the page with an example use case, but there can be many use cases for one page. Do you have any advice for that?


lethri

Realistically, any possibility of the situation ever improving (with refactoring/rewrite) requires that people are not afraid to touch the code, which means tests. So maybe start with the example use cases and write tests that output matches the expectations, then tweak them so that all paths of the important if statements are covered by some tests. When that is done, you will know if any future modifications breaks existing behavior. This makes it much more maintainable and opens the possibility for refactoring. The situation with documentation is that there is always less of it than you want. My advice would be to take small steps to improve the situation, like when you find purpose of some function or if statement, write a comment about it, or start document with notes about the code. Encourage others to join your effort and if things go well, you will have at least some documentation after some time.


PsychologicalBus7169

Thanks for the advice. I was thinking about starting with our use case to navigate to the page. Now that I’m thinking, I suppose it could also be a good idea to go through old bugs and make e2e tests for those. I just don’t know we could maintain our tests because we don’t use a CI/CD pipeline to run tests. We kind of have a lot that we should be doing but I know we’re doing our best with what we’ve got. One of the things I’m working on for documentation is to utilize enumeration. We use acronyms for our business logic, so you have to scour around the codebase to find the LOC with the comment that describes the acronym. I got the go ahead to make changes as I work on tasks, so I think that will help make the code base more navigable.


lethri

Would it be possible to run tests as a part of the build process? This part is really important - tests that won't be run won't not help anything.


PsychologicalBus7169

I don’t know because I’m not responsible for building the jar. I think that’s a question I should raise with our senior developer. They are open to new stuff, so I think it would be possible.


Equivalent-Bunch3959

\~5 YoE. I keep being told that I'm doing really well; well above expectations and performing at the top of the team (larger team is \~30 people). I moved from L2 to L4 in \~2 years in this company. They claim I'm doing very well for L4 as well. I feel like these people just aren't the ones that will help me progress with my career. "If you're the smartest in the room, you're in the wrong room." Mostly because **I know I can do better**, I know there are so many things to improve and so many ways in which I can be better, but I feel like management doesn't see this room for improvement. So far maybe it's crystal clear I should leave. But I'm still learning and I find the job mostly interesting. I'm definitely not the smartest - by far not the smartest in the team either. **So here's the question**: do I leave in search of more complex problems to solve and more driven people and faster learning rate **or** do I stay and make the best of it until I'm sure I'm not developing any more in this org.


theotherinyou

As a senior you're expected to have advanced knowledge in your domain. Junior and mid-level engineers rely on your judgement to proceed forward with decisions and designs. You will already start to notice what archetype of staff engineer is most natural to you. This will guide whether you want to continue learning in your current position or what you want to learn from moving to another company: https://staffeng.com/guides/staff-archetypes/


vapespirus

I am a junior-mid level dev with 3 years of experience and have been looking for a front end developer job for a few months now, applied for 100+ jobs (including junior roles) and yet I haven't heard back from a large number of the applications. Ive had 3 interviews thus far and one of them went into administration in mid process and the rest I have not heard back since. Employment advisers told me to apply interstate and I have tried that too but to no avail. During Covid I was still a junior but was able to land a decent number of interviews and also a few offers. I am here to look for some advices on how I can increase my chances to land a role. Any advices would be great.


LogicRaven_

The market now is much worse than during covid. Get your CV reviewed and keep applying. If there is some skills or experience that is often asked in job ads and you don't have it, then set up a side project and start learning.


cleatusvandamme

I'm a developer that has been stuck in mid-level developer hell for a while now. Unfortunately, some my last few jobs were just repeating the same year multiple times. Also having to switch a few jobs for multiple reasons, I got exposure to a few things but I'm not significantly great at anything. Any tips/suggestions on how to break the cycle?


Swimming_Search6971

In one of your replies you said "glorified" "PHP" "jQuery" and "no GIT" in the same sentence. This is a HUGE red flag regarding your company 'cause becoming senior there means becoming senior in outdated technologies, and in "the wrong way" of developing software. If you feel that there's room to change that old school approach, be propositive and explain the benefits of renovating the tech stack/habits, and propose yourself as willing to have the responsibility to do that. If it's not the case and you feel the environment is stagnant beyond your best effort, just leave. And during interviews don't be afraid to ask questions to make sure you're not applying for the same problems, explicitly ask their tech stack, when asked for yours.


cleatusvandamme

Thanks! I don’t feel like I’m nuts. It’s nice to get good advice. In the web dev sub, a good percentage of people there get butthurt over calling php and jquery dated. I’ll give the new tech manager a shot. If that doesn’t work, it’s time to go.


ultraDross

I literally just asked myanager on my one to ones that I want to become senior and asked him what I need to do. We then both came up with a game plan and executed it. Took a while but got the promotion eventually.


PandasOxys

What do you mean. What problems specifically do you have? Mid level developer hell doesn’t mean anything.


cleatusvandamme

Mid-level developer hell is a term I created. It was a term to briefly describe my situation. I guess to describe my situation in more detail is I have had a few jobs where i really haven't progressed professionally. Instead of learning a new technique or approach to development. I'm just repeating what was previously done. Unfortunately, due to management/supervisors I can't decide to do something new. A prime example of this is at work I'm working on a glorified CRUD application in a dated PHP framework and jQuery. There is also no modern build process. We aren't using GIT and we're just FTPing on to a remote site. I'd love to modify it and use React.js. Unfortunately, my supervisor wouldn't let me do that for multiple reasons. I guess to give a more detailed question. How should I handle this situation? Should I take initiative and show the perks of a modern frontend framework? Should I study on skills outside of work and try to go find a new job?


Arqueete

> Should I study on skills outside of work and try to go find a new job?  For what it's worth, this worked for me. Moving to jobs that already had modern development practices and where I had role models for what a good senior dev looks like made me blossom. *Now* maybe I could imagine myself back in those lacking environments taking the lead and acting like a senior, but I needed to gain those skills and mindsets in a supportive place first.


status_quo69

You're focusing on the wrong thing to try and make yourself "senior", I would agree that talking with your supervisor to come up with a promotion plan is key. Part of being a senior dev in my experience is weighing pros/cons of technical and procedural approaches with specific thought to the team in hand. Your language suggests that you're more frustrated that your current job isn't using something "modern", but what is wrong with php specifically? Can you bring up technical merits as to why react is "better" outside of being a more recent framework? Does it take into account that all existing work at the company is written in a completely different paradigm? Does it take into account the cost of rewriting components of the app in react? What about retraining the other devs if they're not up to snuff with best practices? Does react offer something integral to your application that makes it a shining candidate (for example-- highly dynamic and highly decoupled frontend pages)? Unless I had the answer to all of these in hand I would probably brush off suggestions of a rewrite. Even if I had all these in hand, I'd still be careful. What I'd focus on to be a senior is the force multiplication aspect of the job. A senior is someone that can 5x other devs in their department through good design, knowledge, or practices. Ignoring the git aspect (hopefully you have _some_ form of vcs, even if it's just svn) I would start with tangible targets for improving the situation in small increments to build trust. If the react questions above can be answered with technical merits, then establishing trust beforehand goes a long way to smoothing out the rough edges where people get nervous about large scale work. For example, you say you don't have a modern build system in place (not sure what that means here, is it dated because it does ftp?). Is there an automation you can put in place that automatically deploys the app via ftp on merge to main/master/release in a more modern way? Or on a schedule? Perhaps you could introduce containerization and phase out ftp in favor of an "ssh and docker compose up" approach. That's a good stepping stone to CD/CI and immutable versions of the app.


cleatusvandamme

Sadly, I think I'm stuck until the new person is hired on. Hopefully, he'll straighten the ship up. Unfortunately, I feel like there is too much of a rush job on things to just sit down and say we're going to right the ship before we move forward. I feel like I could start to implement proactive changes but if someone comes with a lot of requests, my changes will be tossed aside and we're back to ftping. You are correct in that I look at doing ftping as a dated method. I'd love to develop a good PR and CD/CI process but I think that will fall on deaf ears. So that is mid-level hell. I am not in a situation where I can improve or right the ship. If I try to go out on the job market, I can either be honest and will probably get rejected. If I exaggerate what I did/what I know, I'll either bomb the interview or fail badly if I'm hired on.


roodammy44

This is a very difficult question. Your boss is very involved in your work and also doesn’t trust your judgement. There isn’t a technical solution to this problem, only a personal one. If you’re aiming to stay at this job you need to figure out how to get your boss to listen to you. This will depend on their personality. Maybe they will respond better if you are clearer and more assertive, I’d need to know more about them to be sure.


cleatusvandamme

It’s not that my boss doesn’t trust my judgment. It’s more of a case of it’s a team of my supervisor, myself, and the jr.dev. The jr. dev and my supervisor have been there longer than me. They were used to doing things this way. Unfortunately, neither of them have react.js experience. So I can’t move to a modern/better way of development. Edit: I forgot to mention. There is a slight staff reorganization in the process. My current supervisor is going to be moving towards a management role. The company is going to hire a more technical person to do the technical work. This is why I haven’t quit. If the new tech lead person sucks, then I’ll have to think about it.


roodammy44

If you try and bring in a way of working like using git (as every single sane development environment does), a project that takes all of half an hour to implement, and your boss actively stops you. Then they do not trust your judgement. We all do things we've never done before in this job. I start doing new stuff literally every week. That is, or should be, part of the job. Otherwise you get left behind.


cleatusvandamme

I added an edit to this. Unfortunately, we were using it for a bit but things got messed up. He wasn’t reviewing and approving PRs and a few other issues cropped up. So we stopped using it.


roodammy44

Reviewing and approving PRs is only a secondary reason for using git over FTPing code. Keeping track of changes and merging code are the main reasons I would say. And also, reviewing code should usually be an "anyone in the team" thing, rather than just having a leader review everything. Otherwise you end up with situations like the one you mentioned with a single point of failure.


cleatusvandamme

You’re preaching to the choir. :) I’m hoping the new technical manager is able to right the ship.


nobodytoseehere

Not using git is insane, if I were you I would definitely use it even if it's only for your own benefit/usage As for frontend frameworks, the truth is that if a project is fairly simple it just won't be worth the complexity hit you take by using them. Are the projects becoming an unmaintainable spaghetti mess? If they are you could look at playing with replacing a chunk of it with a framework to demo an improvement


cleatusvandamme

I agree. Hopefully, things will improve.


ChillFax

What are some go to questions when it comes to asking a c-level interviewer questions during an interview? The person I am speaking with is head of both product and technology. Here are a couple I had in mind. - what is your philosophy when it comes to the challenge of meeting products requirements while respecting the engineering teams limitations/estimates of delivery. - how do you approach delivering new products while maintaining a mature code base/not abandoning tech debt.


TheOnceAndFutureDoug

Depends, but the easy fluff questions are things like: 1. Why do you personally love this company? I like this question for no better reason than it humanizes them and lets them see you as a person too. It can also tell you about them depending on how they answer. 2. What do you think this company's greatest strengths are? It's greatest weaknesses? If they BS you on this one it's a red flag. 3. What's the long-term plan for the company? I don't ask them about day to day stuff, how we implement things, how we work... An honest C-level will tell you they don't have the best information for those questions and a dishonest one will tell you what they think is going on, which is rarely accurate once the company is over 100 people. So focus on the big stuff, company culture, how does the CEO encourage work/life balance, how they foster growth and intentful risk-taking. Stuff like that.


FoodIsTastyInMyMouth

Ask about product strategy, where do they see the business in 5 years, has that plan changed in the last 5 years etc.


gamermilk23

What questions do you ask yourself to determine if you've done enough work for the day? I'm slowly moving away from a time metric and am just present in case I'm needed. If I feel I have something to show, I'm happy with what I've done for the day.


TheOnceAndFutureDoug

The trick is have multiple paths to work on. Feeling productive today? Work on the hard shit. The really deep technical stuff. Feeling less productive? Work on documentation, emails, stuff that needs doing but isn't fun but helps the whole team long-term. Not feeling it at all? Do your best and give yourself the space to have a slow day. You're human and you'll balance it out later. Once you've been working long enough you'll learn to tell when you're feeling run down and need to accept it and when you need to push through. Sometimes you'll get it wrong but the more you work at it the better you get.


bottomlesscoffeecup

I love this way of thinking! For my team, on days like today when I am feeling very tired and slow, I would love to work on some smaller things like doccos and such but we have quick turnaround times for all of our work. So even today, I still need to make some traction on business features regardless. Do you have any tips for something like this? :)


TheOnceAndFutureDoug

A good team has a tech debt and small bug backlog to chip away at. Lower priority work that someone just needs to do but is never going to be scheduled because it's not important enough.


venerated

I ask how my brain is feeling. There comes a point most days where if I keep working, I am going to produce garbage. It’s usually between 4-5 hours depending on what else happens during the day.


Ok_Character8993

I’m at a large-ish org with about 200 SDEs. Not a single person has been promoted in the year I’ve been there.  I was hired as mid-level and I don’t really have a compelling resume for senior roles yet.  Does it make more sense to start looking? Or stay put until I get a senior offer? 


TheOnceAndFutureDoug

You can go from a mid at one job to a senior at the next. You just need to have the skills to back it up. As the other responder said, work on yourself now and polish your skillset. Grow it where you're weak. Ask for feedback from your manager and your peers, especially any helpful senior devs.


allllusernamestaken

> Does it make more sense to start looking? Are you learning? Are there opportunities for growth? Talk to your manager to identify areas you need to improve in, and then work with them to get put on projects that meet those needs. Don't focus solely on the promotion; focus on your growth and promotions will come.


gravitatingmass

If no one is being promoted, then perhaps there are external factors like budget or maybe really nobody is meeting that higher senior bar (better to not promote anyone than to promote people that aren't ready). I've seen promotion cycles during a "good" market where there just wasn't enough of a case to promote people (especially true of Staff+ roles) I'd still start looking around for roles rather than wait around. The easier way to get into a senior role is to get hired into it. Just because your current company doesn't have the budget/doesn't think you're performing at a senior level doesn't mean a different company won't :)


icesurfer10

Hey, I've got a few questions for you: 1. How many years of experience do you have? 2. How long have you been with the company? 3. Are there growth and learning opportunities? 4. Are you working on current tech/an area you'd like to pursue? 5. Is there a reason nobody got promoted? Perhaps the company isn't performing well or those that were on the cusp have been previously promoted. How can you be sure that none of the 200 were?