Hacker News new | past | comments | ask | show | jobs | submit login
Ask HN: I am a slow developer. What can I do with this?
20 points by touristworker on Feb 3, 2022 | hide | past | favorite | 28 comments
I am almost 40 and have been working as a fullstack and frontend web developer for last 12 years as a contractor or a full-time employee for different companies. I learnt and familiar with quite a bunch of tech stack, libraries and tooling around it, using them when needed.

During last 3-4 years I had to end my relationship with with 3 clients/employers due to me being slow in producing code. The reason was always - I cannot deliver as much as my colleagues could or as the employer expected me to.

I am good at communication. People I work with always say I am nice to work with, adding vitality to the daily team work, but eventually things go worse as I am usually slower than my colleagues.

I sincerely love technology, web stuff, API, structuring, organising and connecting things together, but it ultimately takes more time for me to get things done than other people.

The problem is quite clear to me but I don’t see the way to improve the situation. I cannot deliver faster because I already optimise everything I can. Even during the tech interviews (one was just today) I see that I don’t achieve the expected result.

If the time pressure is lower, at the end I deliver high-quality readable code, but the time is always the part of the formula, and I understand it, because business needs everything to be delivered faster and sooner.

I feel quite sad and depressed when I see how easily and quickly my colleagues get into the problems and find solutions while I have to spend more time and as a result I question myself as a professional.

How can I improve or should I lower my expectations for the employers and look for less-demanding lower-paying clients/companies? Should I switch to some other tech area where the time to deliver is not the key factor (are there any)? May be there are techniques to improve my thought process?

Any advice is appreciated as I feel like if things keep going this way, I won’t be able to keep staying on a par with other developers around.




Could it be that their standards of quality aren't up to yours? If they're slapping shit together, hoping it works, and you're actually doing it right... you will always be slower.

Look at Advent of Code, for example. I'll never, ever, finish in the top 100, if you watch the videos of people who compete at that level, you see they start writing code before they've even had time to read the entire problem.

Quality takes time. Some of us have a higher standard, below which we will not go, which makes us slower in the short run. It also makes us faster in the long run.


It's enjoyable to think I am good and they are bad. That means I don't have to change anything, but in practice it won't help me to get next good-paying and mentally rewarding job. So, I prefer to think I am doing something wrong, or I have something in myself to improve and by doing that I take things under control.

And in the end, if there is something I can improve and I perform steps for the improvement, I have more hope I am getting better and valuable as a professional.

On the other hand, if I am good, and they are bad, what do I do? Find a `good` employer? What if I won't?


I just wanted to comment that you are not alone here. I am 43 and have been building websites and web apps for over 10 years and always feel i am the slowest dev in the room. It gives me insane imposter syndrome and causes me extreme stress on the job. I spend hours after work trying to keep up on some projects and still feel my colleagues are running circles around me.

I'm not sure what the answer is, an came here hoping to find one, but I just wanted to say I'm glad to see I'm not the only one that faces this, and neither are you.


My dream is to build my own product and I feel like I am ready to start, and I have some ideas I analysed, researched and thought a lot for some years. But, I still have to collect some amount of money that makes it possible.

Thank you for the honest reply, I really appreciate it and it makes me the feeling that people eventually face this problem, and hopefully can see a solution.


Funnily that is also my dream and I have been (slowly) working on making this a reality so I can just be an imposter by myself. But after months (even years) Eurotripr.com is no where near an MVP. I'm even too slow to focus on my own things.


I have a pet theory that "Turing complete" slow people just need debugging.


Me too. I'm slow and it's stressful.


It's hard to give generalized advice. There are many reasons why development is slow and it's only partly up to you. Getting packed with too many responsibilities can easily make you slow especially if you must also do typical operations/PM/junior onboarding. Sometimes refusing more work is the best thing to do and sometimes due to turnover it's just better to leave.

Since you've mentioned fullstack I guess this means you decided not to specialize. Being a little bit of everything is useful for some types of companies and work but is one source of also being inefficient. It's easier to pick frontend, backend, ops or some other specialization. Backend development is a bit more stable than FE but it depends on your taste. Having less specialities means its also easier to fit into certain job postings and crunch through the interviews but it seems to me you don't have an issue there. Being more specialized also passively makes you more efficient in that domain.

Also note that by switching jobs per year you've probably spent half of that time being onboarded. Obviously you'll be slower during the first few months at works unless you're doing something very standard and well defined. I'd also question the underperforming part. Is this due to overpromising? I've regularly worked with devs who overpromised and underdelivered. The trick here is also to properly time those estimates and take on as much work as you can carry. Note that when a company wants to get rid of you they'll always say its a competitive market or claim underdelivery but the real reasons are much more varied.


When a piece of code runs slow, the way to address that is to use a profiler to figure out where the slowness is coming from.

Perhaps it's worth trying to track what's the bottleneck in your workflow, compared with someone who is "faster", and then figuring out ways to remove those bottlenecks.


* Avoid OOP in JS (don’t use this). It buys you nothing, greatly expands the size of your code and vastly complicates maintenance.

* Be clear about requirements. If the requirements aren’t clear push back before doing any work.

* If you are working defects expect reproduction steps, a test location, defect state, and desired state. If this isn’t clear push back on it.

* if you cannot deliver code, because the work environment is shit, then deliver better documentation.

The problems I encounter at my work is that just about every is slow. Those who aren’t appear to hoard product knowledge and are really shitty at communicating. I really want to say that is intentional behavior but I just think it’s actually a mix of shitty code, fear of writing, and aggressive posturing by people who want attention compared to everyone else. The key failure here is that the employer rewards hard work without quality checks.


I agree, I went away from OOP in JS/TS years ago and don't see any need to use `this` these days with the functional approach.

Requirements, unfortunately, often are not clear from the very start, and more than that change, and actually their change is the part of agile processes, so I cannot dictate business to change this approach.

For tests and investigating bugs - totally agree, I always try to adopt the technique of providing the stakeholders with steps to reproduce a bug, including the very smallest factors - user/login, resetting data to the initial state before reproducing, checking the OS, date, language and so on.

In regards of the bad env, I try to improve it step by step. Even a small step is good, because it's always better to go through 15 steps rather than 16 to start app, to perform some user operation etc.

Thanks for your notes!


Requirements will change. This is a fact of life and must be solved with a combination of soft skills and business acumen. It must be known to the project/product leaders a change in requirements may impose rework and as such will invalidate any prior estimate. Furthermore it will require a new test plan. In a mature environment these things are clear before the changes arrive to you. In an immature environment these are risks and consequences that must be communicated back.

Sometimes poor development environments are a reflection of culture. If that is the case only a leadership solution will set things on a more productive direction. In cases where leadership is present and engaged a poor development environment is the result of missing technical guidance, which is likely due to a disconnect between a plan and actual implementation reinforced by developer driven decisions. Developers should never drive the direction of a product unless they are stakeholders with liability.

Just to be clear I am not a software leader. I am just an individual contributor, so take this with a grain of salt. I am a military officer though, in a secondary line of work, with director level responsibility and a large staff.


How did you uncover or discover these tips?


A combination of writing personal code and watching failure occur in real time over a long career.


Younger does not necessarily mean faster. I’ve done process improvement in the past and it boils down to three things people, tools and process. Take a look at YouR tollchain (ex do you have any code suggestion ai in there?) and the delivery process end to end. If you’ve exhausted those two take at look at how you approach problems. Make an list of changes and start with the simple improvements. Rule of thumb is you will gain. 80% speed improvement with 20% extra or 0 effort depending on what process area was changed ( people , process, tool)


Yes, I am looking for ALL possible ways to simplify my work. I use WebStorm which is really good about auto-suggesting, refactoring and renaming variables or functions. I really love it.

As what relates to the 80/20 rule, I will have to review it again, even though I hoped I did all the possible optimisations, may be there are more.


You mention webstorm and while I'm not familiar with it are you by any chance working on JS or other dynamic codebases?

I've tried a few dynamic languages and I Just. Can't. Do. It. Everything seems so painful and slow. The way my brain works is I scope out the types and then use intellisense to fill in the gaps.

I can absolutely fly through code when I'm not keeping a bunch of useless context in my head but put me in a language without a strong IDE and type system and I'd produce little.


Consider other roles that lean more on your skills outside of the code-editor, but still allow you to leverage your technical prowess: structuring, organizing, connecting things together...

- Move into leadership/mgmt? - Project management? - Product management? - Sales Engineer? - Solution Architect?


Did you get slower, or did this start being a problem now (not 5 years ago) for some other reason?


If you mean any kind of physical or mental issues I could face recently - definitely not. I have a family with 3 kids and my beloved wife supporting me.

I suppose it can be a result of me thinking of my career and what I can achieve by what actions. And, probably, I can admit that I am not as hot these days about making others' dreams coming true rather than some my dream, which makes me not so passionate about spending 12 hours a day to deliver some code.

These days in relations with the employer I think more about having a balance between what I get and what I give, rather than hoping for the boss to notice me and rewarding me a high position or an equity.

This allows me to plan how much income I can put aside in order to eventually start my own product/business.

By asking your question you made me to sit for quite a long time and think about that "other reason", it's quite insightful, thanks!


It sounds like you're saying that you did become slower. I.e. you weren't always slow. However, it isn't due to health. It may be constructive for you to figure out where the efficiency went. Perhaps start with when it went. It could be something that you could reverse, or it may just make it clear to you what you're trading off.


Can you exclude that this is a mental health issue? Something like ADHD, autism, sensory overstimulation might lower your productivity in subtle ways. This is also true for some kinds of bodily malfunction.


Sound maybe being in a big corp that moves slowly would be a great fit?


Looks like if I go that way, I will go down even more in how I work, rather than raise the bar and try to achieve that.


Maybe go for a job where tech is less tolerant to bugs, like embedded systems / IoT? I don't know much about these, but I would assume that people go slower there.


I do some IoT pet projects and getting deeper into soldering and wiring (just as an amateur) with ESP32, Arduino, Raspberry, and all things around to build toys, agriculture, home automation and other kinds of projects.

These can be indeed exciting to build and work with, probably I can contact some guys working there.

Thanks for the advice!


I have heard that banks move slow and I think they should value robost code than fast iteration. May be you should try working in banks or some something similar.


TLDR: Compensate slowness with attention to detail, clear communication and better documentation.

The kind of person you seem to envy are people who are most likely pattern-matching against their past experience. I attribute this quick thinking to having come across those same/similar problem statements earlier. But getting there requires a good understanding of the problem space. This can only be done by spending time in the problem space and paying attention to details.

When working on a new problem these days. I feel like I slow down too. I now tend to go for the details. What I cannot make up in speed, I make up for with detailed solutions, thinking from the user's perspective, staying aware of trade-offs, watching out for unhandled scenarios, etc.

I also document all my work. Whenever I start working on a problem/ticket/issue, I create a new note in my personal note-taking tool. I document the commands, the new findings, etc.

Fun fact: For a limited time, I fulfilled the role of a Product Manager at my recent workplace. The engineers I worked with loved the amount of detailing in my product specifications. This was the result of slowing down and paying attention to the details. The above qualities/choices also resulted in me playing the implicit role of QA for the team. The concept of "implicit roles" is explained pretty well in this blog post on the StaySassy blog [1]

I try to compensate my slowness with attention to detail, clear communication and better documentation.

Attention to detail is as good a quality as quick thinking. I like this way better.

P.S: I actually wrote a long comment in response to this thread and then turned it into a blog post for myself [2]

[1] https://staysaasy.com/management/2021/01/21/Step-Back.html

[2] https://www.define.run/posts/details/




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: