This little expirement is something I have thought about writing for several years. As software engineers, we view many job listings for many companies. Writing a fictitious job listing for my ideal company would be an excellent exercise to give clarity to myself and as something I can point potential recruiters to. Just as job listings describe the perfect candidate that doesn’t exist, this listing describes the ideal company with the perfect opening, which probably doesn’t exist. Every item on here is something I have seen real companies offer. A company that offers all of it would be a special and rare find indeed.
Like life, the contents of this is subject to change as needs and desires grow.
If the values expressed here jive pretty closely with your company’s and you find my expirence interesting, feel free to reach out.
Who We Are
We are in an industry that improves people’s day-to-day lives or society. Our industry could even be something that most venture capitalists do not find attractive because it is too mundane. However, we are not in the data collection, Web 3, crypto, or toxic social media industries.
We understand that our employees come from many walks of life. We take pride in delivering a high-quality product and genuinely taking care of our employees. We don’t believe in letting burnout happen, and we know that life happens, even in meetings! Chasing growth without regard to cash flow is unsustainable. This means we take the long term in mind by investing in our product and our people through controlled growth and by hiring direct and conservatively. When hard times come, we take measures to avoid layoffs.
Remote First, Async First
We believe in getting the best people for the job wherever they are, no matter the timezone. The best people need the best tools and techniques, and by using the best, creative people can work just as close, if not closer, remotely as they do in person. Most matters can be handled asynchronously; synchronous meetings are usually a sign that something has gone wrong.
We also gather the entire company once or twice a year and occasionally bring teams together for intensive collaboration.
You don’t stay ahead in this industry if you don’t keep improving your skills. That’s why we support our employees in attending and speaking at conferences, provide access to an online learning library of courses, and have internal book clubs. We like to focus on learning things that are not simply the latest trend or fad but the things that are foundationally transformative to one’s work. Our engineers, for example, dig deep into understanding the foundations of good code and the mathematical nature of computation.
We don’t spy on our users or our employees. If we didn’t trust someone we hired, we shouldn’t have hired them. Data we don’t need is a liability to have around waiting to be leaked or abused. Spreading unnecessary tracking into the app complicates code. We prefer our engineers work on bringing real value to our users rather than working on unnecessary data collection. As such, we take great care only to collect data when needed, properly secure it, and remove both collection points and the data we collect when a project is complete. We also tell our users and employees about the data we gather upfront and, whenever possible, give them a choice to opt in.
Native Experiences, Native Code
We believe that the best and most efficient apps for our users come from native code, not cross-platform workarounds.
Keep Up With the Platform
Our job as app creators is to keep our apps up to date and running on the latest versions of the platform’s OS and hardware. Our developers watch the sessions when the platforms have developer conferences and start planning updates for day-one support immediately. Keeping our code running on new OS releases is a baseline minimum. No excuses, no complaining.
We also take the time to consider where new user and developer features can help us get a leg up on productivity and our competition. We don’t rest on our laurels here.
We believe that functional languages, such as Elixir, Haskell, and Elm, and using functional approaches in languages like Swift or Kotlin is the best way to write expressive, testable, and maintainable code. Functional doesn’t only mean throwing map, filter, reduce, or immutability into our toolkit of coding practices but going deeper with structure with ideas like function composition, monads, lenses, and functional app architecture such as TCA or Redux.
We’re pragmatic about this too; sometimes, a developer must write a use case an imperative style. Whenever possible, we push this code to the edges of our apps.
We provide every engineer with a top-spec professional laptop. We also don’t pay our team to spend time babysitting the ticket system, so we don’t use poorly made (and expensive!) tools like Jira or Confluence, and we automate the tools we do use whenever possible. At the same time, cultural problems are not best solved with unthinking technical solutions. We spend lots of money on paying our team. It’s in our best interest to ensure they are well-equipped with tools that help them do their job quickly.
The salary range for this role is $160-230k. Compensation is based on the value you bring to the table, not the zip code where you choose to live.
Work from home, rent an office, or take a multi-month trip!
Since we work remotely, we offer a $250/mo office stipend to help pay for office needs such as Internet access or a coworking space. We also offer a $1,000/year equipment stipend to help pay for additional monitors, chairs, or whatever you need. If you have special needs, we will work with you to ensure you have what you need to do your best work. This is a small price compared to what it costs to have each person in a company office.
It’s important to step away and refresh, and most people don’t take the time to care for themselves. When you are not feeling your best, you are not bringing your best. Here at Ideal Co., employees are required to take a minimum of 20 days PTO. There is also unlimited sick time to care for yourself or a family member.
We match up to 4% of your salary into your 401k.
Health and dental for the employee included. Options to add members of your family are available.
Staff iOS Engineer
You will be vital to setting the technical direction of our iOS app, organizing projects, setting best practices, mentoring developers, coordinating across teams, and more.
For our backend or web engineering, we use functional languages that even the most experienced engineers in the industry may not have experience with. Never fear; as long as you are eager to learn, we will help you get up to speed with the languages and frameworks we use to deliver our services.