Profile picture

Code Quality Q&A and Videos

About Code Quality

Looking for company with good code quality

Staff Software Engineer at Taro Community profile pic
Staff Software Engineer at Taro Community

I am thinking about finding a position at another company. But I am concerned about how to find something suitable. I am considering moving because I would like to work and learn at a company that practices better code quality: better separations of concerns, better testing. I've learned recently that code quality corresponds closely not only to speed of development, developer happiness, but, also stress. I don't know though how I would know about code quality from the interview process. I can imagine maybe asking multiple engineers from the company what they think during the interview process. Maybe ask engineers that I've worked with before from the company. Also, some companies may be reputable like Google. Or maybe some famous engineers work there like ThoughtWorks.

I am currently a Staff Engineer at a company, and I've worked for almost 6 years there. I've also been promoted at the company. I think there are factors that are important for me that keep me there. A flexible vacation policy that is actually flexible as I've usually taken about 5 weeks off a year, commitment to remote work, flexibility to set time off during workdays. On the other hand, even though I am one of the top committers to our code repository, I am not sure if I am getting credit for that here.

One thing that worked really well was that I started at this company when engineering was around 30-40 people. That meant work time was stable unlike an early startup, but the company was at an early enough stage that I really got to know a large portion of the code base, over multiple functional areas, before the code base kept growing and new teams were formed.

Regarding programming language / framework, I would prefer Scala. I also would like to learn ZIO. But I think that's secondary to the factor regarding code quality.

Could you give me advice as to how to search for jobs given the different factors that I've listed?

Show more
Posted 7 months ago
333 Views
5 Comments

I have terrible attention to detail - how can I fix this?

Entry-Level Software Engineer at Taro Community profile pic
Entry-Level Software Engineer at Taro Community

I am a mid-level engineer at an HFT company. I've been with my current company for around 7 months and another similar one for 2.5 years previously. My biggest career issue so far has been poor attention to detail, which leads to me to always miss small mistakes I make.

For instance, I always review my own PRs myself before sending to reviewers, and clean up plenty of issues I notice myself. But then my reviewer will point out some kind of bug, or something I forgot to do, and in retrospect it will be immediately obvious to me. Alex often mentions the importance of being able to get most of your PRs accepted in one attempt, but for anything > 30 lines this simply feels like a pipe dream because I am so terrible at noticing things until it's too late.

(For the record, I'm very thorough with test coverage, but when I simply forget to implement something, I of course forget to test it too).

Another more specific example is that our process of verifying features in production is sometimes a bit involved, and requires changing config in several places. I knew what to change, did so and tested everything, then told my manager the feature had been verified. Later on he was looking at the configs (not sure whether he did it to check my work or for some unrelated reason) and pointed out that I did not actually set everything as I intended to, and therefore the feature wasn't verified correctly. I realized mistake I made (ran a command to change a bunch of files in the wrong directory) but only after the fact, and it cost me embarrassment and extra work.

I think I'm quite good at the other aspects of software engineering: coming up with impactful ideas and executing on them independently, picking up domain knowledge and areas of the codebase quickly, fixing bugs (my own or others'), presenting on my work, etc. So I've been able to eke out "meets" and even "exceeds" reviews at my first job because I had significant impact despite blundering all over the place.

But my deficiencies in this area make me fearful for my career, as I am always worried about making just enough mistakes to get PIP'd or fired. Furthermore, we don't have levels here, but I doubt I can make it to the equivalent of Staff or even the senior level with this kind of defect.

Does anyone have advice on how I can "train my brain", as it were, to improve at this ASAP and make sure I don't go down the wrong trajectory? Thanks!

Show more
Posted 7 months ago
179 Views
6 Comments

What counts a substantial commit / diff for Meta/FAANGMULA companies when evaluating developer productivity?

Senior Software Engineer at Taro Community profile pic
Senior Software Engineer at Taro Community

When evaluating folks for promotion or in general developer experience in terms of measuring productivity of an engineer (junior, mid-level all the way up to tech lead), how is this measured when building any one particular project for 3 months?

I see Alex talk a lot about # of commits when evaluating the work of a code machine and watched the course he had on code quality, but can we give a more concrete example of what would be considered a single commit in a day/week that is substantial enough to satisfy at as such for a responsive web app, or a native (Android/iOS) app on any particular project?

I am thinking of scope since a lot of the time I can build a prototype from scratch - everything sans deploying fully into production (for an AI project or some other responsive web / native iOS app) within two days (think hackathon style) but not completely sloppy or super polished, but something working/basic functionality (and that has a number of commits), but I think I'm having trouble grasping what number of commits on any particular stack is considered substantial in a single day/week and expectation wise per month or quarter on a intermediate vs. long-term project for two quarters or a year? I think I lack clarity and wonder if I will be as performative or hyper-perform compared to my peers (like I can code fast and even without using a CoPilot, but I wonder about code quality and depth rather than simply throwing something together or fluff commits - a bunch of installfest does not count, obviously).

Show more
Posted 6 months ago
113 Views
3 Comments

If I like everything, what should I specialize in?

Entry-Level Software Engineer at Taro Community profile pic
Entry-Level Software Engineer at Taro Community

I just watched Alex’s ”Level Up Your Code As A Software Engineer“ course. I wanted to ask about the first portion of the “Better Code Strategy” module.

A part that resonated with me is where Alex said he sees many junior devs fall into a trap of full stack when trying to specialize, which hinders them in the long run. It makes total sense that people would rather hire a 9/10 on front end than a 5/10 at front and back. I was in this situation at my previous employer - new grad role with a 4 month ramp up program. I didn't do so well on front end in training, and was told that I’d be placed in a back end role, so it “wouldn’t matter anyway”. Guess who got placed doing front end work? I had barely any support so I had to figure out everything myself. I was the only front end person on that team - the only other dev there was an L6 in back end. I also wasn’t good at communicating back then, so I was hindering the team a lot. 9 months later, I started handling front end. And right when I got good at handling front end tasks myself, I was told the architects wanted the apps my team was working on to make API calls to the backend rather than mid tier… so the team shifted focus to backend. I lost all my gains on backend by then, so that sucked. Another learning curve, within 2 months I gained independence. A week after I was told I was doing really well, I was laid off. Many people at the company outside of my team voiced that they put me in a "bad" position. I also point the finger at myself, because there was a lot that I needed to take accountability for.

Eventually, I got another job, doing database work. When I look at SQL, I see consistency in SQL and other coding languages. APIs, cloud, data, it all needs databases! To understand the world of code, it’s like everything draws back to databases. In my current role, as long as I pass the onboarding phase, then I can achieve excellence anywhere I go in my career with incredibly transferrable skills. Although I feel like I found where I’d like to dedicate time to specializing to get to the upper echelon of software engineering, I noticed I’m somebody who doesn’t mind what I do because I like everything I’ve seen so far. That’s why I figured to go for the niche that is “best” for all around career growth. With this in mind, what do you think the best fields to specialize in are?

Show more
Posted 5 months ago
80 Views
2 Comments