• Computer screen with code language. Text on image says
  • Screenshot of the CWDST

We’re dedicated to providing custom solutions to help solve the water-related challenges and problems facing our clients. Our approach to developing software applications that support decision-making is no different. We work closely with you to develop a tool tailored to your specific needs, drawing on our decades of experience using and developing software for environmental data management, water resource modeling, and decision support.

We invite you to explore our software design process and the project examples highlighted on this page to learn more about the “how” and “what” of our software development and how it might support your work in water.

Software Design and Development Approach

Whether we are developing a new web application or modernizing scientific geospatial software, we approach our software development projects with a general approach. We employ a User-Centered Design process to develop a shared understanding of the vision, needs, end-users, and expected workflows. This design process naturally leads to an iterative software development process organized around short-term sprints and feedback cycles following the Agile Methodology. We can scale our approach to software development tasks of all sizes while generally including all of these phases in the design process.

Design Process

  • Understand Needs and End-User Workflows

    We start by working closely with you to identify problems you need to solve and envision how the software application can address those challenges, including understanding intended end-users and their expected workflows. We typically kick off this phase with a 2 to 12-hour “design charrette” workshop.

  • Mockup

    Our initial sprint cycles typically focus on diagramming workflows and mocking up user interfaces for each step in the workflow. Feedback helps refine our collective understanding of the software’s design features and priorities.

  • Develop, Build, Test

    We develop the software, conduct testing, and create “micro-deliverables” for feedback within every sprint cycle, focusing on advancing the priorities for the next release.

  • Release, Deploy, Document & Train

    With each release, we deploy the ready-to-use software to end-users with documentation and often training to use and manage the software and its new features.

  • Support & Enhance

    We provide ongoing maintenance and support and stand ready to help you meet your changing water-related needs and challenges by adding new features.

We develop custom desktop, web, and cloud software tools that support your work in water.

Project Examples

Lake Superior Headwaters Sustainability Partnership Decision Support Tool

Great Lakes Coastal Wetland Decision Support Tool

Blue Harvest Water Benefits Calculator

Model My Watershed

Our Technologies

Software technologies are ever-evolving. At LimnoTech, we continuously track and learn new technologies while maintaining skills with legacy languages and frameworks. We always work closely with our clients to identify and implement the software solution that best fits their needs, whether it is modernizing to the latest cloud-native framework, supporting their existing legacy systems, or providing the most cost-effective solution to their immediate needs.

The technologies that we have leveraged to support our clients are summarized below.

Programming Languages

Different programming languages excel at meeting various needs. We work with multiple languages to make sure we can use the right tool for the job.

  • Modern/Preferred: C#, JavaScript, Python, R, SQL, TypeScript
  • Legacy: C/C++, CSS, Fortran, HTML, Java, Visual Basic

Application Frameworks

We love building customized web, mobile, and desktop applications tailored to your needs. These are some of the frameworks that help us do it.

  • .NET, ASP.NET, Django, Drupal, FastAPI, Flask, jQuery, Shiny, Starlette, React, Spring

 Scientific Software

We are scientists and engineers who use scientific software to analyze, model, forecast, and visualize historical and simulated datasets on a daily basis. We combine these skills with our knowledge of environmental processes to develop custom software packages that perform specific scientific computations and workflows, from modeling water quality scenarios to process-guided machine learning forecasting. We develop our scientific software using the following libraries.

  • Scientific Software Stack: Scientific Python (i.e., SciPy, pyData, Pangeo), including Dask, Numpy, Pandas, and Xarray; Earth systems modeling software written in Fortran and C/C++, Basic Model Interface (BMI) wrappers for model coupling
  • Analysis and Machine Learning: CatBoost, PyTorch, SciPy, Scikit-learn, TensorFlow, R Tidyverse
  • Visualization: Highcharts, HoloViz, ggplot, Matplotlib, Plotly, Seaborn
  • Packaging: Comprehensive R Archive Network (CRAN), Conda-Forge, Python Package Index (PyPI)

Geospatial Analysis Systems

Geospatial information is a core component of environmental data systems and software. Here are some technologies we use when we develop custom software to map, manage, analyze, and share geospatial data.

  • GIS Desktop: ArcGIS, ArcGIS Pro, DotSpatial, QGIS
  • Analysis and Visualization: GDAL/OGR, GeoPandas, GeoViews, Lonboard, rasterio, Shapely
  • Web Services: ArcGIS API for JavaScript, ArcGIS Online, GeoServer, Google Maps API, Leaflet, pygeoapi
  • Data Storage: ArcObjects, Cloud-Optimized GeoTiffs (COG), GeoPackage, GeoParquet, netCDF, PostGIS, Zarr

Databases, Data Engines, and Data Stores

Environmental data comes in a multitude of different forms. We use various tools, including relational databases, NoSQL databases, and cloud-native file formats, to develop a data systems solution that best meets your needs.

  • Relational Databases: Microsoft Access, Microsoft SQL Server, MySQL/MariaDB, Oracle, PostgreSQL, SQL Server, SQLite
  • Non-Relational Databases: ChromaDB, MongoDB, Tinydb
  • Object Stores: IceChunk, NetCDF, Parquet, Zarr

Data Sharing Standards

Data system standards form the backbone, making data Findable, Accessible, Interoperable, and Reusable. These FAIR Data Principles are foundational to the vision of the Internet of Water (IoW) Coalition and other Open Data Initiatives. We have helped our clients meet their data-sharing needs by adapting their data systems to interoperate with the following standards.

  • Open Geospatial Consortium (OGC): Environmental Data Retrieval (EDR); Observations and Measurements (O&M), including Observations Data Model v2 (ODM2); Processes; SensorThings, Web Coverage/Features/Map/Tile Services (WCS/WFS/WMS/WTS)
  • Other: Climate-Forecast (CF) Metadata Conventions, CUAHSI Water One Flow / WaterML (WOF), GeoConnex, SpatioTemporal Asset Catalog (STAC), Water Quality Exchange (WQX)

Platforms and DevOps

Modern Continuous Integration / Continuous Deployment (CI/CD) approaches have transformed the efficiency of deploying newly developed software into the hands of users on any platform or operating system. Once your application is built, we can help you release it to a distribution platform such as the Python Package Index (PyPI), host it “on-premises,” or deploy it to cloud infrastructure. We have experience working with a range of computing platforms, operating systems, containers, environments, and DevOps systems.

  • Operating Systems: MacOS, Linux (Debian, Ubuntu), Windows, Windows Server
  • Containers and Environments: Docker, Conda/Mamba
  • Cloud: Amazon Web Services (AWS), Azure
  • DevOps: Github Actions, GitLab CI/CD, AWS Cloud Development Kit (CDK)

Software Development Life Cycle

We are practiced in a variety of software development life cycle models. We can adapt our process to the approach that works best for your team.

  • Version Control and Issue Tracking Systems: Bitbucket, Github, GitLab (including federally owned and managed)
  • Agile, Adaptive Project Framework (APF), Feature Driven Development (FDD), KanBan, Scrum, Waterfall
Return to top
Contact Us

We're not around right now. But you can send us an email and we'll get back to you, asap.

Not readable? Change text. captcha txt

Start typing and press Enter to search