Use the built-in setSize() in Selenium:
    aDriver.manage().window().setSize(new Dimension(width, height));
It works like a champ. I've used it for Firefox, Chrome (even headless), and Edge.
Adding full maximize code
public static void setMaximize(boolean maximize) {
    if (maximize) {
        if (getHeadless()) {
            aDriver.manage().window().setSize(new Dimension(1600, 900));
        } else if (getDevice() == null) {
            try {
                aDriver.manage().window().maximize();
            } catch (WebDriverException e) {
                String name = getDriver();
                if (name == null) {
                    System.out.println("Browser has not been set");
                } else {
                    System.out.println(name + " does not support maximize");
                }
            }
        }
    }
}