508.dev

508.dev

508. dev

Software Engineering Co-op

Software Engineering

Co-op

Software Engineering Co-op


Engineering for 508.dev

Working with an engineering co-op can be a good fit for an engineer in any stage of their career, depending on their goals. With a co-op, statistically you're more likely to have your job, should you want still want it, after five years, because co-ops are both more likely than "traditional" businesses to survive over any length of time, and also co-ops are less likely to lay off staff than "traditional" businesses over any length of time.

For 508, our co-op philosophy goes much further than that. The business was started when the founding engineer, Caleb, was frustrated at the terminally low salaries available to engineers in Taiwan. It's the value of 508 that good engineering ability can be found anywhere on earth, and good engineering ability deserves to be paid a good engineering rate.

What we've found is that this philosophy leads to much greater quality of life for our team, as well as much faster project delivery at much higher product quality.

Delivering for clients isn't enough. Our goal is also to grow our engineers, with the long term objective of developing our own software products in-house, so as to build a stable platform of income that allows us to experiment even further.

Regardless of your skill level, or even if you have no project experience at all and are just interested in becoming an engineer, we'd like to talk. Take a look at our values, and if they match with yours, send us an email at hello@508.dev. Or, take a look at some of our open source projects below, to see how you can get involved. We also have a blog post on the subject.

How to Join 508.dev

508.dev is non-traditional. We don't have any full-time roles (yet). All of our "employees" (co-op members) are officially contractors for the LLC, and thus subcontractors for our clients.

In order to subcontract through 508.dev, the community needs to understand your skillset and abilities. That means "joining" the co-op, which really just means joining our Slack server and hanging out. To join our Slack server, typically you'll first meet with someone who's been with the co-op for a while, such as Caleb or Sam, so that your goals can be understood and so that we and you can make sure our values are aligned. If you want to explore this, email hello@508.dev

What Does it Mean to be a Member of 508.dev?

508.dev is a community as well as an actual corporation. To be a "member" means you are known to other members and probably are in our Slack server. We don't have membership tiers, hierarchies, etc. We do, however, have consensus authority mechanisms, which for now is as simple as, if you have moved revenue through 508.dev (or are currently subcontracting and will move revenue soon), you have the right to veto 508.dev initiatives. We have roughly adopted the consensus strategy of Food Not Bombs.

Members are invited to participate in open source projects so as to further develop their portfolio, or, propose their own projects so as to get assistance developing a project that's too large to work on as an individual. Members are invited to ask questions of other members, especially on topics you may not be that experienced in, but another member is experienced in. A large goal of 508.dev is the professional development of all its members. As we develop eachother further, we open up more client opportunities.

It's important to stay active in the community so that when a contracting opportunity becomes available, you will see this happen (in the #contract-hunting channel) and can let us know you think you're a good fit. From there, 508.dev handles setting up subcontracting. Note that 508.dev doesn't really operate as a "contract hiring" agency, or "headhunting firm." We prefer to have a software consultancy or design and development relationship with our client, where the greater community (or more senior members) at 508.dev stay involved in a contract and help things go smoothly. After all, it's all of our reputations on the line! That said, if a client wants to hire a 508.dev member full-time on their own, that's totally ok! So long as the client is treating the member well and paying a fair salary, that is considered "mission accomplished!" 508.dev doesn't try to extract referral fees in this circumstance. After all, even if you work fulltime somewhere else, you can still be a member of 508.dev!

Also, once you've established yourself at the co-op, we ask that you issue a pull request for this website's repo to add your bio below :)

Values

Transparency

508 members aim to share all things 508 related with eachother. That furthers our goal of helping all members always improve their abilities and knowledge. Transparency leads to better communication and less conflict. Transparency can help avoid project catastrophes. Everyone should feel comfortable sharing all things within the context of 508. This could manifest as follows:

  • If someone isn't confident about their ability to work on something, they should share this, and not be judged for doing so, so that they can be helped.
  • If someone sees an issue or problem, be it engineering, system, ethical, or otherwise, they should share it, and not be judged or punished for doing so.
  • The What and Why of a project should always be shared.
  • All 508 finances should be visible to all members without question. Salaries, bill rates, expenses, everything. This helps everyone make sure we're all compensated fairly, and helps us all make sure the cooperative is being run correctly. We believe this to be at the heart of a cooperative style organization.
  • Free as in Freedom software.

Free Software

508 software should always be Free as in Freedom. Prefer GPLv3 license or GPLv3 Affero license. How will we make money? That's for us to figure out and champion. See prior research. TLDR even if we make an iphone game and the codebase is gpl3, we can still just sell it on the apple store and people might still pay for it. If a client doesn't want their application to be Free Software, that's fine. We have to pay the bills.

Progression, Independence, Personal Responsibility

A core value we have for 508 is that its existence progresses the abilities of its members. We feel very strongly that juniors should be able to join 508 and transition to higher skilled engineers while they're here. At the same time, senior engineers should be learning how to be leaders and trainers for juniors. We should all of us be challenging eachother at all times to be improving.

Take a second to consider the true implications of this value: everyone always wants to improve, or at least everyone knows it's good advice to always be advancing in your career, but at 508 this is a core value. That means the level of progression required will take work, and be hard. The "normal" kind of progression that happens at a typical company by just existing there as an engineer isn't good enough, we want to be pushing our boundaries, always.

However, true progression can really only be independently driven. We're not in school anymore, if we want to learn something, we have to initiate. Therefore 508 members take responsibility for their own improvement, exploring projects on their on initiative, proactively asking questions or for help, and seeking guidance and mentorship as needed.

As a fully-remote co-op, we also strive to ensure all members on a project are independent, multi-disciplinary units each capable of self-organizing. Unless a client asks, we rarely do standups or other regular AGILE rituals; however, we DO typically maintain highly organized and actively managed Kanban boards and expect each teammember to take responsibility in managing (and creating) their own tickets, and in general knowing exactly what they need to be doing when they sit down to work (even if they have to ask). We've learned that the key to developing as a remote team is a very intense level of organization. 508 members don't sit around waiting to be told what to do, we know what needs doing, or we figure it out.

Flexibility

Flexibility means many things. Here it means being flexible in mind, expectation, and action.

Flexibility in mind means, basically, being open-minded. If you think next.js is the hottest thing since melted butter, try being flexible and experimenting with a new platform. If you think the only way to monetize an app is to close the source and license the code or sell an API, flex your imagination and experiment with new ways of doing business.

Flexibility in expectation is important for leaders. Leaders at 508 have learned quickly what the rest of the industry is starting to realize: engineers get more done when you let them work at their own pace. New studies show possible genetic flags for being a morning or night person, for example. With that in mind, and in the new COVID-era of global remote work, does it still make sense to want everyone online and working the same time each day? We don't think so, and that's not just idle speculation: during our SaaS build project with Ycombinator startup Cofactr, we had maximum flexibility for all engineers in three timezones with a total displacement of 16 hours. Despite this once-assumed obstacle, we delivered a complete SaaS frontend in under nine months, at tightly efficient billed hours, and with almost no day to day downtime. Flexibility of expectations of how our engineers work allowed for this outcome.

Flexibility of action means not just thinking differently, but doing differently. We transform our flexibility of mind into experiments in monetization schemes, we transform our flexibility of expectation into experiments in working styles. It's not enough to think of new ideas, we need to action them.

Never Wrong to Do the Right Thing

Doing the right thing is sometimes hard. Sometimes it's hard on purpose - the system isn't necessarily designed for the good guys winning out. For example, a common feedback Caleb (founder) hears at networking events is that making 508.dev a co-op is silly, because he can't possibly get rich this way. However, paying people the fair value of their labor feels right, and therefore it can't be the wrong thing to do.

This value is essentially 508's catch-all "don't be evil" value, added recently when we realized that, despite our previous values, we don't have one that indicates that we're trying to be the good guys.

This manifests in many ways. The most obvious is our structure as a co-op, which ensures a less degrading working environment for our members, as well as fair compensation for their efforts. It can manifest in every decision, big and little: when billing, maybe the client won't notice an extra hour slipped in here or there, right? It doesn't matter, it's not the right thing to do, so we don't do it. Do we really need to build this site accessibly, after all, the client didn't ask for it and doesn't seem to care? Yes, it's the right thing to do.

We believe this commitment will benefit both us and our clients in the long run. Long term, our members and clients can trust our direction and values will be consistent and predictable, and that we'll operate honestly and fairly.

In an environment where so many businesses are tunnel visioned to short-term benefits and profits, we believe this value will establish a long and persistent chain of trust.

Internal Projects

The 508.dev team

Caleb Rogers

Software engineering lead and founder with over seven years of experience building software in the Bay Area for startups such as Electric Imp, Curative, and Cofactr, and enterprise companies such as WPP, Ubisoft, and Google.

Morgan Elliot

Software engineer with extensive frontend experience on React and Next.js projects for Ycombinator startups such as Cofactr and for the United Nations.

Michael Wu

Software engineer and founder with over 12 years of experience at Pixelapse (YC W12), Dropbox, Gem, and Stripe. Backend and desktop development experience, proficiency with Python, Ruby, Javascript, Java, Scala, C and more.

Sam Simonds

Software engineer with a strong foundation in applications leveraging TypeScript / Next.js, JavaScript, HTML and CSS. He's built web applications for start ups, healthcare organizations, and non-profits around the world.

Zachary Fogg

Specializing in frontend web, devops/infrastructure, and blockchain applications, Zach has built applications for many different types of startups and companies over the past decade. He also has experience building games and bots. He is comfortable in Javascript, Typescript, Python, C, and Solidity.

Dennis Ordanov

Dennis is a Senior Site Reliability Engineer and Senior Software Engineer that has built for the AI, Fintech, and Infosec industries, with experience at companies such as Uber, Salesforce, Linkedin, and Google. He has nearly 20 years of IT and engineering experience and is comfortable in Java, Go, Python, AWS (EKS, etc), DevOps, Elasticsearch, MongoDB, Docker, Kubernetes, Terraform, and Infosec.

Dr. Kuan-Ru Chiou

Dr. Chiou has been academically involved in AI and Quantum Computing for over 15 years. He holds degrees in Computation Physics, Physics, and a doctorate from National Taiwan University in Physics Engineering. He also several years of industry experience, working as a Machine Learning Data Scientist, Deep Learning and Machine Learning Engineer, and AI trading quantitative researcher and developer. He has experience in NLP, CV, and generative AI models, quantum computing, business intelligence analysis, as well as AWS, C++, Computer Vision, Matlab, Numpy, Pandas, Python, and Pytorch.

Kal Zheng

A full-stack engineer with extensive knowledge in web development, specializing in PHP frameworks such as Laravel and CodeIgniter. He has built applications in industries such as Telecom, Fintech, Hardware, and Material Science for both startups and enterprise organizations.

Benson Tsai

Benson is a VR developer with experience at every stage of the game development timeline Recent experience includes working with Pico on a game titled "Realm of Dream." Lately, his primary focus has been on crafting an MVP for the "Hunter Series," which is currently accessible on SideQuest and App Lab.

Chia-Hung Lin

Chia-Hung has over a decade of experience contributing to FOSS projects, including key contributions to Apache Hama. He has experience in Scala, Python, AWS, and infrastructure.

Yen Lin (Josh) Huang

Josh is a backend engineer specializing in PHP for more than 5 years, working on legacy integration projects as well as feature development for more modern frameworks. He is familiar with PHP, Python, Laravel, MySQL, AWS (Lambda, EC2), Docker, and Jenkins.

Daniel Tong

Daniel is an Adobe-certified Adobe Experience Manager(AEM) Architect with over 10 years experience split between consulting and embedded work, currently working in fullstack Javascript/Node development.

David Chien

David is a software engineer with experience across the entire web stack, including frontend, backend, and database engineering. He's worked in media, fintech, and e-commerce. He's comfortable with C#, ASP.NET, Ruby, Rails, Javascript, MySQL, and Docker.

Ian Lin

Ian is a software engineer with a master's in computer science and three years of expertise in Java and C#. He has developed software solutions across web, mobile, and database systems.

Chi Wei Lin (Linion)

Linion has over 5 years of experience in web development, with a focus on backend engineering. He's worked in e-commerce and on ERP systems, leading an ERP build from scratch. He's comfortable with .NET, Python, RabbitMQ, Azure services, Javascript, Angular, SQL, NodeJS, and MongoDB.

Leni Kadali

Leni is a software engineer with 4 years of experience working in software development, primarily in web development. Their background includes work across the Python (Django, Flask) and Ruby (Rails) ecosystems, in industries such as Telecom, Green Energy, and manufacturing.

Charles Hsieh

Charles is an iOS specialized software engineer with several years of experience building Apple iOS mobile apps for companies such as FoodPanda and Crypto.com. He particularly specializes in optimization.

Alex Wang

Alex is a Senior Software Engineer with over a decade of engineering experience in various stacks. Most recently, he's been building iOS applications in Objective-C and Swift in the media and advertisement industries. He also has extensive web development experience. He is comfortable in Swift, Objective-C, PHP, Javascript, SQL, Laravel, C#, and VBA.

YuChi Chien

Yu Chi is a Frontend Engineer with several years of experience building for cloud platform companies (PaaS) as well as web accessibility NGOs. They are proficient in Javascript, React, Nextjs, and Tailwind.

Paul Yu

Paul is a student pursuing his master's degree in computer science at National Taiwan University, working in Sudo Research as a blockchain research intern as well as and in the Ethereum Foundation PSE team as an ecosystem development grantee (acceleration program coordination). He's knowledgeable in zero knowledge proofs and cryptography.

Simone Massenzio

Simone is a Backend Engineer with experience in the Transportation, Agricultural Sciences, and IT Services industries. He's built transportation systems, application servers, and data analysis applications. He's experienced in Java, Spring-Boot, multiple ORMs, MongoDB, and Apache Kafka.

Jess Wang

Jess is an Engineering Manager with extensive experience leading teams, particularly on backend and service-level projects. He started his career at IBM more than 10 years ago, and has since been leading teams, directing R&D, and founding successful startups. He has recent experience in Web3 and cryptocurrency applications.

Albert Chang

Albert is a senior software engineer and technical manager that has more than 20 years of experience developing software. He has unique experience developing native applications for linux and IoT platforms, owing to his time at companies such as MediaTek. He is comfortable in C, C++, Python, and Android and Linux application development.

Joe Yu

Joe, formerly at Tesla, currently leads a backend engineering team at a logistics firm. He specializes in Java development and has experience with Kafka, Redis, WebSocket, RDBMS, Time-series Database, and AWS.

Kok Sing

Kok Sing is a software engineer with a focus on Atlassian and Salesforce platforms. His work primarily involves developing applications using Atlassian Connect and Forge. More recently, he has been exploring app development on the Miro platform.

Someone New

508.dev's unique structure and civic hacktivism means we have an extensive network of engineers in all disciplines. This means that at the drop of the hat we can pull from a global talent pool of engineers. If this includes you, feel free to email us at hello@508.dev!