Coffeehouse Thread

96 posts

Forum Read Only

This forum has been made read only by the site admins. No new threads or comments can be added.

Where do smart people go?

Back to Forum: Coffeehouse
  • User profile image
    Jan​Kratochvil

    I live in Central Europe and I have experience with working for IT companies of all sizes: a small dev company, a mid-size company making software for financial houses or a top five system integration and outsourcing corporation.

    But I've struggled to find smart people anywhere. As a developer, it is in my opinion critical to have people that are smarter than you around. Otherwise is is really tough to progress your skill when working with people who do not really care about programming, it is just about money for them. These kinds of people usually produce very sub-par quality code that is extremely frustrating to navigate, debug and modify. To give an example, I've been assigned to add functionality to a recently written WPF based application and there is no MVVM, DI or OR/M. Just XAML + codebehind + native SQL which is not very exciting to work with.

    I guess my question is, are there some specific characteristics that I can look for when searching for companies that contain smart people and the development experience will be more fun? Because I have no clue how to identify these job opportunities and the time I get with the company's experts during the hiring process is very limited.

    Thanks for any advice.

  • User profile image
    Simo

    In a word ... London.

    But, it's quiet a tough market at the moment. Though if you do know WPF inside out you'll have strong hand.

  • User profile image
    evildictait​or

    It's easy to see where the talent is in computing - just look at the technology you use everyday.

    Facebook, Google, Microsoft, Amazon, Apple and so on are all recruiting if you're good enough.

    The only catch is that you'll probably have to move. The technology giants like to have big hubs in capital or second cities - it's rare to find them in rural places.

    Alternatively you could join a research or a consultancy group - you'll probably find some smart people there too.

  • User profile image
    Jan​Kratochvil

    @evildictaitor: I get that I need to move, but because I'm in my early 20s and I am a student it is really complicated to move at this point in my life. 

  • User profile image
    evildictait​or

    @tobleroneisbest: On the contrary. You are better placed to move now than at any point in your future career. It's much harder to move around when you've got a wife with a job, children in a school and a house with a mortgage.

    Being in your early 20s is the easiest point in your life to move around. If and when you settle down it'll be much harder.

    If you're still studying for school or university, you should finish that first though.

  • User profile image
    Dr Herbie

    @evildictaitor: +1.  The time to move is once you have completed your studies; when you have very few responsibilities to serve and you have freedom to go wherever you can.  Almost everyone I was at University with moved to a different part of the country and some moved to different parts of the world straight after they completed their courses.

    Herbie

  • User profile image
    spivonious

    @evildictaitor: +2. I wish I had waited to buy a house. Now I'm stuck in this area until the housing market starts going up again (my house value has stayed pretty flat).

    Smart people seem to be at Microsoft, Apple, Facebook, Google, and Amazon right now. Looks like a move to the west coast of the U.S. is in order.

  • User profile image
    MasterPi

    , spivonious wrote

    Smart people seem to be at Microsoft, Apple, Facebook, Google, and Amazon right now. Looks like a move to the west coast of the U.S. is in order.

    But then there's also talent moving to the East Coast as well. NYC financial firms as well as a couple of startups in Boston.

  • User profile image
    MasterPi

    , Dr Herbie wrote

    @evildictaitor: +1.  The time to move is once you have completed your studies; when you have very few responsibilities to serve and you have freedom to go wherever you can.  Almost everyone I was at University with moved to a different part of the country and some moved to different parts of the world straight after they completed their courses.

    Herbie

    Yeah, basically all my friends (myself included) did the jump from east to west.

  • User profile image
    kettch

    On the west coast, you could also take a look at Portland. I despise the place, but there's a lot of tech going on there.

  • User profile image
    magicalclick

    If you want technical mentorship, big tech company is the place to go. But, imo, I dislike the word, smart. Mainly because people use it in such a narrow perspective, as in, book smart or tech smart. You can still learn so much more from less technical peers. There are social, politics, creative thinking, intuition thinkers, sly fox, and more. You can learn from them just as much. Even obsering  unsuccessful people, you can learn from them.

    You certainly want to have tech buddy connect with you at deeper level. But  remember to value less technical people just as much.

    Leaving WM on 5/2018 if no apps, no dedicated billboards where I drive, no Store name.
    Last modified
  • User profile image
    vesuvius

    , tobleroneisbest wrote

    I live in Central Europe and I have experience with working for IT companies of all sizes: a small dev company, a mid-size company making software for financial houses or a top five system integration and outsourcing corporation.

    But I've struggled to find smart people anywhere. As a developer, it is in my opinion critical to have people that are smarter than you around. Otherwise is is really tough to progress your skill when working with people who do not really care about programming, it is just about money for them. These kinds of people usually produce very sub-par quality code that is extremely frustrating to navigate, debug and modify. To give an example, I've been assigned to add functionality to a recently written WPF based application and there is no MVVM, DI or OR/M. Just XAML + codebehind + native SQL which is not very exciting to work with.

    I guess my question is, are there some specific characteristics that I can look for when searching for companies that contain smart people and the development experience will be more fun? Because I have no clue how to identify these job opportunities and the time I get with the company's experts during the hiring process is very limited.

    Thanks for any advice.

    You need to determine the "culture" of the establishment, which is generally hard when you are younger. If you go for the biggest companies - Microsoft included - then it is more than like that you will be working on Legacy technologies or technologies that are not easily transferable, so you can only ever work for a handful of companies. Some of the most interesting work I have done in scientific and engineering domains has paid far worse than less interesting corporate/enterprise software.

    As time progresses, you will find that the reason most code bases are like the project you described is due to Scrum/Agile methodologies that just do not focus on quality. It is an excellent project management tool, Management like it because it allows for greater transparency, but the focus is on coding to get a usable bit of code ASAP, however pretty or ugly.

    This has the benefit for allowing companies to bring products to market quicker, and since very few software is like Word or Visual Studio nowadays, this disposable way of coding is why you end up with no MVVM or ORM, the guy that coded it was quick and dirty, more than likely because the owners of the company did not want to spend 6 months on the project and allowed for a budget of 3 months. That is the reason why there is a lot of bad code about. Developers nowadays are under an incredible amount of pressure to produce code like it is coming off a production line, this is why Visual Studio and Windows are generally far less stable until the first service packs than years of yore, since this is the practice that Microsoft uses. I watched an entity framework video a few days ago that had an unbelievable bug in it, so even though Microsoft will say that they have performed the greatest amount of testing of product X in the world ever, Windows 8 and Visual Studio 2012 will be riddled with bugs. I am not singling out Microsoft here, because pretty much everyone up to and including Apple develops software this way, and why the next time you open iTunes it will ask you to update.

    Someone like you will more likely be looked at as unproductive, because you are aiming for perfection all the time, so if you pick a company to work for where "quick and dirty" is mantra, for all your smartness, you will more likely not be offered a permanent role because you are not as productive as the person that wrote the WPF application with no MVVM, its clearly not right, but this is how the world tends to work, so I would focus less on complaining about other developers, but on improving whatever scrambled mess you find, and leading by example.

  • User profile image
    Charles

    I'm not sure you're using the correct terminology here... Writing good code, designing modular systems, generic architecture, etc - these aren't just about being smart. Smart people are everywhere in this industry. You're asking about experienced engineers with great work habits, great development practices and deep knowledge (as well as practical, broad knowledge). You'll find these engineers at almost all software development companies. I doubt very much that all the folks you've worked with are poor engineers or just not smart. Clearly you're young. That's great. Perhaps you should spend some time asking questions to engineers that have been engineering for several years. This a great way to learn, too.

    C

  • User profile image
    cbae

    @tobleroneisbest: If you are looking for work using Microsoft technologies, I'd suggest staying far, far away from the San Francisco Bay Area unless you can get a job at the Microsoft Mountain View Campus or for a company that targets the enterprise market. IMHO, other parts of the US, like New York or Chicago, are far more friendly to Microsoft technologies. 

  • User profile image
    Ian2

    @tobleroneisbest:

    Marry a smart person - then you don't need to worry about it ever again (if you are smart)

  • User profile image
    magicalclick

    , Ian2 wrote

    @tobleroneisbest:

    Marry a [rich] person - then you don't need to worry about it ever again (if you are smart)

    Tongue Out

     

    Leaving WM on 5/2018 if no apps, no dedicated billboards where I drive, no Store name.
    Last modified
  • User profile image
    MasterPi

    I agree with Charles...good engineering skills does not necessarily translate to any sort of cleverness or creative aptitude. In fact, you can find a lot of smart people who do not have solid engineering skills (or may not even know how to develop), but who have great minds and have far reaching visions for CS in general.

    I also feel like, in questioning the competency of your workplace you're jumping the gun a little. I just recently graduated and I know very well that in academia everything is all fine and dandy. Code is fully unit tested, proper design patterns are followed, algorithms are tested for correctness and efficiency, and the right frameworks are used. However, in actual industry some sacrifices are (unintentionally) made in order to meet deadlines and to serve business goals. Sometimes a project is just "good enough" to be deployed. Also, a lot of times, there is an intent to ship a version 0.5 of a project that may have a lot of questionable design decisions, but on the surface is functional enough to showcase capabilities, and will later evolve into something more structured and well designed.

    So, you really can't expect it to always be all rosy...I'm sure even at Microsoft new projects start off with weird design decisions because everyone is focused on the concept (take the Kinect SDK beta, e.g.).  But then through subsequent iterations, they start to slowly improve the project, bringing it to something really high quality.

    My suggestion to you is to stop worrying about the frameworks and the design patterns (or lack thereof) that you're forced to use. Focus on the problem and the solution...and have fun doing it! I've worked with crappy codebases in the past too and I can definitely say that I enjoyed those projects in which I got to start from scratch the most. However, the most rewarding projects to me were the ones that solved an interesting problem - when you're solving a problem, the actual coding practice doesn't seem to matter so much.

    If you REALLY want to work with such software engineering structure, then you should think about roles/positions dealing with high integrity data/products (financial, systems software, rdms design). But these types of positions are also insanely boring in my opinion. It depends on what you like - I think you should focus on the problems you like to solve rather than how those problems are solved IMO. You'll be more satisfied.

     

    BTW, on the topic of solving problems, design patterns are problem solving utilties. They are not one size fits all...they're tried and tested resources for solving common design issues. If the issue does not exist and you cannot forsee it coming about because of business processes or the structure of your technology, then there really is no reason to be using it. Furthermore, design patterns come with limitations, usually along the lines of adding additional layers of abstraction and indirection that might impact performance or add unnecessary complexity to an otherwise simple application.

  • User profile image
    Jan​Kratochvil

    Thanks for the great advice. Just to make things a bit more clear, I get that there are other skills than software engineering and it is fun talking to the people who have them(for example talking to accountants is for some reason really enjoyable).

    I also get that companies are under tremendous pressure to deliver for the lowest price possible and that usually involves the most straightforward way. But in my experience almost always leads to very high costs on maintenance where you need a couple of man-days to add support for a new column in the database. And convincing the customer that major refactoring is needed after the initial working release is almost impossible. Making changes when you were not around when the project originally started is, at least for me, a very frustrating experience.

    But I expect the engineers to at least be interested in more modern approaches and be willing to discuss them and that is not always the case.

Conversation locked

This conversation has been locked by the site admins. No new comments can be made.