Jump to content
Search In
  • More options...
Find results that contain...
Find results in...
  • Articles

    Benefits of Using ReactJS for Your Web Development Project

    Introduction
    ReactJS Development Company is a software development firm specializing in the development of web applications using the ReactJS library. ReactJS is a popular JavaScript library for building user interfaces, and it is known for its improved performance, reusable components, ease of use, and strong community support. At ReactJS Development Company, our team of skilled developers has extensive experience in building complex and scalable web applications using ReactJS.
    Our developers have a deep understanding of ReactJS and its capabilities, and they use this knowledge to build high-quality, user-friendly web applications that meet the needs of our clients. We work closely with our clients to understand their requirements and to create customized solutions that meet their unique needs. Our goal is to deliver web applications that are fast, responsive, and user-friendly, and that provide a positive experience for users.
    At ReactJS Development Company, we are committed to using the latest technologies and best practices to deliver high-quality software solutions. Our development process is guided by Agile methodology, which allows us to rapidly iterate and make changes based on feedback from our clients. This ensures that our clients receive software that meets their needs and exceeds their expectations.
    Whether you need a new web application or are looking to upgrade an existing one, ReactJS Development Company is here to help. Our team of experienced developers is ready to work with you to build a custom solution that meets your needs. Contact us today to learn more about how we can help you with your web development project.
    Advantages of Utilizing ReactJS
    ReactJS is one of the most popular JavaScript libraries for building user interfaces. It was developed by Facebook and has been widely adopted by the web development community since its release in 2013. ReactJS has a number of benefits that make it an excellent choice for web development projects, ranging from improved performance to ease of use.
    Improved Performance
    ReactJS uses a virtual DOM (Document Object Model) to update the user interface, which results in faster and smoother updates to the user interface. The virtual DOM is a lightweight in-memory representation of the actual DOM, and React uses this representation to make changes to the user interface without having to directly update the DOM, which can be slow and resource-intensive. By using the virtual DOM, ReactJS is able to update the user interface much more quickly, resulting in a better user experience.
    Reusable Components
    ReactJS allows developers to create reusable components that can be easily shared across multiple projects. This makes it easy to build complex user interfaces, as developers can break down the interface into smaller, reusable components that can be managed and maintained separately. This also leads to better code organization, as components can be organized into a structured hierarchy, making it easier to understand and maintain the codebase over time.
    Ease of Use
    ReactJS is a very easy-to-learn and use JavaScript library. It uses a syntax that is familiar to most web developers, and its component-based architecture makes it easy to build and manage complex user interfaces. Additionally, ReactJS has a large and active community, which means that there is a wealth of resources available to help developers learn the library and solve any problems they may encounter.
    Server-Side Rendering
    ReactJS supports server-side rendering, which can help improve the performance of web applications. Server-side rendering is a technique where the user interface is rendered on the server and sent to the client as a complete HTML document, rather than being generated on the client. This can result in faster initial load times, as the client does not have to wait for JavaScript to execute and render the user interface. Additionally, server-side rendering can improve the SEO of a web application, as search engines can crawl and index the HTML document more easily.
    React Native
    ReactJS has a sister library called React Native, which allows developers to build native mobile applications using the same components and concepts used in ReactJS. This means that developers can build cross-platform mobile applications using the same codebase, which can save time and resources compared to building separate native applications for each platform. Additionally, React Native uses native components, which provides a more native feel to the user interface compared to hybrid mobile applications.
    Strong Community Support
    ReactJS has a large and active community, which means that there are a wealth of resources available to help developers learn the library and solve any problems they may encounter. Additionally, ReactJS is maintained by Facebook, which ensures that the library is well-supported and updated on a regular basis. This provides a level of stability and reliability that is not always present in other JavaScript libraries.
    Improved Productivity
    Finally, ReactJS can help improve developer productivity, as it allows developers to build complex user interfaces quickly and efficiently. Additionally, its component-based architecture makes it easy to manage and maintain code, which can help reduce the time and resources required to build and maintain web applications over time.
    Conclusion 
    ReactJS is an excellent choice for web development projects due to its improved performance, reusable components, ease of use, server-side rendering, React Native compatibility, strong community support, and improved productivity.
     

    Internet Explorer is dead - Internet Explorer is officially retired and out of support

    Internet Explorer is DEAD. Finally. After decades of making lives miserably for thousands upon thousands of front end developers across the globe, we can finally celebrate the end of Internet Explorer. For me, this is a great relief and yet another remnant of the Steve Ballmer area that I am happy to see put to rest. Microsoft will not put their efforts into Microsoft Edge, which like most things that has been introduced under Satya Nadella seems to be pretty good.
    Microsoft has finally announced the death of Internet Explorer as they officially retire and end support for Internet Explorer 11. It has been a long time coming, and many of us old people have grown up with Internet Explorer. Some of us even remember the battle with Netscape, back in the days before Netscape became Mozilla and then re-invented itself as Firefox. We have seen Internet Explorer almost gain monopoly status, only to slowly die as Firefox and Chrome ate away the market share.
    As frontend developers, many have cursed over the course that Microsoft steered Internet Explorer under Steve Ballmer's reign, always insisting on having its own quirks that forced countless hours to "fix". For many years, front end developers had to support the hated Internet Explorer 6 because it had been built in into many company solutions at the time. It was hell. Pure and simple.
    Ever since, Internet Explorer has been despised for its reluctance to conform with standards the other browsers agreed upon and for the need to polyfill and CSS hack just to make websites cope with the madness.
    I, for one, are glad that Internet Explorer is dead.
    Now, rest in peace and long live Edge.
     

    Kotlin Vs. Java: Which is Best for Developing Android Apps?

    For more than two decades, Java was one of the more sought-after programming languages used on a variety of devices. Since the beginning, mobile apps developers have relied on Java to create hundreds of applications. In May 2019, Google announced that Kotlin was the preferred programming language for the Google Play Store for Android applications.
    To develop a successful mobile app, it is crucial to choose the best among Kotlin vs Java languages. Let’s learn what these languages are, their pros and cons, and which one will fit your app project. Let’s look at. Kotlin Programming Language
    Kotlin Programming Language
    Kotlin is mostly the integrated environment used for developing apps. It is also able to create statically JavaScript as well as Java Virtual Machine language (JVM).
    Kotlin is a blend of functional and functional programming. It is more simple, less messy and more efficient to build than Java. Kotlin can convert the code into binary code and run it under JVM. Therefore, it’s suitable for almost every platform & device.
    Java Programming Language
    Java programming language can be described as an object-oriented language. The language is easy to learn, strong, robust, and durable. Java is ideal for Android apps, web applications, server applications, embedded systems, large data and more. Open source is a mix of many elements. Java is the basis of a lot of Android apps and also significant portions of Android.
    Kotlin Vs. Java: What We Need to Know
    Kotlin Vs. Java can’t be used simultaneously for any mobile application development, so it is important to discover which is the most suitable. We’re now going to take a look at the pros and cons of both languages, as well as what makes each one better for certain types of Android applications.
    Data Classes: Kotlin Vs Java
    Java-based Android application development requires you to create variables or fields that can be used to store information. Additionally, you must create constructor, getter and setter methods, as well as toString() and the equals() and hashCode().
    Kotlin automatizes these tasks. You only need to include the word “data” in the definition of the class. The compiler is able to automatically create fields and variables like the setter, getter, constructor, among others.
    Volume & Coding: Kotlin Vs Java
    Kotlin code load is less than Java’s similar programs. Kotlin reduces the chance of errors in code and eases the work of Android app developers. Because of its ease of use, Kotlin is preferred over Java for massive mobile and web application development projects. Kotlin code is easier than Java.
    It doesn’t require constructors to create objects, classes that hold information and get value from declared fields or classes that store the data. Kotlin code is compiled in less than the time required for writing Java code. This accelerates development and deployment.
    Null Safety: Kotlin Vs Java
    Java has many drawbacks, one of which is Null Pointer Exception. The occurrence of a Null Pointer Exception is only triggered when the user is explicit in throwing it. Inconsistencies in data can occur due to Java code problems with initialization, as well as other issues. Kotlin is unable to run when a Null Pointer Exception is generated.
    For the best Kotlin Vs. Java choice and usage, look to hire Android app developers with professional expertise and excellent knowledge.
    Wildcards: Kotlin Vs Java
    Kotlin is not able to use wildcard types. Declaration variance & the type projections are Kotlin’s wildcard choices. Java allows wildcards. Wildcard codes are typically an unidentified kind. It governs the type security of Java-based codes within a software.
    Operator Overloading: Kotlin Vs Java
    You can make use of a range of mathematical operators within Kotlin such as subtraction, addition & division. It is possible to compare objects and conduct quality checks with symbols. The Java programming language relies on particular Java data types with mathematical operators. The Kotlin Vs. Java debate is won by Kotlin in terms of Operator Overloading.
    Performance: Kotlin Vs Java
    JVM runs ByteCode which is written using Java as well as Kotlin. It is however hard to assess their memory consumption. It’s difficult to evaluate and monitor their performance. Kotlin has more features than Java which makes it more practical.
    Multithreading applications are made simpler with Kotlin Coroutines tool. Because of its plethora of features, it compiles & runs a bit slower than Java. Java is however much less complicated than Kotlin which means that it is faster to compile.
    For top assistance, you must seek assistance from a Best Android app development company and hire Android app developers with great expertise.
    Stability: Kotlin Vs Java
    It’s the stability that lets us detect distinctions. Let’s begin with Java. Java is one of the languages with an extensive history. Java Version 8 & Java Version 11 both provide extensive support. If anything goes wrong, the Java versions can be upgraded via patches.
    Despite Kotlin’s long history, it is still a relatively young language. There is no official version yet. Java and Kotlin can be considered to be stable languages. If you are looking for stability, Java is the best option.
    Final Words
    We’ve got the complete list to offer on our analysis of the Kotlin vs. Java Debate. Hopefully, you will be satisfied with our analysis and choose the best option based on your preferences. Be it Java or be it Kotlin, everyone has their era and today’s era is inclining towards Kotlin programming Language.

    Criticial Ransomware Incident - Massive cyberattact through tech provider Kaseya

    IT management software vendor Kaseya whose VSA software platform is used by other tech companies to monitor and manage customers’ IT networks, has been the victim of an audacious cyberattack. On July 2, the business issued a security advisory urging its customers to immediately shut down versions of VSA running on their own servers. It also suspended its own cloud-based VSA service.
    Kaseya VSA is a remote management platform for MSPs that provides solutions such as automated patch management. According to Kaseya, the platform has been used by more than 36,000 MSP customers worldwide.
    "Beginning around mid-day (EST/US) on Friday, July 2, 2021, Kaseya's Incident Response team learned of a potential security incident involving our VSA software," the company's CEO Fred Voccola said in a statement shared late Friday.
    Kaseya's official recommendation is to:"IMMEDIATELY shutdown your VSA server until you receive further notice from us."
    This attack already has compromised eight of Kaseya's MSP customers with 200 businesses linked to three of the victims reporting instances of file encryption. This Reddit post from huntresslabs show the progress of sorting out how to fix this ransomeware attack.
    On Friday, Mark Loman, a malware analyst at security firm Sophos, tweeted the hackers demanded $5 million as ransom in exchange for the file decryptor. Image comes from thehackernews.com.


    This seems to be quite nasty and here in Sweden it has affected one of our chain of groceries stores as they are unable to make payments due to this affecting their cashiers. In the US hundreds of companies have been affected and it is safe to assume that many companies in the EU and elsewhere might be affected as well.
     

    Serious vulnerability in Windows Print Spooler "Print Nightmare"

    If you have the "Print Spooler" service enabled (which is the default), it means that anyone with access can execute code as SYSTEM against the Windows domain controller. At present, there is no patch from Microsoft. So take a break from your vacation and turn off the service immediately.
    From Tenable's blog:
    E5GOlYUXwAUyqzU.mp4
    More information from Microsoft: https://msrc.microsoft.com/update-guide/vulnerability/CVE-2021-1675
     

    Atomic CSS - what is it and is it useful?

    Atomic Design, or Functional Design as it is also referenced, is a bit of a weird beast. On one hand, it is a programmatic shorthand feature that allow you to use short code in development that then render CSS based on that, but it also a philosophy of sorts on how to organize CSS. A philosophy that very much resemble the inline-css era of old.
    The problem statement
    I think this statement says a lot on how ACSS and to some degree Atomic Design itself see the world of CSS. Anyone working with wild or free CSS development can certainly recognize some of these pain points. This is not uncommon in scenarios where many developers work in the same project or you have to work on top of a not so well-designed product.
    The question is, though, how many still work in that way and why?
    In a scenario where you have a defined design pattern, which should be the norm these days, this is rarely an issue. Regardless if you do atomic design or component design, your styles should be easy to maintain and define. Despite this I still see a lot of JS developers adopt inline styling and duplication of CSS in components. This is more common in libraries like React and Angular, I feel (personal experience, no real numbers to support that).
    So it is not surprising to see a rise in areas like Atomic Design or ACSS since that help bridge the gap in skill levels some JS developers have and the inherent despise we have to spend more time than we have to on things we don't really enjoy doing. Not to mention, there are some benefits that should not be overlooked.
    ACSS - Atomic Design as a preprocessor
    ACSS is a preprocessor that will transform inline HTML variables and create CSS from it. It has a fairly simple syntax and it works by looping though the HTML and scrape up the variables and then make a CSS file from what it finds.  In many ways, this is similar to inline CSS, but you would get a static CSS file instead of just printing it out in a style tag.
    If we borrow an example from the excellent CSS-Tricks site that I highly recommend you check out, then here is a snippet of code where we declare some classes and input a variable to each.
    <!-- Programmatic Atomic CSS Example --> <div class="Bgc(#0280ae) C(#fff) P(20px)">Lorem ipsum</div> The output from this would then generate the following CSS:
    .Bgc\(#0280ae\) { background-color: #0280ae; } .C\(#fff\) { color: #fff; } .P\(20px\) { padding: 20px; } This may seem quite useless compared to a well-defined CSS with variables declared that I could just input, but you could use both of course and use this to override in certain situations. Similar to how you would use inline styling.
    The biggest benefit of this however is that the CSS generated would be as small as you could make it. This is because the CSS would be based only on what can be found in the HTML. This can be useful for development in for example Angular and React, where I assume this is mostly used.
    In situations where you have classes reused over many components, like this website however, that would not really be as beneficial as having multiple CSS files is never a good thing and you would see duplication of classes. This is of course if you generate the CSS on a modular basis, but not if you render it globally on load somehow.
    Overall, I do not see any need for me working with sites like Invision Community and I feel it would not really work well in an atomic design situation with defined styles in both the UI and the HTML/CSS that is reused across components.
    I may be completely wrong about that, as I have not tried it and if so, sign off in the comments to tell me I am wrong 🙂
     
    Atomic Design as a Philosophy
    The idea of Atomic CSS is simple and, to be honest, not very new. The idea is to create single attribute classes and then stuff the HTML with them. Kind of like you would do using Inline styling, but with a global definition of the styles. It would look something like this.
    /* naming utility classes */ .relative { position: relative; } .mt10 { margin-top: 10px; } .pb10 { padding-bottom: 10px; } I say that this is nothing new because this has been around since before inline styling even existed. One reason it is not widely used is because it makes the HTML cluttered and hard to read. It is also a bit annoying to work with compared to having well-defined CSS classes as you will have a ton of attribute shortcuts basically rather than a library of styles.
    If you are used to working with frameworks like bootstrap, then you are already familiar with the concept, since those frameworks also have libraries of smaller styles that you can mix and match. Atomic CSS is much smaller however and rather than having for example a flexbox class that have the standard values you use all over the site you have to build those up with a set of classes inline in the HTML.
    Is it a terrible idea?
    Atomic design as a concept can be traced back to October 2013 and an article written by Thierry Koblenz. It has since evolved and you will often see it in reference from the new breed of JS developers that work in frameworks like React and Angular. While it may be a bit unfair to say that these new JS developers do not have that same deep understanding of CSS as the "regular" front end developers, I do see this distinction growing.
    For the JS developers however, this is pretty useful as they can focus on function rather than form. You have probably seen the mess that sometimes happen when JS developers mix inline styling, component specific styling and global styling. It is as bad as having multiple novis CSS developers trying to use EM when they do not control the output containers...
    I hear some arguments that this makes it easier to avoid specificity issues, but I do not agree with that. If you control your code, then you are a pretty bad developer if you can't handle your classes properly. It all comes down to planning and setting structures after all, unless you are just playing around like I do on this site.
    I digress though and to answer the question if this is a terrible idea I think there are use cases for when this can be useful. Since that article in 2013 however, I think those use cases are less now, especially with the introduction of CSS variables. I do however think there is a very good case for using this same idea for defining variables and to keep your classes small as a philosophy.
    I do think there are certain scenarios where it is a good idea to use the concept of Atomic design, and that is for overrides. Things like fonts, colors and spacing can be useful to sometimes just make a small adjustment rather than building new components.
    Also, if you generate your content at runtime on the server, there are benefits to this since you can combine it with CSS-in-JS to dynamically generate very small CSS files. I guess this is why React and Angular developers are liking this way to organize your CSS classes. You can still do this working with regular CSS, but the files will be bigger since you are bound to have duplicate attributes in your classes.
    So it is not a terrible idea, but it comes with some issues.
    Allow me to explain...
    My Thoughts
    While there are benefits in some cases, there are some negatives as well. The biggest issue for me is that while we reduce the CSS, we instead increase the size of the HTML. The HTML also becomes much more cluttered and harder to read because unlike CSS where we can group classes, or even split them on multiple files, HTML will just be one big garbled mess.
    Consistency is also an issue because the idea of recreate clusters of classes to achieve the components is done manually every time, then you will see consistency go out the window. We see this all the time in wild or free CSS, where pretty much every component have its own class styles uniquely. This is especially problematic if you have JS developers that are not very good at using CSS and you try to set up a design library.
    At the end of the day however, front-end developers are flexible and resourceful people. All of these potential pitfalls can be managed and if Atomic CSS works for you and those that you collaborate with, then go for it. Just don't make the decision just in the development team as you need to work well with both Design and Test so they should have a say as well. Also, your way of working must work across teams, so don't start using Atomic CSS if you at any time will have other teams working in the code as well.
    You know all that of course, but it is something that you can never repeat too many times.
     
    Do you use Atomic Design today?
    If you do, what benefits and pitfalls have you uncovered?

    Project, Maintenance or Line Work - what is the difference and does it matter?

    If you work in IT, you have probably heard the words projects and maintenance many times. Usually it is in reference to different teams and organizations, but not always. Sometimes the same team can do both projects and maintenance, which can cause some confusion. To add to that confusion, you will sometimes hear the word line work as well. As these all see to be a bit malleable, it can cause some annoyance. With this article, I hope we can make a definition so we all know what we are talking about.
    These are all financial constructs
    Before we begin, let us define what these three terms refer to, since they are sometimes confused with processes or even methods. Projects, maintenance and line work are all financial constructs. This means that they exist as a way to manage budgets and resources. In most cases, projects and maintenance exist together and form sequential ways of working (waterfall, RUP and so on) while line work is the basis for iterative forms of working (Agile). This is also reflected in their financing where projects and maintenance mostly have fixed budgets and scope, while line work have fixed budgets, but scope is more loosely defined against value themes.
    Project
    A project is usually the easiest to define of the three. This is because most of the work in IT are still project based, so most people still work in projects. Projects are by their very nature sequential, meaning that they follow a step-by-step process to get funding and approval based on certain values. These values are often defined as features, but in some cases it can be other types of values. The difference between projects and line work is however that value need to be measurable and once set it normally can not be changed.
    Projects are defined as time limited bubbles of time, scope and resources that can span across different borders such as systems, organizations and even companies. When this happens, the project is split between the different areas and placed under an umbrella structure we call program. This makes projects the easiest form of financial structure to organize when you need to span multiple areas.
    Most companies that have been around a while also have a strong culture of organizing external resources around temporary work as projects as well. This is usually well-defined in their vendor management structure as well. This is why projects are the most common form of financial construct in most companies.
     
    Maintenance
    One of the most misused term of these three as it is often used for anything that is not project based. It also comes in two very different forms based on how contracts are defined in Vendor management.
    At its core, maintenance is nothing more than making sure the systems are working properly once a project has ended. This means that as a project ends, there will be a list of items that need to be taken care of, usually in the form of known bugs and technical debt. After the handover, maintenance handle unexpected incidents in production, problems and in some cases it also includes enhancements such as refactoring to make the system more stable.
    In some cases the maintenance get to work right after a release. This is when contracts are written without post go-live support, meaning that as soon as a delivery is accepted and released, the team in charge of the development no longer are responsible. This is often an awkward situation where the maintenance team and the development team can start to resent each other if there are a lot of incidents being released to production due to poor testing and acceptance processes.
    All of this is handled in a service management process that is matched against a contract with SLA and a budget for the work to manage the system or systems. This is often paid for by the product owner(s) or a business area within the organization on an annual basis, which is often managed through maintenance plans.
    Unlike project and line work, maintenance are not generating new value. The purpose of Maintenance is to maintain value, or to correct loss of value due to problems and incidents.
     
    Line work (line organization)
    If you have ever worked in maintenance where you also do development for new features as part of your work, then you are probably in some form of line organization doing line work. The term refers to a manufacture line where you continuously build things. Unlike a manufacture line, where you do the same thing all the time, line work in this context refer to continuous improvement when it comes to development.
    Line work, just like maintenance, usually have an annual budget. Unlike maintenance where the goal is to maintain value, line work have the same aim to produce new value in the same way as projects. In line work, however, this value is usually defined in terms of focus areas, or themes, and larger goals rather than defined ones as you have in a  project. This makes line work better suited for exploratory work such where value creation is iterated based on result.
    Line work often employ a flexible workforce, allowing them to quickly adjust resources based on need. This also works well for larger initiatives where the flexible workforce simply expand their numbers for a period of time and then shrink again. This however require a different way of handling vendor management and contracts as you can not define them around deliveries, but rather against value creation.
     
    The confusing mix
    It does not really matter what form your financial construct have, because at the end of the day you will adjust your preferred way of working anyway. You can work in an Agile methodology within a project and you can do waterfall in a line work setup. There will be challenges of course, but people do it every day all over the world.
    It is when things get mixed up you start to get problems. This usually happen with line work and maintenance, or projects and line work.
    Anytime you hear that maintenance also should so development of new features, then you are fading into a mixed situation, or are moving towards line work. This is confusing because you mix the concept of not generating new value in maintenance with creating new value as in line work, but without the flexibility in financing. This can cause headache, not just for managing the budget, but also because maintenance usually do not have a requirement process defined. The situation can be fixed however by moving over to a line work setup instead.
    The most common situation however is when projects try to mix fixed time and scope with exploratory methodologies. This is often done by implementing a sequential scrum methodology and an ad-hoc requirement process. Scope creep are very common and frustration high from confusing requirements and trying to iterate value within a confined time frame with fixed budged and deliverables.  The solution for this is usually to focus on requirements to reduce the ad-hoc situation and try to iterate within the limitations presented in a more flexible way, rather than agile.
     
    I hope this helps
    As I see these terms used on a daily basis and sometimes in a very confusing way, I hope this definition helps. If you disagree with my definition, feel free to write a comment and we can discuss things. If you like this article, or better yet, find it useful, a comment or like is always welcome 🙂

    5 interviewer tips - for landing a senior employee

    We have all been in those interviews where the interviewer completely botch the interview. Weird IQ tests, being asked to do design or code on the fly or questions that are irrelevant to the work at hand. Sometimes it may even be that the interviewer is completely the wrong type for the interview and so on. In this article I will list my five top interviewer tips for interviewers to land that awesome employee contract for a senior IT or design person.
    Tip #1 - You are the one that have to sell the position
    Surprisingly many interviewers have the attitude that they are doing the potential employee a favor by letting them come to an interview. This may be true for other types of work, but professional IT people are in very high demand and for a senior person it really is their market, not yours.
    So if you come from another field where there are more people to hire than there are positions, you need to adjust that mindset. Otherwise, you will have a very hard time attracting people or worse, keeping them.
    People that are junior or new to the field often bend over backwards to land a job at a prestige filled company, but most seniors have already filled their CV/Portfolio and are done with the backfilling process where you endure crappy jobs just to build a CV/portfolio.
    These people know that they can afford to be picky, both in terms of job descriptions, workplace satisfaction and of course salary. You often compete with a dozen or more other companies for a senior employee.
    So rather than asking them to prove to you that they have what it takes, you need to prove to them that you are worthy of their time. That is quite different compared to dealing with junior employees or recruitment in other fields.
     
    Tip #2 Don't waste their time
    Unless you are offering someone's dream job that you know they will do anything to secure, don't waste their time. Asking a senior employee to do code tasks or design tasks to "prove" their worth is a sure way to turn many applicants away. The only people that will put up with that kind of nonsense are people that are unemployed or are still building up a CV/Portfolio.
    If you are looking for a senior employee, they will rarely put in extra work just to get to an interview. They have other options that don't require them to work for free anymore. Besides, they can easily pay someone a few bucks to do that assignment for them anyway, so it is kind of pointless from a validation perspective anyway.
    If you want to verify someone's skill, then just have another senior developer in the interview and have them go over some code or design together in a think aloud fashion. The other senior employee will pretty easily spot if the person know what they are talking about or not.
    Just be mindful that a lot of people get brain freeze during interviews, so this should not be your only interview point.
    IQ tests and personality tests are not uncommon either and I would strongly advise you not to use those. Most people don't like these kinds of test and they are likely to drop you as a potential employer because of that. They also do not really give you any information that is beneficial for your decision to employ or not.
    I kind of enjoy doing these, but that is because I already know my IQ is high and I have done a lot of personality tests so I know what to expect from them. Others don't like this kind of surprises as much though...
    If you want to have a psychological test that is actually beneficial, then you should look into the dark trinity traits, but then you are diving into a whole different set of pitfalls and problems.
     
    Tip #3 - Do your homework
    Just as the person you interview will do their homework to look up your company and it's values, you should also do your homework. I don't mean that standard homework to make sure the person you employ is not a hateful bigot or a criminal, you should also try to find out as much as you can about the person.
    Introverts and extroverts are quite different in terms of what they need and how the information you present should be done. Introverts often prefer more structure and information as bullet points with clear decisions and distinctions. Extroverts often like conversation and more visual information and so on.
    Some people are social hotspots and can chat up rocks, while others are less comfortable and prefer others to lead the conversation. Knowing what type you are meeting allow you to design the meetings accordingly.
    Knowing things like hobbies, passions and peeves can help you connect far easier, even with more closed people. It also offers a way to make the person you are interviewing to feel more familiar and comfortable.
    If you have someone close to you that know the person you are about to interview, talk to them and ask them about the person beforehand. This will help you tremendously in your interview.
     
    Tip #4 - Represent your culture
    I have seen this a few times when the person doing the interview is not a good representative of the company culture. It can be that you have a company that is all about the people in the company and making a difference in the world that has a recruiter that look and behave like a sneaky car salesman. Or it can be a sales oriented company that is all about winning and celebrating victories where the recruiter is all about caring and making the world a better place.
    The problem you face if your style does not match the company culture will most likely happen later in the process where the potential employee will meet other people in the organization. Or it will happen after employment which often lead to that person leaving very soon, or become a source of negativity in the work place.
    So make sure you adjust your interview technique and your look to fit the culture and values of the company you represent. As you are often the first point of contact, your impression will be crucial in landing the right kind of employees that will fit into the company's values and culture.
     
    Tip #5 - Don't brag about hiring people to fill a quota
    It's not that common for people like me that are white males, but I have seen it and heard about this way too many times. No one want to be told that the reason you are called to an interview is because of your age, gender, race or your sexuality. Also, no one like to hear that they did not get a job because another applicant was of the preferred "type" and you were not.
    I know that it is generally a good idea to make sure you have many types of people in a  company and I love working with people from all walks of life, but never, ever, discuss this during interviews! It is offensive and in many countries even illegal to discriminate in such way.
    If you have two applicants that are equal in qualifications and you like both, then it is up to you which one you want to hire and adding more diversity is almost always a good idea. If however one applicant have better qualifications and you still hire someone else based on other things than their qualifications, then you are digging your own grave.
    Not only are you discriminating people, but you are also making the life of the person you hire difficult as other employees will notice that that person is less qualified than her role demands. This leads to friction and envy from other employees and the person you hired will suffer more from that feeling of being a fraud and not good enough.
    Be fair and hire the best applicant, regardless of other qualifications not related to work. There are plenty of amazing people of all "types" out there, if that is your goal.
     
    Don't be a bigot.
    This is not a tip, it's common sense. Or at least it should be. I know a lot of people that feel that they must change their name to get work due to bigotry. So if you discard applicants based on name or how they appear in a photo, then you are an idiot. And a bigot.
    Not only will you must definitely miss out on some amazing employees, you also put constraints on your business because you will miss so many amazing points of views and experiences.
    I have worked with people from all over the world and it has been the best experience you can imagine. I have worked with Jews, Muslims, Christians, Buddhists  and other religions. I have worked with people from all political affiliations as well as people from the whole rainbow of sexuality (almost). I have worked with disabled people that have taught me more about my work than I could ever have imagined.
    I have worked with people from simple and poor backgrounds and people from rich backgrounds. I have worked with people that could not read a book if their life depended on it, but they can build anything with their hands. I have worked with people that could not handle a tool if their life depended on it, but who could solve any problem with their mind.
    Some of the most amazing people I have worked with have been from other countries such as Lebanon, Morocco, Vietnam, Syria, Germany, Croatia and India to mention a few. I have learned so much from these people that goes beyond work and as someone as work in a male dominated field I constantly have my mind blown by amazing women that can see things differently than I can.
    I can tell you from experience that being afraid to the point where you get prejudiced is normal. We all fear what we don't know or understand. The best way to break that is to take a leap of faith and get to know the things you fear and more often than not you will find that the prejudice you have are wrong.
    So don't be a bigot.
    Be Awesome.

    The bad boss - what is a bad boss and what can you do about it?

    Employees don’t leave organizations, They leave bad bosses. We have all heard it and we all probably have a bad boss experience or two in our career. But what is a bad boss really? Are they just terrible monsters that tear organizations apart, or are they just people like you and me?
    Just as people are different, so are our perception of what a bad boss is. What I consider to be a bad boss, may not be a bad boss to you. It all depend on who we are as individuals and what we currently need. Regardless of who we are though there are three mental types that everyone dislikes and those are psychopaths, narcissists and machiavellians. This is how Birgit Schyn, Barbara Wisse and Stacey Sanders describe these types in their article Shady Strategic Behavior: Recognizing Strategic Followership of Dark Triad Followers:
    “Narcissists have a strong sense of entitlement and a constant need for attention and admiration. They are arrogant and consider themselves to be superior to others. “Machiavellians are sly, deceptive, distrusting, and manipulative. They are characterized by cynical and misanthropic beliefs, callousness, a striving for … money, power, and status, and the use of cunning influence tactics. In contrast to narcissists, Machiavellians do not necessarily have to be the center of attention and are satisfied with the role of puppeteer, unobtrusively pulling the strings.
    Psychopaths “are unlikely to consider the needs and wishes of others and are unafraid of crossing moral boundaries. … By creating chaos in the organization, as well as in coworkers’ personal lives, they can pursue personal agendas without detection. They do not only enjoy hurting people, they strategically use humiliation and bullying to direct other people’s attention away from their hidden selfish activities. … psychopaths are often viewed as the most malevolent ones of the Dark Triad.”
    We call these collectively Dark Triad personalities and when you encounter them there is very little you can do but to leave the organization. These are not bad bosses, they are bad people with mental issues that can hurt you, so stay away from them whenever possible.
    These are not the bad bosses we are looking for however, because there is another group, that is far more difficult to handle than the Dark Triad bosses. I am of course talking about the Sudden Asshole Bosses and the Micro Management Boss. These are people that actually are very good people, but they suffer from insecurities and inexperience as leaders.
    These are usually people that others like because they are caring, well-spoken and often action driven people that listens and take care of problems in a way that make everyone happy. Then when they get appointed to a leadership perspective they change overnight to become a controlling asshole of a boss.
    Why do good people become bad bosses?
    My personal experiences and observations is that this happens to new and inexperienced people due to a shift in the direction of care. By that I mean that as an employee my direction of care is usually towards my co-workers. That would be the other employees. As a person moves up and become a manager you have new responsibilities to people above you in the hierarchy. That means that you naturally shift your direction of care upwards.
    This is nothing bad, but if you add stress and the feeling of not being a hundred percent sure of what you are supposed to do as a manager, then the need for control start to take over. As we know stress does not help with maintaining a kind a generous disposition, so that does not really help the situation either.
    We also tend to adopt behavior from those that we work with. If a new manager are unfortunate to have others around them that belong to the Dark Triad, or that have fallen into the trap of micromanagement, then it becomes natural to be drawn into that. This is not because they want to be bad bosses, but because they need something to cling to as managers very rarely get any leadership training before they are tossed into the new roles as managers.
    People that feel insecure, or that are in a position where they feel they have to live up to certain expectations due to their gender, religion, sexuality or race, they are more prone to this in my experience. Not because they are any worse or better than others, but because they fear failure or letting down others more. Fear is a great motivator, unfortunately it often motivates good people to become bad bosses...
    How do we get bad bosses to become good bosses?
    Most Sudden Assholes and Micro Managers tend to get over the initial shock of becoming a manager. With time, they will again shift their direction of care to the people they are in charge of. They will learn how to navigate the minefield of leadership and distance themselves from behavior that is detrimental to the people under their care. They will also realize that micromanagement is not a healthy or sustainable way of working and as they feel more secure in their roles as leaders that need will dissipate.
    As people feel more secure they will also realize that the very reason they were chosen for leadership in the first place was because they are awesome. More often than not it is also because they add something to the company that is missing. For this reason it does not make sense to conform to what already exist. Many leaders blossom greatly when they realize this and a lot of people transcend from bad bosses to amazing bosses.
    For some however the bad boss attitudes get stuck. These are people that need help to break free from the bad boss loop. In my experience there are three things that seem to work well on most people:
    Time - One of the bane of new managers is stress. Helping your manager to reduce stress is a great way to help them get over the hurdles of transition from bad boss to great boss. Be proactive in providing information and take care of problems and you will quickly see a transition in attitude.
      Proximity - Being away from the people you are supposed to lead make bad bosses feel more connected to other bad bosses instead of the people you are responsible for. Break this by asking the bad boss to spend more time with the team. Don't let them hide in a closed room, bring them out in the open and in close proximity of the team. The bonds will naturally reforge with the team and the bad influence from other bad bosses will be reduced.
      Respect - Even if you are getting treated like crap and you are frustrated, show respect to your boss. Remember that they are probably struggling badly with things you have no idea of and with a show of respect you can ease that stress. Also remember that they are human and that the goal is to help them over the speed bumps of being a bad boss so they can become great bosses. Showing respect reduce their insecurities and remind them how awesome you are as well. I am not saying this is easy or even feasible in some cases, but just remember that bosses are people just like you and me and they have things going on in their lives you probably have no idea of.
    I know of one middle manager that was pretty much ambushed by several teams that gave him hell for almost 30 minutes before he broke down crying and told them that he had cancer and did not know how to deal with that.
    A woman I read about a while back was struggling because she was gay and was afraid that people would find out and she would be fired, only to find that everyone already suspected it and loved her regardless.
    Some are struggling with addiction, others with family issues such as divorces or deaths in the family. Some are struggling with bigotry from higher up in the company, some have asshole bosses of their own to deal with. Others may have illnesses or suffer from anxiety. There are a million reasons why someone may behave poorly in certain times of their lives.
    Just be open to the possibility that bad bosses may just be amazing bosses trapped inside their insecurities, bad company and a stressed out mind.
    You may hold the key they need to break free.
×
×
  • Create New...